1 /* 2 * This file was generated by the mksyntax program. 3 */ 4 5 #include "parser.h" 6 #include "shell.h" 7 #include "syntax.h" 8 9 /* syntax table used when not in quotes */ 10 const char basesyntax[SYNBASE + CHAR_MAX + 1] = { 11 [SYNBASE + PEOF] = CEOF, 12 [SYNBASE + CTLESC] = CCTL, 13 [SYNBASE + CTLVAR] = CCTL, 14 [SYNBASE + CTLENDVAR] = CCTL, 15 [SYNBASE + CTLBACKQ] = CCTL, 16 [SYNBASE + CTLBACKQ + CTLQUOTE] = CCTL, 17 [SYNBASE + CTLARI] = CCTL, 18 [SYNBASE + CTLENDARI] = CCTL, 19 [SYNBASE + CTLQUOTEMARK] = CCTL, 20 [SYNBASE + CTLQUOTEEND] = CCTL, 21 [SYNBASE + '\n'] = CNL, 22 [SYNBASE + '\\'] = CBACK, 23 [SYNBASE + '\''] = CSQUOTE, 24 [SYNBASE + '"'] = CDQUOTE, 25 [SYNBASE + '`'] = CBQUOTE, 26 [SYNBASE + '$'] = CVAR, 27 [SYNBASE + '}'] = CENDVAR, 28 [SYNBASE + '<'] = CSPCL, 29 [SYNBASE + '>'] = CSPCL, 30 [SYNBASE + '('] = CSPCL, 31 [SYNBASE + ')'] = CSPCL, 32 [SYNBASE + ';'] = CSPCL, 33 [SYNBASE + '&'] = CSPCL, 34 [SYNBASE + '|'] = CSPCL, 35 [SYNBASE + ' '] = CSPCL, 36 [SYNBASE + '\t'] = CSPCL, 37 }; 38 39 /* syntax table used when in double quotes */ 40 const char dqsyntax[SYNBASE + CHAR_MAX + 1] = { 41 [SYNBASE + PEOF] = CEOF, 42 [SYNBASE + CTLESC] = CCTL, 43 [SYNBASE + CTLVAR] = CCTL, 44 [SYNBASE + CTLENDVAR] = CCTL, 45 [SYNBASE + CTLBACKQ] = CCTL, 46 [SYNBASE + CTLBACKQ + CTLQUOTE] = CCTL, 47 [SYNBASE + CTLARI] = CCTL, 48 [SYNBASE + CTLENDARI] = CCTL, 49 [SYNBASE + CTLQUOTEMARK] = CCTL, 50 [SYNBASE + CTLQUOTEEND] = CCTL, 51 [SYNBASE + '\n'] = CNL, 52 [SYNBASE + '\\'] = CBACK, 53 [SYNBASE + '"'] = CENDQUOTE, 54 [SYNBASE + '`'] = CBQUOTE, 55 [SYNBASE + '$'] = CVAR, 56 [SYNBASE + '}'] = CENDVAR, 57 [SYNBASE + '!'] = CCTL, 58 [SYNBASE + '*'] = CCTL, 59 [SYNBASE + '?'] = CCTL, 60 [SYNBASE + '['] = CCTL, 61 [SYNBASE + ']'] = CCTL, 62 [SYNBASE + '='] = CCTL, 63 [SYNBASE + '~'] = CCTL, 64 [SYNBASE + ':'] = CCTL, 65 [SYNBASE + '/'] = CCTL, 66 [SYNBASE + '-'] = CCTL, 67 [SYNBASE + '^'] = CCTL, 68 }; 69 70 /* syntax table used when in single quotes */ 71 const char sqsyntax[SYNBASE + CHAR_MAX + 1] = { 72 [SYNBASE + PEOF] = CEOF, 73 [SYNBASE + CTLESC] = CCTL, 74 [SYNBASE + CTLVAR] = CCTL, 75 [SYNBASE + CTLENDVAR] = CCTL, 76 [SYNBASE + CTLBACKQ] = CCTL, 77 [SYNBASE + CTLBACKQ + CTLQUOTE] = CCTL, 78 [SYNBASE + CTLARI] = CCTL, 79 [SYNBASE + CTLENDARI] = CCTL, 80 [SYNBASE + CTLQUOTEMARK] = CCTL, 81 [SYNBASE + CTLQUOTEEND] = CCTL, 82 [SYNBASE + '\n'] = CNL, 83 [SYNBASE + '\\'] = CSBACK, 84 [SYNBASE + '\''] = CENDQUOTE, 85 [SYNBASE + '!'] = CCTL, 86 [SYNBASE + '*'] = CCTL, 87 [SYNBASE + '?'] = CCTL, 88 [SYNBASE + '['] = CCTL, 89 [SYNBASE + ']'] = CCTL, 90 [SYNBASE + '='] = CCTL, 91 [SYNBASE + '~'] = CCTL, 92 [SYNBASE + ':'] = CCTL, 93 [SYNBASE + '/'] = CCTL, 94 [SYNBASE + '-'] = CCTL, 95 [SYNBASE + '^'] = CCTL, 96 }; 97 98 /* syntax table used when in arithmetic */ 99 const char arisyntax[SYNBASE + CHAR_MAX + 1] = { 100 [SYNBASE + PEOF] = CEOF, 101 [SYNBASE + CTLESC] = CCTL, 102 [SYNBASE + CTLVAR] = CCTL, 103 [SYNBASE + CTLENDVAR] = CCTL, 104 [SYNBASE + CTLBACKQ] = CCTL, 105 [SYNBASE + CTLBACKQ + CTLQUOTE] = CCTL, 106 [SYNBASE + CTLARI] = CCTL, 107 [SYNBASE + CTLENDARI] = CCTL, 108 [SYNBASE + CTLQUOTEMARK] = CCTL, 109 [SYNBASE + CTLQUOTEEND] = CCTL, 110 [SYNBASE + '\n'] = CNL, 111 [SYNBASE + '\\'] = CBACK, 112 [SYNBASE + '`'] = CBQUOTE, 113 [SYNBASE + '"'] = CIGN, 114 [SYNBASE + '$'] = CVAR, 115 [SYNBASE + '}'] = CENDVAR, 116 [SYNBASE + '('] = CLP, 117 [SYNBASE + ')'] = CRP, 118 }; 119 120 /* character classification table */ 121 const char is_type[SYNBASE + CHAR_MAX + 1] = { 122 [SYNBASE + '0'] = ISDIGIT, 123 [SYNBASE + '1'] = ISDIGIT, 124 [SYNBASE + '2'] = ISDIGIT, 125 [SYNBASE + '3'] = ISDIGIT, 126 [SYNBASE + '4'] = ISDIGIT, 127 [SYNBASE + '5'] = ISDIGIT, 128 [SYNBASE + '6'] = ISDIGIT, 129 [SYNBASE + '7'] = ISDIGIT, 130 [SYNBASE + '8'] = ISDIGIT, 131 [SYNBASE + '9'] = ISDIGIT, 132 [SYNBASE + 'a'] = ISLOWER, 133 [SYNBASE + 'b'] = ISLOWER, 134 [SYNBASE + 'c'] = ISLOWER, 135 [SYNBASE + 'd'] = ISLOWER, 136 [SYNBASE + 'e'] = ISLOWER, 137 [SYNBASE + 'f'] = ISLOWER, 138 [SYNBASE + 'g'] = ISLOWER, 139 [SYNBASE + 'h'] = ISLOWER, 140 [SYNBASE + 'i'] = ISLOWER, 141 [SYNBASE + 'j'] = ISLOWER, 142 [SYNBASE + 'k'] = ISLOWER, 143 [SYNBASE + 'l'] = ISLOWER, 144 [SYNBASE + 'm'] = ISLOWER, 145 [SYNBASE + 'n'] = ISLOWER, 146 [SYNBASE + 'o'] = ISLOWER, 147 [SYNBASE + 'p'] = ISLOWER, 148 [SYNBASE + 'q'] = ISLOWER, 149 [SYNBASE + 'r'] = ISLOWER, 150 [SYNBASE + 's'] = ISLOWER, 151 [SYNBASE + 't'] = ISLOWER, 152 [SYNBASE + 'u'] = ISLOWER, 153 [SYNBASE + 'v'] = ISLOWER, 154 [SYNBASE + 'w'] = ISLOWER, 155 [SYNBASE + 'x'] = ISLOWER, 156 [SYNBASE + 'y'] = ISLOWER, 157 [SYNBASE + 'z'] = ISLOWER, 158 [SYNBASE + 'A'] = ISUPPER, 159 [SYNBASE + 'B'] = ISUPPER, 160 [SYNBASE + 'C'] = ISUPPER, 161 [SYNBASE + 'D'] = ISUPPER, 162 [SYNBASE + 'E'] = ISUPPER, 163 [SYNBASE + 'F'] = ISUPPER, 164 [SYNBASE + 'G'] = ISUPPER, 165 [SYNBASE + 'H'] = ISUPPER, 166 [SYNBASE + 'I'] = ISUPPER, 167 [SYNBASE + 'J'] = ISUPPER, 168 [SYNBASE + 'K'] = ISUPPER, 169 [SYNBASE + 'L'] = ISUPPER, 170 [SYNBASE + 'M'] = ISUPPER, 171 [SYNBASE + 'N'] = ISUPPER, 172 [SYNBASE + 'O'] = ISUPPER, 173 [SYNBASE + 'P'] = ISUPPER, 174 [SYNBASE + 'Q'] = ISUPPER, 175 [SYNBASE + 'R'] = ISUPPER, 176 [SYNBASE + 'S'] = ISUPPER, 177 [SYNBASE + 'T'] = ISUPPER, 178 [SYNBASE + 'U'] = ISUPPER, 179 [SYNBASE + 'V'] = ISUPPER, 180 [SYNBASE + 'W'] = ISUPPER, 181 [SYNBASE + 'X'] = ISUPPER, 182 [SYNBASE + 'Y'] = ISUPPER, 183 [SYNBASE + 'Z'] = ISUPPER, 184 [SYNBASE + '_'] = ISUNDER, 185 [SYNBASE + '#'] = ISSPECL, 186 [SYNBASE + '?'] = ISSPECL, 187 [SYNBASE + '$'] = ISSPECL, 188 [SYNBASE + '!'] = ISSPECL, 189 [SYNBASE + '-'] = ISSPECL, 190 [SYNBASE + '*'] = ISSPECL, 191 [SYNBASE + '@'] = ISSPECL, 192 }; 193