1 2/* Array indicating which tokens mark the end of a list */ 3static const char tokendlist[] = { 4 1, 5 0, 6 0, 7 0, 8 0, 9 0, 10 0, 11 0, 12 1, 13 1, 14 1, 15 0, 16 0, 17 0, 18 0, 19 1, 20 1, 21 1, 22 1, 23 1, 24 1, 25 0, 26 0, 27 0, 28 1, 29 0, 30 0, 31 0, 32 1, 33}; 34 35static const char *const tokname[] = { 36 "end of file", 37 "newline", 38 "\";\"", 39 "\"&\"", 40 "\"&&\"", 41 "\"||\"", 42 "\"|\"", 43 "\"(\"", 44 "\")\"", 45 "\";;\"", 46 "\"`\"", 47 "redirection", 48 "word", 49 "\"!\"", 50 "\"case\"", 51 "\"do\"", 52 "\"done\"", 53 "\"elif\"", 54 "\"else\"", 55 "\"esac\"", 56 "\"fi\"", 57 "\"for\"", 58 "\"if\"", 59 "\"in\"", 60 "\"then\"", 61 "\"until\"", 62 "\"while\"", 63 "\"{\"", 64 "\"}\"", 65}; 66 67#define KWDOFFSET 13 68 69static const char *const parsekwd[] = { 70 "!", 71 "case", 72 "do", 73 "done", 74 "elif", 75 "else", 76 "esac", 77 "fi", 78 "for", 79 "if", 80 "in", 81 "then", 82 "until", 83 "while", 84 "{", 85 "}" 86}; 87