1 /*
2 xx(symbol,	value,	prec,	op,	optree,	kind,	string)
3 */
4 yy(0,         0, 0,  0,    0,      0,      0)
5 xx(FLOAT,     1, 0,  0,    0,      CHAR,   "float")
6 xx(DOUBLE,    2, 0,  0,    0,      CHAR,   "double")
7 xx(CHAR,      3, 0,  0,    0,      CHAR,   "char")
8 xx(SHORT,     4, 0,  0,    0,      CHAR,   "short")
9 xx(INT,       5, 0,  0,    0,      CHAR,   "int")
10 xx(UNSIGNED,  6, 0,  0,    0,      CHAR,   "unsigned")
11 xx(POINTER,   7, 0,  0,    0,      0,      "pointer")
12 xx(VOID,      8, 0,  0,    0,      CHAR,   "void")
13 xx(STRUCT,    9, 0,  0,    0,      CHAR,   "struct")
14 xx(UNION,    10, 0,  0,    0,      CHAR,   "union")
15 xx(FUNCTION, 11, 0,  0,    0,      0,      "function")
16 xx(ARRAY,    12, 0,  0,    0,      0,      "array")
17 xx(ENUM,     13, 0,  0,    0,      CHAR,   "enum")
18 xx(LONG,     14, 0,  0,    0,      CHAR,   "long")
19 xx(CONST,    15, 0,  0,    0,      CHAR,   "const")
20 xx(VOLATILE, 16, 0,  0,    0,      CHAR,   "volatile")
21 yy(0,        17,     0,      0,    0,      0,      0)
22 yy(0,        18,     0,      0,    0,      0,      0)
23 yy(0,        19,     0,      0,    0,      0,      0)
24 yy(0,        20,     0,      0,    0,      0,      0)
25 yy(0,        21,     0,      0,    0,      0,      0)
26 yy(0,        22,     0,      0,    0,      0,      0)
27 yy(0,        23,     0,      0,    0,      0,      0)
28 yy(0,        24,     0,      0,    0,      0,      0)
29 yy(0,        25,     0,      0,    0,      0,      0)
30 yy(0,        26,     0,      0,    0,      0,      0)
31 yy(0,        27,     0,      0,    0,      0,      0)
32 yy(0,        28,     0,      0,    0,      0,      "long long")
33 yy(0,        29,     0,      0,    0,      0,      0)
34 yy(0,        30,     0,      0,    0,      0,      0)
35 yy(0,        31,     0,      0,    0,      0,      "const volatile")
36 xx(ID,       32,     0,      0,    0,      ID,     "identifier")
37 yy(0,        33,     0,      0,    0,      ID,     "!")
38 xx(FCON,     34,     0,      0,    0,      ID,     "floating constant")
39 xx(ICON,     35,     0,      0,    0,      ID,     "integer constant")
40 xx(SCON,     36,     0,      0,    0,      ID,     "string constant")
41 yy(0,        37,     13,     MOD,  bittree,'%',    "%")
42 yy(0,        38,     8,      BAND, bittree,ID,     "&")
43 xx(INCR,     39,     0,      ADD,  addtree,ID,     "++")
44 yy(0,        40,     0,      0,    0,      ID,     "(")
45 yy(0,        41,     0,      0,    0,      ')',    ")")
46 yy(0,        42, 13, MUL,  multree,ID,     "*")
47 yy(0,        43, 12, ADD,  addtree,ID,     "+")
48 yy(0,        44, 1,  0,    0,      ',',    ",")
49 yy(0,        45, 12, SUB,  subtree,ID,     "-")
50 yy(0,        46, 0,  0,    0,      '.',    ".")
51 yy(0,        47, 13, DIV,  multree,'/',    "/")
52 xx(DECR,     48, 0,  SUB,  subtree,ID,     "--")
53 xx(DEREF,    49, 0,  0,    0,      DEREF,  "->")
54 xx(ANDAND,   50, 5,  AND,  andtree,ANDAND, "&&")
55 xx(OROR,     51, 4,  OR,   andtree,OROR,   "||")
56 xx(LEQ,      52, 10, LE,   cmptree,LEQ,    "<=")
57 xx(EQL,         53,     9,      EQ,     eqtree, EQL,    "==")
58 xx(NEQ,         54,     9,      NE,     eqtree, NEQ,    "!=")
59 xx(GEQ,         55,     10,     GE,     cmptree,GEQ,    ">=")
60 xx(RSHIFT,      56,     11,     RSH,    shtree, RSHIFT, ">>")
61 xx(LSHIFT,      57,     11,     LSH,    shtree, LSHIFT, "<<")
62 yy(0,           58,     0,      0,      0,      ':',    ":")
63 yy(0,           59,     0,      0,      0,      IF,     ";")
64 yy(0,           60,     10,     LT,     cmptree,'<',    "<")
65 yy(0,           61,     2,      ASGN,   asgntree,'=',   "=")
66 yy(0,           62,     10,     GT,     cmptree,'>',    ">")
67 yy(0,           63,     0,      0,      0,      '?',    "?")
68 xx(ELLIPSIS,    64,     0,      0,      0,      ELLIPSIS,"...")
69 xx(SIZEOF,      65,     0,      0,      0,      ID,     "sizeof")
70 yy(0,           66,     0,      0,      0,      0,      0)
71 xx(AUTO,        67,     0,      0,      0,      STATIC, "auto")
72 xx(BREAK,       68,     0,      0,      0,      IF,     "break")
73 xx(CASE,        69,     0,      0,      0,      IF,     "case")
74 xx(CONTINUE,    70,     0,      0,      0,      IF,     "continue")
75 xx(DEFAULT,     71,     0,      0,      0,      IF,     "default")
76 xx(DO,          72,     0,      0,      0,      IF,     "do")
77 xx(ELSE,        73,     0,      0,      0,      IF,     "else")
78 xx(EXTERN,      74,     0,      0,      0,      STATIC, "extern")
79 xx(FOR,         75,     0,      0,      0,      IF,     "for")
80 xx(GOTO,        76,     0,      0,      0,      IF,     "goto")
81 xx(IF,          77,     0,      0,      0,      IF,     "if")
82 xx(REGISTER,    78,     0,      0,      0,      STATIC, "register")
83 xx(RETURN,      79,     0,      0,      0,      IF,     "return")
84 xx(SIGNED,      80,     0,      0,      0,      CHAR,   "signed")
85 xx(STATIC,      81,     0,      0,      0,      STATIC, "static")
86 xx(SWITCH,      82,     0,      0,      0,      IF,     "switch")
87 xx(TYPEDEF,     83,     0,      0,      0,      STATIC, "typedef")
88 xx(WHILE,       84,     0,      0,      0,      IF,     "while")
89 xx(TYPECODE,    85,     0,      0,      0,      ID,     "__typecode")
90 xx(FIRSTARG,    86,     0,      0,      0,      ID,     "__firstarg")
91 yy(0,           87,     0,      0,      0,      0,      0)
92 yy(0,           88,     0,      0,      0,      0,      0)
93 yy(0,           89,     0,      0,      0,      0,      0)
94 yy(0,           90,     0,      0,      0,      0,      0)
95 yy(0,           91,     0,      0,      0,      '[',    "[")
96 yy(0,           92,     0,      0,      0,      0,      0)
97 yy(0,           93,     0,      0,      0,      ']',    "]")
98 yy(0,           94,     7,      BXOR,   bittree,'^',    "^")
99 yy(0,           95,     0,      0,      0,      0,      0)
100 yy(0,           96,     0,      0,      0,      0,      0)
101 yy(0,           97,     0,      0,      0,      0,      0)
102 yy(0,           98,     0,      0,      0,      0,      0)
103 yy(0,           99,     0,      0,      0,      0,      0)
104 yy(0,           100,    0,      0,      0,      0,      0)
105 yy(0,           101,    0,      0,      0,      0,      0)
106 yy(0,           102,    0,      0,      0,      0,      0)
107 yy(0,           103,    0,      0,      0,      0,      0)
108 yy(0,           104,    0,      0,      0,      0,      0)
109 yy(0,           105,    0,      0,      0,      0,      0)
110 yy(0,           106,    0,      0,      0,      0,      0)
111 yy(0,           107,    0,      0,      0,      0,      0)
112 yy(0,           108,    0,      0,      0,      0,      0)
113 yy(0,           109,    0,      0,      0,      0,      0)
114 yy(0,           110,    0,      0,      0,      0,      0)
115 yy(0,           111,    0,      0,      0,      0,      0)
116 yy(0,           112,    0,      0,      0,      0,      0)
117 yy(0,           113,    0,      0,      0,      0,      0)
118 yy(0,           114,    0,      0,      0,      0,      0)
119 yy(0,           115,    0,      0,      0,      0,      0)
120 yy(0,           116,    0,      0,      0,      0,      0)
121 yy(0,           117,    0,      0,      0,      0,      0)
122 yy(0,           118,    0,      0,      0,      0,      0)
123 yy(0,           119,    0,      0,      0,      0,      0)
124 yy(0,           120,    0,      0,      0,      0,      0)
125 yy(0,           121,    0,      0,      0,      0,      0)
126 yy(0,           122,    0,      0,      0,      0,      0)
127 yy(0,           123,    0,      0,      0,      IF,     "{")
128 yy(0,           124,    6,      BOR,    bittree,'|',    "|")
129 yy(0,           125,    0,      0,      0,      '}',    "}")
130 yy(0,           126,    0,      BCOM,   0,      ID,     "~")
131 xx(EOI,         127,    0,      0,      0,      EOI,    "end of input")
132 #undef xx
133 #undef yy
134