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