| #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 |
| }; |