Used Variables instead of Options, in SConstruct
[mcc.git] / tokens.inc
blob491af1f468b4e2aac6341135d66724db3ce5a80a
1 #ifndef MCC_TOKENS_H
2 #define MCC_TOKENS_H
4 #define TOK_IDENT 0x1000 // first identifier
6 #endif
8 #ifdef PUNCT
10 PUNCT(GE,       ">=")
11 PUNCT(LE,       "<=")
12 PUNCT(EQ,       "==")
13 PUNCT(NE,       "!=")
14 PUNCT(ARROW,    "->")
15 PUNCT(SHL,      "<<")
16 PUNCT(SHR,      ">>")
17 PUNCT(LAND,     "&&")
18 PUNCT(LOR,      "||")
19 PUNCT(INC,      "++")
20 PUNCT(DEC,      "--")
21 PUNCT(EADD,     "+=")
22 PUNCT(ESUB,     "-=")
23 PUNCT(EMUL,     "*=")
24 PUNCT(EDIV,     "/=")
25 PUNCT(EMOD,     "%=")
26 PUNCT(EAND,     "&=")
27 PUNCT(EOR,      "|=")
28 PUNCT(EXOR,     "^=")
29 PUNCT(ESHL,     "<<=")
30 PUNCT(ESHR,     ">>=")
31 PUNCT(ELLIPSIS, "...")
32 PUNCT(INVAL,    "<invalid-token>")
33 PUNCT(STR,      "<string-literal>")
34 PUNCT(CHARSTR,  "<character-literal>")
35 PUNCT(NUMBER,   "<numeric-literal>")
36 // these aren't really tokens, but it's convenient to treat them as such
37 PUNCT(POSTINC,  "<postfix++>")
38 PUNCT(POSTDEC,  "<postfix-->")
39 PUNCT(CAST,     "<cast>")
41 #endif
43 #ifdef DEF
44 DEF(__asm__)
45 DEF(auto)
46 DEF(break)
47 DEF(case)
48 DEF(char)
49 DEF(const)
50 DEF(continue)
51 DEF(define)
52 DEF(do)
53 DEF(double)
54 DEF(else)
55 DEF(endif)
56 DEF(enum)
57 DEF(extern)
58 DEF(float)
59 DEF(for)
60 DEF(goto)
61 DEF(if)
62 DEF(ifdef)
63 DEF(ifndef)
64 DEF(include)
65 DEF(int)
66 DEF(long)
67 DEF(register)
68 DEF(restrict)
69 DEF(return)
70 DEF(short)
71 DEF(signed)
72 DEF(sizeof)
73 DEF(static)
74 DEF(struct)
75 DEF(switch)
76 DEF(typedef)
77 DEF(union)
78 DEF(unsigned)
79 DEF(void)
80 DEF(volatile)
81 DEF(while)
83 #endif