xref: /csrg-svn/old/awk/token.c (revision 9908)
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