1 /* token.c 4.1 82/12/24 */ 2 3 #include "awk.h" 4 struct tok 5 { char *tnm; 6 int yval; 7 } tok[] = { 8 "FIRSTTOKEN", 257, 9 "FINAL", 258, 10 "FATAL", 259, 11 "LT", 260, 12 "LE", 261, 13 "GT", 262, 14 "GE", 263, 15 "EQ", 264, 16 "NE", 265, 17 "MATCH", 266, 18 "NOTMATCH", 267, 19 "APPEND", 268, 20 "ADD", 269, 21 "MINUS", 270, 22 "MULT", 271, 23 "DIVIDE", 272, 24 "MOD", 273, 25 "UMINUS", 274, 26 "ASSIGN", 275, 27 "ADDEQ", 276, 28 "SUBEQ", 277, 29 "MULTEQ", 278, 30 "DIVEQ", 279, 31 "MODEQ", 280, 32 "JUMP", 281, 33 "XBEGIN", 282, 34 "XEND", 283, 35 "NL", 284, 36 "PRINT", 285, 37 "PRINTF", 286, 38 "SPRINTF", 287, 39 "SPLIT", 288, 40 "IF", 289, 41 "ELSE", 290, 42 "WHILE", 291, 43 "FOR", 292, 44 "IN", 293, 45 "NEXT", 294, 46 "EXIT", 295, 47 "BREAK", 296, 48 "CONTINUE", 297, 49 "PROGRAM", 298, 50 "PASTAT", 299, 51 "PASTAT2", 300, 52 "ASGNOP", 301, 53 "BOR", 302, 54 "AND", 303, 55 "NOT", 304, 56 "NUMBER", 305, 57 "VAR", 306, 58 "ARRAY", 307, 59 "FNCN", 308, 60 "SUBSTR", 309, 61 "LSUBSTR", 310, 62 "INDEX", 311, 63 "GETLINE", 312, 64 "RELOP", 313, 65 "MATCHOP", 314, 66 "OR", 315, 67 "STRING", 316, 68 "DOT", 317, 69 "CCL", 318, 70 "NCCL", 319, 71 "CHAR", 320, 72 "CAT", 321, 73 "STAR", 322, 74 "PLUS", 323, 75 "QUEST", 324, 76 "POSTINCR", 325, 77 "PREINCR", 326, 78 "POSTDECR", 327, 79 "PREDECR", 328, 80 "INCR", 329, 81 "DECR", 330, 82 "FIELD", 331, 83 "INDIRECT", 332, 84 "LASTTOKEN", 333, 85 }; 86 ptoken(n) 87 { 88 if(n<128) printf("lex: %c\n",n); 89 else if(n<=256) printf("lex:? %o\n",n); 90 else if(n<LASTTOKEN) printf("lex: %s\n",tok[n-257].tnm); 91 else printf("lex:? %o\n",n); 92 return; 93 } 94 95 char *tokname(n) 96 { 97 if (n<=256 || n >= LASTTOKEN) 98 n = 257; 99 return(tok[n-257].tnm); 100 } 101