1// Mnemonics, token categoty, token class, yacc token value 2 3// Separators 4 5DEF_TOKEN(" ", WSPC, TKN_SPACE, 0) 6DEF_TOKEN("\n", WSPC, TKN_LN, 0) 7DEF_TOKEN(NULL, WSPC, TKN_CMNT, 0) 8 9// Numbers 10 11DEF_TOKEN(NULL, NUM, TKN_ICONST, ICONST) 12DEF_TOKEN(NULL, NUM, TKN_RCONST, RCONST) 13DEF_TOKEN(NULL, STR, TKN_SCONST, SCONST) 14 15// special symbols 16 17DEF_TOKEN("(", PUT, TKN_LPAR, '(') 18DEF_TOKEN(")", PUT, TKN_RPAR, ')') 19DEF_TOKEN("[", PUT, TKN_LBR, '[') 20DEF_TOKEN("]", PUT, TKN_RBR, ']') 21DEF_TOKEN("+", PUT, TKN_PLUS, PLUS) 22DEF_TOKEN("-", PUT, TKN_MINUS, MINUS) 23DEF_TOKEN("*", PUT, TKN_MUL, MUL) 24DEF_TOKEN("/", PUT, TKN_DIVR, DIVR) 25DEF_TOKEN("&", PUT, TKN_C_AND, AND) 26DEF_TOKEN("|", PUT, TKN_C_OR, OR) 27DEF_TOKEN("~", PUT, TKN_C_NOT, NOT) 28DEF_TOKEN(">>", PUT, TKN_C_SHR, SHR) 29DEF_TOKEN("<<", PUT, TKN_C_SHL, SHL) 30DEF_TOKEN("+=", PUT, TKN_LETADD, LETADD) 31DEF_TOKEN("-=", PUT, TKN_LETSUB, LETSUB) 32DEF_TOKEN("*=", PUT, TKN_LETMUL, LETMUL) 33DEF_TOKEN("/=", PUT, TKN_LETDIV, LETDIV) 34DEF_TOKEN("&=", PUT, TKN_LETAND, LETAND) 35DEF_TOKEN("|=", PUT, TKN_LETOR, LETOR) 36DEF_TOKEN(">>=", PUT, TKN_LETSHR, LETSHR) 37DEF_TOKEN("<<=", PUT, TKN_LETSHL, LETSHL) 38DEF_TOKEN(":", PUT, TKN_COLON, ':') 39DEF_TOKEN(";", PUT, TKN_SEMICOLON, ';') 40DEF_TOKEN(",", PUT, TKN_COMMA, ',') 41DEF_TOKEN(".", PUT, TKN_DOT, '.') 42DEF_TOKEN("^", PUT, TKN_HEAP, '^') 43DEF_TOKEN("..", PUT, TKN_DOTS, DOTS) 44DEF_TOKEN("=", PUT, TKN_EQ, EQ) 45DEF_TOKEN(">=", PUT, TKN_GE, GE) 46DEF_TOKEN(">", PUT, TKN_GT, GT) 47DEF_TOKEN("<=", PUT, TKN_LE, LE) 48DEF_TOKEN("<", PUT, TKN_LT, LT) 49DEF_TOKEN("<>", PUT, TKN_NE, NE) 50DEF_TOKEN(":=", PUT, TKN_LET, LET) 51DEF_TOKEN("@", PUT, TKN_ADDR, '@') 52 53DEF_TOKEN("abstract", ID, TKN_ABSTRACT, IDENT) 54DEF_TOKEN("and", KWD, TKN_AND, AND) 55DEF_TOKEN("array", KWD, TKN_ARRAY, ARRAY) 56DEF_TOKEN("begin", KWD, TKN_BEGIN, BEGIN) 57DEF_TOKEN("c", ID, TKN_C, IDENT) 58DEF_TOKEN("case", KWD, TKN_CASE, CASE) 59DEF_TOKEN("const", KWD, TKN_CONST, CONST) 60DEF_TOKEN("constructor", KWD, TKN_CONSTRUCTOR, IDENT) 61DEF_TOKEN("destructor", KWD, TKN_DESTRUCTOR, IDENT) 62DEF_TOKEN("div", KWD, TKN_DIV, DIV) 63DEF_TOKEN("do", KWD, TKN_DO, DO) 64DEF_TOKEN("downto", KWD, TKN_DOWNTO, TO) 65DEF_TOKEN("else", KWD, TKN_ELSE, ELSE) 66DEF_TOKEN("end", KWD, TKN_END, END) 67DEF_TOKEN("external", ID, TKN_EXTERNAL, SCOPE) 68DEF_TOKEN("exit", ID, TKN_EXIT, IDENT) 69DEF_TOKEN("far", KWD, TKN_FAR, IDENT) 70DEF_TOKEN("file", KWD, TKN_FILE, FIL) 71DEF_TOKEN("for", KWD, TKN_FOR, FOR) 72DEF_TOKEN("function", KWD, TKN_FUNCTION, FUNCTION) 73DEF_TOKEN("goto", KWD, TKN_GOTO, GOTO) 74DEF_TOKEN("ident", KWD, TKN_IDENT, IDENT) 75DEF_TOKEN("if", KWD, TKN_IF, IF) 76DEF_TOKEN("halt", ID, TKN_HALT, IDENT) 77DEF_TOKEN("implementation", KWD, TKN_IMPLEMENTATION, IDENT) 78DEF_TOKEN("interface", KWD, TKN_INTERFACE, IDENT) 79DEF_TOKEN("in", KWD, TKN_IN, IN) 80DEF_TOKEN("label", KWD, TKN_LABEL, LABEL) 81DEF_TOKEN("loophole", KWD, TKN_LOOPHOLE, LOOPHOLE) 82DEF_TOKEN("mod", KWD, TKN_MOD, MOD) 83DEF_TOKEN("not", KWD, TKN_NOT, NOT) 84DEF_TOKEN("object", KWD, TKN_OBJECT, IDENT) 85DEF_TOKEN("of", KWD, TKN_OF, OF) 86DEF_TOKEN("or", KWD, TKN_OR, OR) 87DEF_TOKEN("origin", KWD, TKN_ORIGIN, IDENT) 88DEF_TOKEN("otherwise", KWD, TKN_OTHERWISE, OTHERWISE) 89DEF_TOKEN("packed", KWD, TKN_PACKED, PACKED) 90DEF_TOKEN("procedure", KWD, TKN_PROCEDURE, PROCEDURE) 91DEF_TOKEN("program", KWD, TKN_PROGRAM, PROGRAM) 92DEF_TOKEN("record", KWD, TKN_RECORD, RECORD) 93DEF_TOKEN("repeat", KWD, TKN_REPEAT, REPEAT) 94DEF_TOKEN("self", ID, TKN_SELF, IDENT) 95DEF_TOKEN("set", KWD, TKN_SET, SET) 96DEF_TOKEN("shl", KWD, TKN_SHL, IDENT) 97DEF_TOKEN("shr", KWD, TKN_SHR, IDENT) 98DEF_TOKEN("static", ID, TKN_STATIC, SCOPE) 99DEF_TOKEN("str", ID, TKN_STR, IDENT) 100DEF_TOKEN("string", ID, TKN_STRING, IDENT) 101DEF_TOKEN("then", KWD, TKN_THEN, THEN) 102DEF_TOKEN("to", KWD, TKN_TO, TO) 103DEF_TOKEN("type", KWD, TKN_TYPE, TYPE) 104DEF_TOKEN("until", KWD, TKN_UNTIL, UNTIL) 105DEF_TOKEN("unit", KWD, TKN_UNIT, IDENT) 106DEF_TOKEN("var", KWD, TKN_VAR, VAR) 107DEF_TOKEN("virtual", ID, TKN_VIRTUAL, IDENT) 108DEF_TOKEN("while", KWD, TKN_WHILE, WHILE) 109DEF_TOKEN("with", KWD, TKN_WITH, WITH) 110DEF_TOKEN("xor", KWD, TKN_XOR, IDENT) 111 112DEF_TOKEN("succ", ID, TKN_SUCC, IDENT) 113DEF_TOKEN("pred", ID, TKN_PRED, IDENT) 114DEF_TOKEN("inc", ID, TKN_INC, IDENT) 115DEF_TOKEN("dec", ID, TKN_DEC, IDENT) 116DEF_TOKEN("read", ID, TKN_READ, READ) 117DEF_TOKEN("readln", ID, TKN_READLN, READ) 118DEF_TOKEN("write", ID, TKN_WRITE, WRITE) 119DEF_TOKEN("writeln", ID, TKN_WRITELN, WRITE) 120DEF_TOKEN("new", ID, TKN_NEW, IDENT) 121DEF_TOKEN("ref", ID, TKN_REF, IDENT) 122DEF_TOKEN("dispose", ID, TKN_DISPOSE, IDENT) 123 124DEF_TOKEN(NULL, SPEC, TKN_GEN, 0) 125DEF_TOKEN(NULL, WSPC, TKN_PUSH_FILE, 0) 126DEF_TOKEN(NULL, WSPC, TKN_PUSH_UNIT, 0) 127DEF_TOKEN(NULL, WSPC, TKN_POP_FILE, 0) 128DEF_TOKEN(NULL, WSPC, TKN_SOURCE_FILE, 0) 129DEF_TOKEN(NULL, SPEC, TKN_UNIT_END, UNIT_END) 130DEF_TOKEN(NULL, SPEC, TKN_RESERVED, 0) 131DEF_TOKEN(NULL, SPEC, TKN_BEG_SHIFT, 0) 132DEF_TOKEN(NULL, SPEC, TKN_END_SHIFT, 0) 133DEF_TOKEN(NULL, SPEC, TKN_DUMMY, EOF) 134 135#undef DEF_TOKEN 136 137 138 139