#define TEOF 0 #define TNL 1 #define TSEMI 2 #define TBACKGND 3 #define TAND 4 #define TOR 5 #define TPIPE 6 #define TLP 7 #define TRP 8 #define TENDCASE 9 #define TENDBQUOTE 10 #define TREDIR 11 #define TWORD 12 #define TIF 13 #define TTHEN 14 #define TELSE 15 #define TELIF 16 #define TFI 17 #define TWHILE 18 #define TUNTIL 19 #define TFOR 20 #define TDO 21 #define TDONE 22 #define TBEGIN 23 #define TEND 24 #define TCASE 25 #define TESAC 26 #define TNOT 27 /* Array indicating which tokens mark the end of a list */ const char tokendlist[] = { 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, }; const char *const tokname[] = { "end of file", "newline", "\";\"", "\"&\"", "\"&&\"", "\"||\"", "\"|\"", "\"(\"", "\")\"", "\";;\"", "\"`\"", "redirection", "word", "\"if\"", "\"then\"", "\"else\"", "\"elif\"", "\"fi\"", "\"while\"", "\"until\"", "\"for\"", "\"do\"", "\"done\"", "\"{\"", "\"}\"", "\"case\"", "\"esac\"", "\"!\"", }; #define KWDOFFSET 13 const char *const parsekwd[] = { "if", "then", "else", "elif", "fi", "while", "until", "for", "do", "done", "{", "}", "case", "esac", "!", 0 };