|
|
1.1 ! root 1: #include "lex.h" ! 2: ! 3: /* ! 4: * State tables for operator recognition. ! 5: */ ! 6: ! 7: struct optab state0[] = { /* initial state */ ! 8: { ',', A_IMMRET, (int) &toktab[ ] }, /* "," */ ! 9: { '.', A_IMMRET, (int) &toktab[ ] }, /* "." */ ! 10: { '[', A_IMMRET, (int) &toktab[ ] }, /* "[" */ ! 11: { ']', A_IMMRET, (int) &toktab[ ] }, /* "]" */ ! 12: { '(', A_IMMRET, (int) &toktab[ ] }, /* "(" */ ! 13: { ')', A_IMMRET, (int) &toktab[ ] }, /* ")" */ ! 14: { ';', A_IMMRET, (int) &toktab[ ] }, /* ";" */ ! 15: { '{', A_IMMRET, (int) &toktab[ ] }, /* "{" */ ! 16: { '}', A_IMMRET, (int) &toktab[ ] }, /* "}" */ ! 17: { '!', A_IMMRET, (int) &toktab[ ] }, /* "!" */ ! 18: { '\\', A_IMMRET, (int) &toktab[ ] }, /* "\\" */ ! 19: { ':', A_GOTO, (int) state1 }, /* ":" ... */ ! 20: { '<', A_GOTO, (int) state2 }, /* "<" ... */ ! 21: { '>', A_GOTO, (int) state4 }, /* ">" ... */ ! 22: { '=', A_GOTO, (int) state5 }, /* "=" ... */ ! 23: { '|', A_GOTO, (int) state3 }, /* "|" ... */ ! 24: { '+', A_GOTO, (int) state7 }, /* "+" ... */ ! 25: { '-', A_GOTO, (int) state8 }, /* "-" ... */ ! 26: { '*', A_GOTO, (int) state9 }, /* "*" ... */ ! 27: { '^', A_GOTO, (int) state6 }, /* "^" ... */ ! 28: { '~', A_GOTO, (int) state29 }, /* "~" ... */ ! 29: { '/', A_GOTO, (int) state21 }, /* "/" ... */ ! 30: { '%', A_GOTO, (int) state30 }, /* "%" ... */ ! 31: { '?', A_GOTO, (int) state36 }, /* "?" ... */ ! 32: { '&', A_GOTO, (int) state38 }, /* "&" ... */ ! 33: { '@', A_GOTO, (int) state40 }, /* "@" ... */ ! 34: { 0, A_ERROR, 0 } ! 35: }; ! 36: ! 37: struct optab state1[] = { /* ":" */ ! 38: { '=', A_GOTO, (int) state10 }, /* ":=" ... */ ! 39: { 0, A_RETURN, (int) &toktab[ ] } /* ":" */ ! 40: }; ! 41: ! 42: struct optab state2[] = { /* "<" */ ! 43: { '-', A_GOTO, (int) state11 }, /* "<-" ... */ ! 44: { '<', A_GOTO, (int) state32 }, /* "<<" ... */ ! 45: { ':', A_GOTO, (int) state46 }, /* "<:" ... */ ! 46: { '=', A_GOTO, (int) state56 }, /* "<=" ... */ ! 47: { 0, A_RETURN, (int) &toktab[ ] } /* "<" */ ! 48: }; ! 49: ! 50: struct optab state3[] = { /* "|" */ ! 51: { '|', A_GOTO, (int) state22 }, /* "||" ... */ ! 52: { 0, A_RETURN, (int) &toktab[ ] } /* "|" */ ! 53: }; ! 54: ! 55: struct optab state4[] = { /* ">" */ ! 56: { '>', A_GOTO, (int) state33 }, /* ">>" ... */ ! 57: { ':', A_GOTO, (int) state44 }, /* ">:" ... */ ! 58: { '=', A_GOTO, (int) state57 }, /* ">=" ... */ ! 59: { 0, A_RETURN, (int) &toktab[ ] } /* ">" */ ! 60: }; ! 61: ! 62: struct optab state5[] = { /* "=" */ ! 63: { '=', A_GOTO, (int) state12 }, /* "==" ... */ ! 64: { ':', A_GOTO, (int) state42 }, /* "=:" ... */ ! 65: { 0, A_RETURN, (int) &toktab[ ] } /* "=" */ ! 66: }; ! 67: ! 68: struct optab state6[] = { /* "^" */ ! 69: { ':', A_GOTO, (int) state23 }, /* "^:" ... */ ! 70: { 0, A_RETURN, (int) &toktab[ ] } /* "^" */ ! 71: }; ! 72: ! 73: struct optab state7[] = { /* "+" */ ! 74: { ':', A_GOTO, (int) state15 }, /* "+:" ... */ ! 75: { '+', A_GOTO, (int) state16 }, /* "++" ... */ ! 76: { 0, A_RETURN, (int) &toktab[ ] } /* "+" */ ! 77: }; ! 78: ! 79: struct optab state8[] = { /* "-" */ ! 80: { ':', A_GOTO, (int) state17 }, /* "-:" ... */ ! 81: { '-', A_GOTO, (int) state18 }, /* "--" ... */ ! 82: { 0, A_RETURN, (int) &toktab[ ] } /* "-" */ ! 83: }; ! 84: ! 85: struct optab state9[] = { /* "*" */ ! 86: { ':', A_GOTO, (int) state19 }, /* "*:" ... */ ! 87: { '*', A_GOTO, (int) state20 }, /* "**" ... */ ! 88: { 0, A_RETURN, (int) &toktab[ ] } /* "*" */ ! 89: }; ! 90: ! 91: struct optab state10[] = { /* ":=" */ ! 92: { ':', A_IMMRET, (int) &toktab[ ] }, /* ":=:" */ ! 93: { 0, A_RETURN, (int) &toktab[ ] } /* ":=" */ ! 94: }; ! 95: ! 96: struct optab state11[] = { /* "<-" */ ! 97: { '>', A_IMMRET, (int) &toktab[ ] }, /* "<->" */ ! 98: { 0, A_RETURN, (int) &toktab[ ] } /* "<-" */ ! 99: }; ! 100: ! 101: struct optab state12[] = { /* "==" */ ! 102: { '=', A_GOTO, (int) state61 }, /* "===" ... */ ! 103: { ':', A_GOTO, (int) state48 }, /* "==:" ... */ ! 104: { 0, A_RETURN, (int) &toktab[ ] } /* "==" */ ! 105: }; ! 106: ! 107: struct optab state13[] = { /* "~=" */ ! 108: { '=', A_GOTO, (int) state14 }, /* "~==" ... */ ! 109: { ':', A_GOTO, (int) state43 }, /* "~=:" ... */ ! 110: { 0, A_RETURN, (int) &toktab[ ] } /* "~=" */ ! 111: }; ! 112: ! 113: struct optab state14[] = { /* "~==" */ ! 114: { ':', A_GOTO, (int) state49 }, /* "~==:" ... */ ! 115: { '=', A_GOTO, (int) state60 }, /* "~===" ... */ ! 116: { 0, A_RETURN, (int) &toktab[ ] } /* "~==" */ ! 117: }; ! 118: ! 119: struct optab state15[] = { /* "+:" */ ! 120: { '=', A_IMMRET, (int) &toktab[ ] }, /* "+:=" */ ! 121: { 0, A_RETURN, (int) &toktab[ ] } /* "+:" */ ! 122: }; ! 123: ! 124: struct optab state16[] = { /* "++" */ ! 125: { ':', A_GOTO, (int) state24 }, /* "++:" ... */ ! 126: { 0, A_RETURN, (int) &toktab[ ] } /* "++" */ ! 127: }; ! 128: ! 129: struct optab state17[] = { /* "-:" */ ! 130: { '=', A_IMMRET, (int) &toktab[ ] }, /* "-:=" */ ! 131: { 0, A_RETURN, (int) &toktab[ ] } /* "-:" */ ! 132: }; ! 133: ! 134: struct optab state18[] = { /* "--" */ ! 135: { ':', A_GOTO, (int) state25 }, /* "--:" ... */ ! 136: { 0, A_RETURN, (int) &toktab[ ] } /* "--" */ ! 137: }; ! 138: ! 139: struct optab state19[] = { /* "*:" */ ! 140: { '=', A_IMMRET, (int) &toktab[ ] }, /* "*:=" */ ! 141: { 0, A_ERROR, 0 } ! 142: }; ! 143: ! 144: struct optab state20[] = { /* "**" */ ! 145: { ':', A_GOTO, (int) state26 }, /* "**:" ... */ ! 146: { 0, A_RETURN, (int) &toktab[ ] } /* "**" */ ! 147: }; ! 148: ! 149: struct optab state21[] = { /* "/" */ ! 150: { ':', A_GOTO, (int) state27 }, /* "/:" ... */ ! 151: { 0, A_RETURN, (int) &toktab[ ] } /* "/" */ ! 152: }; ! 153: ! 154: struct optab state22[] = { /* "||" */ ! 155: { ':', A_GOTO, (int) state28 }, /* "||:" ... */ ! 156: { '|', A_GOTO, (int) state34 }, /* "|||" ... */ ! 157: { 0, A_RETURN, (int) &toktab[ ] } /* "||" */ ! 158: }; ! 159: ! 160: struct optab state23[] = { /* "^:" */ ! 161: { '=', A_IMMRET, (int) &toktab[ ] }, /* "^:=" */ ! 162: { 0, A_ERROR, 0 } ! 163: }; ! 164: ! 165: struct optab state24[] = { /* "++:" */ ! 166: { '=', A_IMMRET, (int) &toktab[ ] }, /* "++:=" */ ! 167: { 0, A_ERROR, 0 } ! 168: }; ! 169: ! 170: struct optab state25[] = { /* "--:" */ ! 171: { '=', A_IMMRET, (int) &toktab[ ] }, /* "--:=" */ ! 172: { 0, A_ERROR, 0 } ! 173: }; ! 174: ! 175: struct optab state26[] = { /* "**:" */ ! 176: { '=', A_IMMRET, (int) &toktab[ ] }, /* "**:=" */ ! 177: { 0, A_ERROR, 0 } ! 178: }; ! 179: ! 180: struct optab state27[] = { /* "/:" */ ! 181: { '=', A_IMMRET, (int) &toktab[ ] }, /* "/:=" */ ! 182: { 0, A_ERROR, 0 } ! 183: }; ! 184: ! 185: struct optab state28[] = { /* "||:" */ ! 186: { '=', A_IMMRET, (int) &toktab[ ] }, /* "||:=" */ ! 187: { 0, A_ERROR, 0 } ! 188: }; ! 189: ! 190: struct optab state29[] = { /* "~" */ ! 191: { '=', A_GOTO, (int) state13 }, /* "~=" ... */ ! 192: { 0, A_RETURN, (int) &toktab[ ] } /* "~" */ ! 193: }; ! 194: ! 195: struct optab state30[] = { /* "%" */ ! 196: { ':', A_GOTO, (int) state31 }, /* "%:" ... */ ! 197: { 0, A_RETURN, (int) &toktab[ ] } /* "%" */ ! 198: }; ! 199: ! 200: struct optab state31[] = { /* "%:" */ ! 201: { '=', A_IMMRET, (int) &toktab[ ] }, /* "%:=" */ ! 202: { 0, A_ERROR, 0 } ! 203: }; ! 204: ! 205: struct optab state32[] = { /* "<<" */ ! 206: { ':', A_GOTO, (int) state52 }, /* "<<:" ... */ ! 207: { '=', A_GOTO, (int) state58 }, /* "<<=" ... */ ! 208: { 0, A_RETURN, (int) &toktab[ ] } /* "<<" */ ! 209: }; ! 210: ! 211: struct optab state33[] = { /* ">>" */ ! 212: { ':', A_GOTO, (int) state50 }, /* ">>:" ... */ ! 213: { '=', A_GOTO, (int) state59 }, /* ">>=" ... */ ! 214: { 0, A_RETURN, (int) &toktab[ ] } /* ">>" */ ! 215: }; ! 216: ! 217: struct optab state34[] = { /* "|||" */ ! 218: { ':', A_GOTO, (int) state35 }, /* "|||:" ... */ ! 219: { 0, A_RETURN, (int) &toktab[ ] } /* "|||" */ ! 220: }; ! 221: ! 222: struct optab state35[] = { /* "|||:" */ ! 223: { '=', A_IMMRET, (int) &toktab[ ] }, /* "|||:=" */ ! 224: { 0, A_ERROR, 0 } ! 225: }; ! 226: ! 227: struct optab state36[] = { /* "?" */ ! 228: { ':', A_GOTO, (int) state37 }, /* "?:" ... */ ! 229: { 0, A_RETURN, (int) &toktab[ ] } /* "?" */ ! 230: }; ! 231: ! 232: struct optab state37[] = { /* "?:" */ ! 233: { '=', A_IMMRET, (int) &toktab[ ] }, /* "?:=" */ ! 234: { 0, A_ERROR, 0 } ! 235: }; ! 236: ! 237: struct optab state38[] = { /* "&" */ ! 238: { ':', A_GOTO, (int) state39 }, /* "&:" ... */ ! 239: { 0, A_RETURN, (int) &toktab[ ] } /* "&" */ ! 240: }; ! 241: ! 242: struct optab state39[] = { /* "&:" */ ! 243: { '=', A_IMMRET, (int) &toktab[ ] }, /* "&:=" */ ! 244: { 0, A_ERROR, 0 } ! 245: }; ! 246: ! 247: struct optab state40[] = { /* "@" */ ! 248: { ':', A_GOTO, (int) state41 }, /* "@:" ... */ ! 249: { 0, A_RETURN, (int) &toktab[ ] } /* "@" */ ! 250: }; ! 251: ! 252: struct optab state41[] = { /* "@:" */ ! 253: { '=', A_IMMRET, (int) &toktab[ ] }, /* "@:=" */ ! 254: { 0, A_ERROR, 0 } ! 255: }; ! 256: ! 257: struct optab state42[] = { /* "=:" */ ! 258: { '=', A_IMMRET, (int) &toktab[ ] }, /* "=:=" */ ! 259: { 0, A_ERROR, 0 } ! 260: }; ! 261: ! 262: struct optab state43[] = { /* "~=:" */ ! 263: { '=', A_IMMRET, (int) &toktab[ ] }, /* "~=:=" */ ! 264: { 0, A_ERROR, 0 } ! 265: }; ! 266: ! 267: struct optab state44[] = { /* ">:" */ ! 268: { '=', A_IMMRET, (int) &toktab[ ] }, /* ">:=" */ ! 269: { 0, A_ERROR, 0 } ! 270: }; ! 271: ! 272: struct optab state45[] = { /* ">=:" */ ! 273: { '=', A_IMMRET, (int) &toktab[ ] }, /* ">=:=" */ ! 274: { 0, A_ERROR, 0 } ! 275: }; ! 276: ! 277: struct optab state46[] = { /* "<:" */ ! 278: { '=', A_IMMRET, (int) &toktab[ ] }, /* "<:=" */ ! 279: { 0, A_ERROR, 0 } ! 280: }; ! 281: ! 282: struct optab state47[] = { /* "<=:" */ ! 283: { '=', A_IMMRET, (int) &toktab[ ] }, /* "<=:=" */ ! 284: { 0, A_ERROR, 0 } ! 285: }; ! 286: ! 287: struct optab state48[] = { /* "==:" */ ! 288: { '=', A_IMMRET, (int) &toktab[ ] }, /* "==:=" */ ! 289: { 0, A_ERROR, 0 } ! 290: }; ! 291: ! 292: struct optab state49[] = { /* "~==:" */ ! 293: { '=', A_IMMRET, (int) &toktab[ ] }, /* "~==:=" */ ! 294: { 0, A_ERROR, 0 } ! 295: }; ! 296: ! 297: struct optab state50[] = { /* ">>:" */ ! 298: { '=', A_IMMRET, (int) &toktab[ ] }, /* ">>:=" */ ! 299: { 0, A_ERROR, 0 } ! 300: }; ! 301: ! 302: struct optab state51[] = { /* ">>=:" */ ! 303: { '=', A_IMMRET, (int) &toktab[ ] }, /* ">>=:=" */ ! 304: { 0, A_ERROR, 0 } ! 305: }; ! 306: ! 307: struct optab state52[] = { /* "<<:" */ ! 308: { '=', A_IMMRET, (int) &toktab[ ] }, /* "<<:=" */ ! 309: { 0, A_ERROR, 0 } ! 310: }; ! 311: ! 312: struct optab state53[] = { /* "<<=:" */ ! 313: { '=', A_IMMRET, (int) &toktab[ ] }, /* "<<=:=" */ ! 314: { 0, A_ERROR, 0 } ! 315: }; ! 316: ! 317: struct optab state54[] = { /* "===:" */ ! 318: { '=', A_IMMRET, (int) &toktab[ ] }, /* "===:=" */ ! 319: { 0, A_ERROR, 0 } ! 320: }; ! 321: ! 322: struct optab state55[] = { /* "~===:" */ ! 323: { '=', A_IMMRET, (int) &toktab[ ] }, /* "~===:=" */ ! 324: { 0, A_ERROR, 0 } ! 325: }; ! 326: ! 327: struct optab state56[] = { /* "<=" */ ! 328: { ':', A_GOTO, (int) state47 }, /* "<=:" ... */ ! 329: { 0, A_RETURN, (int) &toktab[ ] } /* "<=" */ ! 330: }; ! 331: ! 332: struct optab state57[] = { /* ">=" */ ! 333: { ':', A_GOTO, (int) state45 }, /* ">=:" ... */ ! 334: { 0, A_RETURN, (int) &toktab[ ] } /* ">=" */ ! 335: }; ! 336: ! 337: struct optab state58[] = { /* "<<=" */ ! 338: { ':', A_GOTO, (int) state53 }, /* "<<=:" ... */ ! 339: { 0, A_RETURN, (int) &toktab[ ] } /* "<<=" */ ! 340: }; ! 341: ! 342: struct optab state59[] = { /* ">>=" */ ! 343: { ':', A_GOTO, (int) state51 }, /* ">>=:" ... */ ! 344: { 0, A_RETURN, (int) &toktab[ ] } /* ">>=" */ ! 345: }; ! 346: ! 347: struct optab state60[] = { /* "~===" */ ! 348: { ':', A_GOTO, (int) state55 }, /* "~===:" ... */ ! 349: { 0, A_RETURN, (int) &toktab[ ] } /* "~===" */ ! 350: }; ! 351: ! 352: struct optab state61[] = { /* "===" */ ! 353: { ':', A_GOTO, (int) state54 }, /* "===:" ... */ ! 354: { 0, A_RETURN, (int) &toktab[ ] } /* "===" */ ! 355: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.