summaryrefslogtreecommitdiff
path: root/src/nb_token.h
blob: 6f92dcb60e79e52ec1e00dbced80cbafbf557f41 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#ifndef NB_TOKEN_H
#define NB_TOKEN_H

#define TOKEN_INDEX_START 32

typedef enum {
	TK_NULL = TOKEN_INDEX_START, // null

	TK_PLUS,       // +
	TK_PLUSPLUS,   // ++ 
	TK_PLUSEQ,     // += 
	TK_MINUS,      // - 
	TK_MINUSMINUS, // -- 
	TK_MINUSEQ,    // -=
	TK_MULTIPLY,   // *
	TK_MULTIEQ,    // *=
	TK_SLASH,      // /
	TK_SLASHEQ,    // /=
	TK_CARET,      // ^
	TK_CARETEQ,    // ^=
	TK_PERSENT,    // %   
	TK_PERSENTEQ,  // %=   
	TK_BANG,       // !
	//TK_AT,         // @
	//TK_QUOT,       // "
	TK_COMMA,      // ,
	TK_DOT,        // .
	TK_DOTS,       // ...
	TK_COLON,      // :
	TK_SEMICOLON,  // ;
	TK_QUESTION,   // ?
	TK_RSHIFT,     // >>
	TK_RSHIFTEQ,   // >>=
	TK_LSHIFT,     // <<
	TK_LSHIFTEQ,   // <<=

	TK_AMP,      // &
	TK_AMPAMP,   // && 
	TK_AMPEQ,    // &= 
	TK_PIPE,     // | 
	TK_PIPEPIPE, // || 
	TK_PIPEEQ,   // |= 

	TK_EQ,    // =
	TK_GT,    // >
	TK_GTEQ,  // >=
	TK_LT,    // < 
	TK_LTEQ,  // <= 
	TK_EQEQ,  // == 
	TK_NOTEQ, // !=

	TK_LEFT_PAREN,    // (
	TK_RIGHT_PAREN,   // )
	TK_LEFT_BRACKET,  // [
	TK_RIGHT_BRACKET, // ]
	TK_LEFT_BRACE,    // {
	TK_RIGHT_BRACE,   // }

	TK_CLASS,    // class 
	TK_EXTENDS,  // extends
	TK_NEW,      // new 
	TK_SELF,     // self 
	TK_TYPE,     // type
	TK_INTERNAL, // internal
	TK_FUNCTION, // function 
	TK_RETURN,   // return
	TK_STATIC,   // static
	TK_VAR,      // var
	TK_BASE,     // base
	TK_IMPORT,   // import
	TK_AS,       // as
	TK_IF,       // if 
	TK_ELSEIF,   // elseif 
	TK_ELSE,     // else 
	TK_FOR,      // for 
	TK_FOREACH,  // foreach
	TK_IN,       // in
	TK_CONTINUE, // continue 
	TK_BREAK,    // break
	TK_WHILE,    // while 
	TK_DO,       // do 
	TK_UNTIL,    // until
	TK_ENUM,     // enum 
	TK_MASK,     // mask
	TK_SWITCH,   // switch
	TK_CASE,     // case
	TK_DEFAULT,  // default
	TK_GOTO,     // goto
	TK_TRUE,     // true
	TK_FALSE,    // false	

	TK_TYPEOF,     // typeof 
	TK_INSTANCEOF, // instanceof

	TK_IDENTIFIER, // <identifier> a-z A-Z 0-9 _
	TK_INT,        // <int value> 0x 0c 0b
	TK_DOUBLE,     // <double value>
	TK_STRING,     // <string value> 

	TK_EOF, // end of file

} Token;

#endif