diff options
Diffstat (limited to '')
| -rw-r--r-- | lex_yy.c | 923 | ||||
| -rw-r--r-- | lua.lex | 85 |
2 files changed, 85 insertions, 923 deletions
diff --git a/lex_yy.c b/lex_yy.c deleted file mode 100644 index cc129d9b..00000000 --- a/lex_yy.c +++ /dev/null | |||
| @@ -1,923 +0,0 @@ | |||
| 1 | # include "stdio.h" | ||
| 2 | # define U(x) x | ||
| 3 | # define NLSTATE yyprevious=YYNEWLINE | ||
| 4 | # define BEGIN yybgin = yysvec + 1 + | ||
| 5 | # define INITIAL 0 | ||
| 6 | # define YYLERR yysvec | ||
| 7 | # define YYSTATE (yyestate-yysvec-1) | ||
| 8 | # define YYOPTIM 1 | ||
| 9 | # define YYLMAX BUFSIZ | ||
| 10 | # define output(c) putc(c,yyout) | ||
| 11 | # define input() (((yytchar=yysptr>yysbuf?U(*--yysptr):getc(yyin))==10?(yylineno++,yytchar):yytchar)==EOF?0:yytchar) | ||
| 12 | # define unput(c) {yytchar= (c);if(yytchar=='\n')yylineno--;*yysptr++=yytchar;} | ||
| 13 | # define yymore() (yymorfg=1) | ||
| 14 | # define ECHO fprintf(yyout, "%s",yytext) | ||
| 15 | # define REJECT { nstr = yyreject(); goto yyfussy;} | ||
| 16 | int yyleng; extern char yytext[]; | ||
| 17 | int yymorfg; | ||
| 18 | extern char *yysptr, yysbuf[]; | ||
| 19 | int yytchar; | ||
| 20 | FILE *yyin = {stdin}, *yyout = {stdout}; | ||
| 21 | extern int yylineno; | ||
| 22 | struct yysvf { | ||
| 23 | struct yywork *yystoff; | ||
| 24 | struct yysvf *yyother; | ||
| 25 | int *yystops;}; | ||
| 26 | struct yysvf *yyestate; | ||
| 27 | extern struct yysvf yysvec[], *yybgin; | ||
| 28 | #include <stdlib.h> | ||
| 29 | #include <string.h> | ||
| 30 | |||
| 31 | #include "opcode.h" | ||
| 32 | #include "hash.h" | ||
| 33 | #include "inout.h" | ||
| 34 | #include "table.h" | ||
| 35 | #include "y_tab.h" | ||
| 36 | |||
| 37 | #undef input | ||
| 38 | #undef unput | ||
| 39 | |||
| 40 | static Input input; | ||
| 41 | static Unput unput; | ||
| 42 | |||
| 43 | void lua_setinput (Input fn) | ||
| 44 | { | ||
| 45 | input = fn; | ||
| 46 | } | ||
| 47 | |||
| 48 | void lua_setunput (Unput fn) | ||
| 49 | { | ||
| 50 | unput = fn; | ||
| 51 | } | ||
| 52 | |||
| 53 | char *lua_lasttext (void) | ||
| 54 | { | ||
| 55 | return yytext; | ||
| 56 | } | ||
| 57 | |||
| 58 | # define YYNEWLINE 10 | ||
| 59 | yylex(){ | ||
| 60 | int nstr; extern int yyprevious; | ||
| 61 | while((nstr = yylook()) >= 0) | ||
| 62 | yyfussy: switch(nstr){ | ||
| 63 | case 0: | ||
| 64 | if(yywrap()) return(0); break; | ||
| 65 | case 1: | ||
| 66 | ; | ||
| 67 | break; | ||
| 68 | case 2: | ||
| 69 | {yylval.vInt = 1; return DEBUG;} | ||
| 70 | break; | ||
| 71 | case 3: | ||
| 72 | {yylval.vInt = 0; return DEBUG;} | ||
| 73 | break; | ||
| 74 | case 4: | ||
| 75 | lua_linenumber++; | ||
| 76 | break; | ||
| 77 | case 5: | ||
| 78 | ; | ||
| 79 | break; | ||
| 80 | case 6: | ||
| 81 | return LOCAL; | ||
| 82 | break; | ||
| 83 | case 7: | ||
| 84 | return IF; | ||
| 85 | break; | ||
| 86 | case 8: | ||
| 87 | return THEN; | ||
| 88 | break; | ||
| 89 | case 9: | ||
| 90 | return ELSE; | ||
| 91 | break; | ||
| 92 | case 10: | ||
| 93 | return ELSEIF; | ||
| 94 | break; | ||
| 95 | case 11: | ||
| 96 | return WHILE; | ||
| 97 | break; | ||
| 98 | case 12: | ||
| 99 | return DO; | ||
| 100 | break; | ||
| 101 | case 13: | ||
| 102 | return REPEAT; | ||
| 103 | break; | ||
| 104 | case 14: | ||
| 105 | return UNTIL; | ||
| 106 | break; | ||
| 107 | case 15: | ||
| 108 | { | ||
| 109 | yylval.vWord = lua_nfile-1; | ||
| 110 | return FUNCTION; | ||
| 111 | } | ||
| 112 | break; | ||
| 113 | case 16: | ||
| 114 | return END; | ||
| 115 | break; | ||
| 116 | case 17: | ||
| 117 | return RETURN; | ||
| 118 | break; | ||
| 119 | case 18: | ||
| 120 | return LOCAL; | ||
| 121 | break; | ||
| 122 | case 19: | ||
| 123 | return NIL; | ||
| 124 | break; | ||
| 125 | case 20: | ||
| 126 | return AND; | ||
| 127 | break; | ||
| 128 | case 21: | ||
| 129 | return OR; | ||
| 130 | break; | ||
| 131 | case 22: | ||
| 132 | return NOT; | ||
| 133 | break; | ||
| 134 | case 23: | ||
| 135 | return NE; | ||
| 136 | break; | ||
| 137 | case 24: | ||
| 138 | return LE; | ||
| 139 | break; | ||
| 140 | case 25: | ||
| 141 | return GE; | ||
| 142 | break; | ||
| 143 | case 26: | ||
| 144 | return CONC; | ||
| 145 | break; | ||
| 146 | case 27: | ||
| 147 | case 28: | ||
| 148 | { | ||
| 149 | yylval.vWord = lua_findenclosedconstant (yytext); | ||
| 150 | return STRING; | ||
| 151 | } | ||
| 152 | break; | ||
| 153 | case 29: | ||
| 154 | case 30: | ||
| 155 | case 31: | ||
| 156 | case 32: | ||
| 157 | { | ||
| 158 | yylval.vFloat = atof(yytext); | ||
| 159 | return NUMBER; | ||
| 160 | } | ||
| 161 | break; | ||
| 162 | case 33: | ||
| 163 | { | ||
| 164 | yylval.vWord = lua_findsymbol (yytext); | ||
| 165 | return NAME; | ||
| 166 | } | ||
| 167 | break; | ||
| 168 | case 34: | ||
| 169 | return *yytext; | ||
| 170 | break; | ||
| 171 | case -1: | ||
| 172 | break; | ||
| 173 | default: | ||
| 174 | fprintf(yyout,"bad switch yylook %d",nstr); | ||
| 175 | } return(0); } | ||
| 176 | /* end of yylex */ | ||
| 177 | int yyvstop[] = { | ||
| 178 | 0, | ||
| 179 | |||
| 180 | 1, | ||
| 181 | 0, | ||
| 182 | |||
| 183 | 1, | ||
| 184 | 0, | ||
| 185 | |||
| 186 | 34, | ||
| 187 | 0, | ||
| 188 | |||
| 189 | 1, | ||
| 190 | 34, | ||
| 191 | 0, | ||
| 192 | |||
| 193 | 4, | ||
| 194 | 0, | ||
| 195 | |||
| 196 | 34, | ||
| 197 | 0, | ||
| 198 | |||
| 199 | 34, | ||
| 200 | 0, | ||
| 201 | |||
| 202 | 34, | ||
| 203 | 0, | ||
| 204 | |||
| 205 | 34, | ||
| 206 | 0, | ||
| 207 | |||
| 208 | 29, | ||
| 209 | 34, | ||
| 210 | 0, | ||
| 211 | |||
| 212 | 34, | ||
| 213 | 0, | ||
| 214 | |||
| 215 | 34, | ||
| 216 | 0, | ||
| 217 | |||
| 218 | 33, | ||
| 219 | 34, | ||
| 220 | 0, | ||
| 221 | |||
| 222 | 33, | ||
| 223 | 34, | ||
| 224 | 0, | ||
| 225 | |||
| 226 | 33, | ||
| 227 | 34, | ||
| 228 | 0, | ||
| 229 | |||
| 230 | 33, | ||
| 231 | 34, | ||
| 232 | 0, | ||
| 233 | |||
| 234 | 33, | ||
| 235 | 34, | ||
| 236 | 0, | ||
| 237 | |||
| 238 | 33, | ||
| 239 | 34, | ||
| 240 | 0, | ||
| 241 | |||
| 242 | 33, | ||
| 243 | 34, | ||
| 244 | 0, | ||
| 245 | |||
| 246 | 33, | ||
| 247 | 34, | ||
| 248 | 0, | ||
| 249 | |||
| 250 | 33, | ||
| 251 | 34, | ||
| 252 | 0, | ||
| 253 | |||
| 254 | 33, | ||
| 255 | 34, | ||
| 256 | 0, | ||
| 257 | |||
| 258 | 33, | ||
| 259 | 34, | ||
| 260 | 0, | ||
| 261 | |||
| 262 | 33, | ||
| 263 | 34, | ||
| 264 | 0, | ||
| 265 | |||
| 266 | 33, | ||
| 267 | 34, | ||
| 268 | 0, | ||
| 269 | |||
| 270 | 34, | ||
| 271 | 0, | ||
| 272 | |||
| 273 | 34, | ||
| 274 | 0, | ||
| 275 | |||
| 276 | 1, | ||
| 277 | 0, | ||
| 278 | |||
| 279 | 27, | ||
| 280 | 0, | ||
| 281 | |||
| 282 | 28, | ||
| 283 | 0, | ||
| 284 | |||
| 285 | 5, | ||
| 286 | 0, | ||
| 287 | |||
| 288 | 26, | ||
| 289 | 0, | ||
| 290 | |||
| 291 | 30, | ||
| 292 | 0, | ||
| 293 | |||
| 294 | 29, | ||
| 295 | 0, | ||
| 296 | |||
| 297 | 29, | ||
| 298 | 0, | ||
| 299 | |||
| 300 | 24, | ||
| 301 | 0, | ||
| 302 | |||
| 303 | 25, | ||
| 304 | 0, | ||
| 305 | |||
| 306 | 33, | ||
| 307 | 0, | ||
| 308 | |||
| 309 | 33, | ||
| 310 | 0, | ||
| 311 | |||
| 312 | 12, | ||
| 313 | 33, | ||
| 314 | 0, | ||
| 315 | |||
| 316 | 33, | ||
| 317 | 0, | ||
| 318 | |||
| 319 | 33, | ||
| 320 | 0, | ||
| 321 | |||
| 322 | 33, | ||
| 323 | 0, | ||
| 324 | |||
| 325 | 7, | ||
| 326 | 33, | ||
| 327 | 0, | ||
| 328 | |||
| 329 | 33, | ||
| 330 | 0, | ||
| 331 | |||
| 332 | 33, | ||
| 333 | 0, | ||
| 334 | |||
| 335 | 33, | ||
| 336 | 0, | ||
| 337 | |||
| 338 | 21, | ||
| 339 | 33, | ||
| 340 | 0, | ||
| 341 | |||
| 342 | 33, | ||
| 343 | 0, | ||
| 344 | |||
| 345 | 33, | ||
| 346 | 0, | ||
| 347 | |||
| 348 | 33, | ||
| 349 | 0, | ||
| 350 | |||
| 351 | 33, | ||
| 352 | 0, | ||
| 353 | |||
| 354 | 23, | ||
| 355 | 0, | ||
| 356 | |||
| 357 | 29, | ||
| 358 | 30, | ||
| 359 | 0, | ||
| 360 | |||
| 361 | 31, | ||
| 362 | 0, | ||
| 363 | |||
| 364 | 20, | ||
| 365 | 33, | ||
| 366 | 0, | ||
| 367 | |||
| 368 | 33, | ||
| 369 | 0, | ||
| 370 | |||
| 371 | 16, | ||
| 372 | 33, | ||
| 373 | 0, | ||
| 374 | |||
| 375 | 33, | ||
| 376 | 0, | ||
| 377 | |||
| 378 | 33, | ||
| 379 | 0, | ||
| 380 | |||
| 381 | 19, | ||
| 382 | 33, | ||
| 383 | 0, | ||
| 384 | |||
| 385 | 22, | ||
| 386 | 33, | ||
| 387 | 0, | ||
| 388 | |||
| 389 | 33, | ||
| 390 | 0, | ||
| 391 | |||
| 392 | 33, | ||
| 393 | 0, | ||
| 394 | |||
| 395 | 33, | ||
| 396 | 0, | ||
| 397 | |||
| 398 | 33, | ||
| 399 | 0, | ||
| 400 | |||
| 401 | 33, | ||
| 402 | 0, | ||
| 403 | |||
| 404 | 32, | ||
| 405 | 0, | ||
| 406 | |||
| 407 | 9, | ||
| 408 | 33, | ||
| 409 | 0, | ||
| 410 | |||
| 411 | 33, | ||
| 412 | 0, | ||
| 413 | |||
| 414 | 33, | ||
| 415 | 0, | ||
| 416 | |||
| 417 | 33, | ||
| 418 | 0, | ||
| 419 | |||
| 420 | 33, | ||
| 421 | 0, | ||
| 422 | |||
| 423 | 8, | ||
| 424 | 33, | ||
| 425 | 0, | ||
| 426 | |||
| 427 | 33, | ||
| 428 | 0, | ||
| 429 | |||
| 430 | 33, | ||
| 431 | 0, | ||
| 432 | |||
| 433 | 31, | ||
| 434 | 32, | ||
| 435 | 0, | ||
| 436 | |||
| 437 | 33, | ||
| 438 | 0, | ||
| 439 | |||
| 440 | 33, | ||
| 441 | 0, | ||
| 442 | |||
| 443 | 6, | ||
| 444 | 18, | ||
| 445 | 33, | ||
| 446 | 0, | ||
| 447 | |||
| 448 | 33, | ||
| 449 | 0, | ||
| 450 | |||
| 451 | 33, | ||
| 452 | 0, | ||
| 453 | |||
| 454 | 14, | ||
| 455 | 33, | ||
| 456 | 0, | ||
| 457 | |||
| 458 | 11, | ||
| 459 | 33, | ||
| 460 | 0, | ||
| 461 | |||
| 462 | 10, | ||
| 463 | 33, | ||
| 464 | 0, | ||
| 465 | |||
| 466 | 33, | ||
| 467 | 0, | ||
| 468 | |||
| 469 | 13, | ||
| 470 | 33, | ||
| 471 | 0, | ||
| 472 | |||
| 473 | 17, | ||
| 474 | 33, | ||
| 475 | 0, | ||
| 476 | |||
| 477 | 2, | ||
| 478 | 0, | ||
| 479 | |||
| 480 | 33, | ||
| 481 | 0, | ||
| 482 | |||
| 483 | 15, | ||
| 484 | 33, | ||
| 485 | 0, | ||
| 486 | |||
| 487 | 3, | ||
| 488 | 0, | ||
| 489 | 0}; | ||
| 490 | # define YYTYPE char | ||
| 491 | struct yywork { YYTYPE verify, advance; } yycrank[] = { | ||
| 492 | 0,0, 0,0, 1,3, 0,0, | ||
| 493 | 0,0, 0,0, 0,0, 0,0, | ||
| 494 | 0,0, 0,0, 1,4, 1,5, | ||
| 495 | 6,29, 4,28, 0,0, 0,0, | ||
| 496 | 0,0, 0,0, 7,31, 0,0, | ||
| 497 | 6,29, 6,29, 0,0, 0,0, | ||
| 498 | 0,0, 0,0, 7,31, 7,31, | ||
| 499 | 0,0, 0,0, 0,0, 0,0, | ||
| 500 | 0,0, 0,0, 0,0, 1,6, | ||
| 501 | 4,28, 0,0, 0,0, 0,0, | ||
| 502 | 1,7, 0,0, 0,0, 0,0, | ||
| 503 | 1,3, 6,30, 1,8, 1,9, | ||
| 504 | 0,0, 1,10, 6,29, 7,31, | ||
| 505 | 8,33, 0,0, 6,29, 0,0, | ||
| 506 | 7,32, 0,0, 0,0, 6,29, | ||
| 507 | 7,31, 1,11, 0,0, 1,12, | ||
| 508 | 2,27, 7,31, 1,13, 11,39, | ||
| 509 | 12,40, 1,13, 26,56, 0,0, | ||
| 510 | 0,0, 2,8, 2,9, 0,0, | ||
| 511 | 6,29, 0,0, 0,0, 6,29, | ||
| 512 | 0,0, 0,0, 7,31, 0,0, | ||
| 513 | 0,0, 7,31, 0,0, 0,0, | ||
| 514 | 2,11, 0,0, 2,12, 0,0, | ||
| 515 | 0,0, 0,0, 0,0, 0,0, | ||
| 516 | 0,0, 0,0, 1,14, 0,0, | ||
| 517 | 0,0, 1,15, 1,16, 1,17, | ||
| 518 | 0,0, 22,52, 1,18, 18,47, | ||
| 519 | 23,53, 1,19, 42,63, 1,20, | ||
| 520 | 1,21, 25,55, 14,42, 1,22, | ||
| 521 | 15,43, 1,23, 1,24, 16,44, | ||
| 522 | 1,25, 16,45, 17,46, 19,48, | ||
| 523 | 21,51, 2,14, 20,49, 1,26, | ||
| 524 | 2,15, 2,16, 2,17, 24,54, | ||
| 525 | 20,50, 2,18, 44,64, 45,65, | ||
| 526 | 2,19, 46,66, 2,20, 2,21, | ||
| 527 | 27,57, 48,67, 2,22, 49,68, | ||
| 528 | 2,23, 2,24, 50,69, 2,25, | ||
| 529 | 52,70, 53,72, 27,58, 54,73, | ||
| 530 | 52,71, 9,34, 2,26, 9,35, | ||
| 531 | 9,35, 9,35, 9,35, 9,35, | ||
| 532 | 9,35, 9,35, 9,35, 9,35, | ||
| 533 | 9,35, 10,36, 55,74, 10,37, | ||
| 534 | 10,37, 10,37, 10,37, 10,37, | ||
| 535 | 10,37, 10,37, 10,37, 10,37, | ||
| 536 | 10,37, 57,75, 58,76, 64,80, | ||
| 537 | 66,81, 67,82, 70,83, 71,84, | ||
| 538 | 72,85, 73,86, 74,87, 10,38, | ||
| 539 | 10,38, 38,61, 10,38, 38,61, | ||
| 540 | 75,88, 76,89, 38,62, 38,62, | ||
| 541 | 38,62, 38,62, 38,62, 38,62, | ||
| 542 | 38,62, 38,62, 38,62, 38,62, | ||
| 543 | 80,92, 81,93, 13,41, 13,41, | ||
| 544 | 13,41, 13,41, 13,41, 13,41, | ||
| 545 | 13,41, 13,41, 13,41, 13,41, | ||
| 546 | 82,94, 83,95, 84,96, 10,38, | ||
| 547 | 10,38, 86,97, 10,38, 13,41, | ||
| 548 | 13,41, 13,41, 13,41, 13,41, | ||
| 549 | 13,41, 13,41, 13,41, 13,41, | ||
| 550 | 13,41, 13,41, 13,41, 13,41, | ||
| 551 | 13,41, 13,41, 13,41, 13,41, | ||
| 552 | 13,41, 13,41, 13,41, 13,41, | ||
| 553 | 13,41, 13,41, 13,41, 13,41, | ||
| 554 | 13,41, 87,98, 88,99, 60,79, | ||
| 555 | 60,79, 13,41, 60,79, 13,41, | ||
| 556 | 13,41, 13,41, 13,41, 13,41, | ||
| 557 | 13,41, 13,41, 13,41, 13,41, | ||
| 558 | 13,41, 13,41, 13,41, 13,41, | ||
| 559 | 13,41, 13,41, 13,41, 13,41, | ||
| 560 | 13,41, 13,41, 13,41, 13,41, | ||
| 561 | 13,41, 13,41, 13,41, 13,41, | ||
| 562 | 13,41, 33,33, 89,100, 60,79, | ||
| 563 | 60,79, 92,101, 60,79, 93,102, | ||
| 564 | 95,103, 33,33, 33,0, 96,104, | ||
| 565 | 99,105, 100,106, 102,107, 106,108, | ||
| 566 | 107,109, 35,35, 35,35, 35,35, | ||
| 567 | 35,35, 35,35, 35,35, 35,35, | ||
| 568 | 35,35, 35,35, 35,35, 108,110, | ||
| 569 | 0,0, 0,0, 0,0, 0,0, | ||
| 570 | 0,0, 0,0, 33,33, 0,0, | ||
| 571 | 0,0, 35,59, 35,59, 33,33, | ||
| 572 | 35,59, 0,0, 0,0, 33,33, | ||
| 573 | 0,0, 0,0, 0,0, 0,0, | ||
| 574 | 33,33, 0,0, 0,0, 0,0, | ||
| 575 | 0,0, 36,60, 36,60, 36,60, | ||
| 576 | 36,60, 36,60, 36,60, 36,60, | ||
| 577 | 36,60, 36,60, 36,60, 0,0, | ||
| 578 | 0,0, 33,33, 0,0, 0,0, | ||
| 579 | 33,33, 35,59, 35,59, 0,0, | ||
| 580 | 35,59, 36,38, 36,38, 59,77, | ||
| 581 | 36,38, 59,77, 0,0, 0,0, | ||
| 582 | 59,78, 59,78, 59,78, 59,78, | ||
| 583 | 59,78, 59,78, 59,78, 59,78, | ||
| 584 | 59,78, 59,78, 61,62, 61,62, | ||
| 585 | 61,62, 61,62, 61,62, 61,62, | ||
| 586 | 61,62, 61,62, 61,62, 61,62, | ||
| 587 | 0,0, 0,0, 0,0, 0,0, | ||
| 588 | 0,0, 36,38, 36,38, 0,0, | ||
| 589 | 36,38, 77,78, 77,78, 77,78, | ||
| 590 | 77,78, 77,78, 77,78, 77,78, | ||
| 591 | 77,78, 77,78, 77,78, 79,90, | ||
| 592 | 0,0, 79,90, 0,0, 0,0, | ||
| 593 | 79,91, 79,91, 79,91, 79,91, | ||
| 594 | 79,91, 79,91, 79,91, 79,91, | ||
| 595 | 79,91, 79,91, 90,91, 90,91, | ||
| 596 | 90,91, 90,91, 90,91, 90,91, | ||
| 597 | 90,91, 90,91, 90,91, 90,91, | ||
| 598 | 0,0}; | ||
| 599 | struct yysvf yysvec[] = { | ||
| 600 | 0, 0, 0, | ||
| 601 | yycrank+-1, 0, yyvstop+1, | ||
| 602 | yycrank+-28, yysvec+1, yyvstop+3, | ||
| 603 | yycrank+0, 0, yyvstop+5, | ||
| 604 | yycrank+4, 0, yyvstop+7, | ||
| 605 | yycrank+0, 0, yyvstop+10, | ||
| 606 | yycrank+-11, 0, yyvstop+12, | ||
| 607 | yycrank+-17, 0, yyvstop+14, | ||
| 608 | yycrank+7, 0, yyvstop+16, | ||
| 609 | yycrank+107, 0, yyvstop+18, | ||
| 610 | yycrank+119, 0, yyvstop+20, | ||
| 611 | yycrank+6, 0, yyvstop+23, | ||
| 612 | yycrank+7, 0, yyvstop+25, | ||
| 613 | yycrank+158, 0, yyvstop+27, | ||
| 614 | yycrank+4, yysvec+13, yyvstop+30, | ||
| 615 | yycrank+5, yysvec+13, yyvstop+33, | ||
| 616 | yycrank+11, yysvec+13, yyvstop+36, | ||
| 617 | yycrank+5, yysvec+13, yyvstop+39, | ||
| 618 | yycrank+5, yysvec+13, yyvstop+42, | ||
| 619 | yycrank+12, yysvec+13, yyvstop+45, | ||
| 620 | yycrank+21, yysvec+13, yyvstop+48, | ||
| 621 | yycrank+10, yysvec+13, yyvstop+51, | ||
| 622 | yycrank+4, yysvec+13, yyvstop+54, | ||
| 623 | yycrank+4, yysvec+13, yyvstop+57, | ||
| 624 | yycrank+21, yysvec+13, yyvstop+60, | ||
| 625 | yycrank+9, yysvec+13, yyvstop+63, | ||
| 626 | yycrank+9, 0, yyvstop+66, | ||
| 627 | yycrank+40, 0, yyvstop+68, | ||
| 628 | yycrank+0, yysvec+4, yyvstop+70, | ||
| 629 | yycrank+0, yysvec+6, 0, | ||
| 630 | yycrank+0, 0, yyvstop+72, | ||
| 631 | yycrank+0, yysvec+7, 0, | ||
| 632 | yycrank+0, 0, yyvstop+74, | ||
| 633 | yycrank+-280, 0, yyvstop+76, | ||
| 634 | yycrank+0, 0, yyvstop+78, | ||
| 635 | yycrank+249, 0, yyvstop+80, | ||
| 636 | yycrank+285, 0, yyvstop+82, | ||
| 637 | yycrank+0, yysvec+10, yyvstop+84, | ||
| 638 | yycrank+146, 0, 0, | ||
| 639 | yycrank+0, 0, yyvstop+86, | ||
| 640 | yycrank+0, 0, yyvstop+88, | ||
| 641 | yycrank+0, yysvec+13, yyvstop+90, | ||
| 642 | yycrank+10, yysvec+13, yyvstop+92, | ||
| 643 | yycrank+0, yysvec+13, yyvstop+94, | ||
| 644 | yycrank+19, yysvec+13, yyvstop+97, | ||
| 645 | yycrank+35, yysvec+13, yyvstop+99, | ||
| 646 | yycrank+27, yysvec+13, yyvstop+101, | ||
| 647 | yycrank+0, yysvec+13, yyvstop+103, | ||
| 648 | yycrank+42, yysvec+13, yyvstop+106, | ||
| 649 | yycrank+35, yysvec+13, yyvstop+108, | ||
| 650 | yycrank+30, yysvec+13, yyvstop+110, | ||
| 651 | yycrank+0, yysvec+13, yyvstop+112, | ||
| 652 | yycrank+36, yysvec+13, yyvstop+115, | ||
| 653 | yycrank+48, yysvec+13, yyvstop+117, | ||
| 654 | yycrank+35, yysvec+13, yyvstop+119, | ||
| 655 | yycrank+61, yysvec+13, yyvstop+121, | ||
| 656 | yycrank+0, 0, yyvstop+123, | ||
| 657 | yycrank+76, 0, 0, | ||
| 658 | yycrank+67, 0, 0, | ||
| 659 | yycrank+312, 0, 0, | ||
| 660 | yycrank+183, yysvec+36, yyvstop+125, | ||
| 661 | yycrank+322, 0, 0, | ||
| 662 | yycrank+0, yysvec+61, yyvstop+128, | ||
| 663 | yycrank+0, yysvec+13, yyvstop+130, | ||
| 664 | yycrank+78, yysvec+13, yyvstop+133, | ||
| 665 | yycrank+0, yysvec+13, yyvstop+135, | ||
| 666 | yycrank+81, yysvec+13, yyvstop+138, | ||
| 667 | yycrank+84, yysvec+13, yyvstop+140, | ||
| 668 | yycrank+0, yysvec+13, yyvstop+142, | ||
| 669 | yycrank+0, yysvec+13, yyvstop+145, | ||
| 670 | yycrank+81, yysvec+13, yyvstop+148, | ||
| 671 | yycrank+66, yysvec+13, yyvstop+150, | ||
| 672 | yycrank+74, yysvec+13, yyvstop+152, | ||
| 673 | yycrank+80, yysvec+13, yyvstop+154, | ||
| 674 | yycrank+78, yysvec+13, yyvstop+156, | ||
| 675 | yycrank+94, 0, 0, | ||
| 676 | yycrank+93, 0, 0, | ||
| 677 | yycrank+341, 0, 0, | ||
| 678 | yycrank+0, yysvec+77, yyvstop+158, | ||
| 679 | yycrank+356, 0, 0, | ||
| 680 | yycrank+99, yysvec+13, yyvstop+160, | ||
| 681 | yycrank+89, yysvec+13, yyvstop+163, | ||
| 682 | yycrank+108, yysvec+13, yyvstop+165, | ||
| 683 | yycrank+120, yysvec+13, yyvstop+167, | ||
| 684 | yycrank+104, yysvec+13, yyvstop+169, | ||
| 685 | yycrank+0, yysvec+13, yyvstop+171, | ||
| 686 | yycrank+113, yysvec+13, yyvstop+174, | ||
| 687 | yycrank+148, yysvec+13, yyvstop+176, | ||
| 688 | yycrank+133, 0, 0, | ||
| 689 | yycrank+181, 0, 0, | ||
| 690 | yycrank+366, 0, 0, | ||
| 691 | yycrank+0, yysvec+90, yyvstop+178, | ||
| 692 | yycrank+183, yysvec+13, yyvstop+181, | ||
| 693 | yycrank+182, yysvec+13, yyvstop+183, | ||
| 694 | yycrank+0, yysvec+13, yyvstop+185, | ||
| 695 | yycrank+172, yysvec+13, yyvstop+189, | ||
| 696 | yycrank+181, yysvec+13, yyvstop+191, | ||
| 697 | yycrank+0, yysvec+13, yyvstop+193, | ||
| 698 | yycrank+0, yysvec+13, yyvstop+196, | ||
| 699 | yycrank+189, 0, 0, | ||
| 700 | yycrank+195, 0, 0, | ||
| 701 | yycrank+0, yysvec+13, yyvstop+199, | ||
| 702 | yycrank+183, yysvec+13, yyvstop+202, | ||
| 703 | yycrank+0, yysvec+13, yyvstop+204, | ||
| 704 | yycrank+0, yysvec+13, yyvstop+207, | ||
| 705 | yycrank+0, 0, yyvstop+210, | ||
| 706 | yycrank+178, 0, 0, | ||
| 707 | yycrank+186, yysvec+13, yyvstop+212, | ||
| 708 | yycrank+204, 0, 0, | ||
| 709 | yycrank+0, yysvec+13, yyvstop+214, | ||
| 710 | yycrank+0, 0, yyvstop+217, | ||
| 711 | 0, 0, 0}; | ||
| 712 | struct yywork *yytop = yycrank+423; | ||
| 713 | struct yysvf *yybgin = yysvec+1; | ||
| 714 | char yymatch[] = { | ||
| 715 | 00 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , | ||
| 716 | 01 ,011 ,012 ,01 ,01 ,01 ,01 ,01 , | ||
| 717 | 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , | ||
| 718 | 01 ,01 ,01 ,01 ,01 ,01 ,01 ,01 , | ||
| 719 | 011 ,01 ,'"' ,01 ,01 ,01 ,01 ,047 , | ||
| 720 | 01 ,01 ,01 ,'+' ,01 ,'+' ,01 ,01 , | ||
| 721 | '0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' ,'0' , | ||
| 722 | '0' ,'0' ,01 ,01 ,01 ,01 ,01 ,01 , | ||
| 723 | 01 ,'A' ,'A' ,'A' ,'D' ,'D' ,'A' ,'D' , | ||
| 724 | 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' , | ||
| 725 | 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' , | ||
| 726 | 'A' ,'A' ,'A' ,01 ,01 ,01 ,01 ,'A' , | ||
| 727 | 01 ,'A' ,'A' ,'A' ,'D' ,'D' ,'A' ,'D' , | ||
| 728 | 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' , | ||
| 729 | 'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' ,'A' , | ||
| 730 | 'A' ,'A' ,'A' ,01 ,01 ,01 ,01 ,01 , | ||
| 731 | 0}; | ||
| 732 | char yyextra[] = { | ||
| 733 | 0,0,0,0,0,0,0,0, | ||
| 734 | 0,0,0,0,0,0,0,0, | ||
| 735 | 0,0,0,0,0,0,0,0, | ||
| 736 | 0,0,0,0,0,0,0,0, | ||
| 737 | 0,0,0,0,0,0,0,0, | ||
| 738 | 0}; | ||
| 739 | #ifndef lint | ||
| 740 | static char ncform_sccsid[] = "@(#)ncform 1.6 88/02/08 SMI"; /* from S5R2 1.2 */ | ||
| 741 | #endif | ||
| 742 | |||
| 743 | int yylineno =1; | ||
| 744 | # define YYU(x) x | ||
| 745 | # define NLSTATE yyprevious=YYNEWLINE | ||
| 746 | char yytext[YYLMAX]; | ||
| 747 | struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp; | ||
| 748 | char yysbuf[YYLMAX]; | ||
| 749 | char *yysptr = yysbuf; | ||
| 750 | int *yyfnd; | ||
| 751 | extern struct yysvf *yyestate; | ||
| 752 | int yyprevious = YYNEWLINE; | ||
| 753 | yylook(){ | ||
| 754 | register struct yysvf *yystate, **lsp; | ||
| 755 | register struct yywork *yyt; | ||
| 756 | struct yysvf *yyz; | ||
| 757 | int yych, yyfirst; | ||
| 758 | struct yywork *yyr; | ||
| 759 | # ifdef LEXDEBUG | ||
| 760 | int debug; | ||
| 761 | # endif | ||
| 762 | char *yylastch; | ||
| 763 | /* start off machines */ | ||
| 764 | # ifdef LEXDEBUG | ||
| 765 | debug = 0; | ||
| 766 | # endif | ||
| 767 | yyfirst=1; | ||
| 768 | if (!yymorfg) | ||
| 769 | yylastch = yytext; | ||
| 770 | else { | ||
| 771 | yymorfg=0; | ||
| 772 | yylastch = yytext+yyleng; | ||
| 773 | } | ||
| 774 | for(;;){ | ||
| 775 | lsp = yylstate; | ||
| 776 | yyestate = yystate = yybgin; | ||
| 777 | if (yyprevious==YYNEWLINE) yystate++; | ||
| 778 | for (;;){ | ||
| 779 | # ifdef LEXDEBUG | ||
| 780 | if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1); | ||
| 781 | # endif | ||
| 782 | yyt = yystate->yystoff; | ||
| 783 | if(yyt == yycrank && !yyfirst){ /* may not be any transitions */ | ||
| 784 | yyz = yystate->yyother; | ||
| 785 | if(yyz == 0)break; | ||
| 786 | if(yyz->yystoff == yycrank)break; | ||
| 787 | } | ||
| 788 | *yylastch++ = yych = input(); | ||
| 789 | yyfirst=0; | ||
| 790 | tryagain: | ||
| 791 | # ifdef LEXDEBUG | ||
| 792 | if(debug){ | ||
| 793 | fprintf(yyout,"char "); | ||
| 794 | allprint(yych); | ||
| 795 | putchar('\n'); | ||
| 796 | } | ||
| 797 | # endif | ||
| 798 | yyr = yyt; | ||
| 799 | if ( (int)yyt > (int)yycrank){ | ||
| 800 | yyt = yyr + yych; | ||
| 801 | if (yyt <= yytop && yyt->verify+yysvec == yystate){ | ||
| 802 | if(yyt->advance+yysvec == YYLERR) /* error transitions */ | ||
| 803 | {unput(*--yylastch);break;} | ||
| 804 | *lsp++ = yystate = yyt->advance+yysvec; | ||
| 805 | goto contin; | ||
| 806 | } | ||
| 807 | } | ||
| 808 | # ifdef YYOPTIM | ||
| 809 | else if((int)yyt < (int)yycrank) { /* r < yycrank */ | ||
| 810 | yyt = yyr = yycrank+(yycrank-yyt); | ||
| 811 | # ifdef LEXDEBUG | ||
| 812 | if(debug)fprintf(yyout,"compressed state\n"); | ||
| 813 | # endif | ||
| 814 | yyt = yyt + yych; | ||
| 815 | if(yyt <= yytop && yyt->verify+yysvec == yystate){ | ||
| 816 | if(yyt->advance+yysvec == YYLERR) /* error transitions */ | ||
| 817 | {unput(*--yylastch);break;} | ||
| 818 | *lsp++ = yystate = yyt->advance+yysvec; | ||
| 819 | goto contin; | ||
| 820 | } | ||
| 821 | yyt = yyr + YYU(yymatch[yych]); | ||
| 822 | # ifdef LEXDEBUG | ||
| 823 | if(debug){ | ||
| 824 | fprintf(yyout,"try fall back character "); | ||
| 825 | allprint(YYU(yymatch[yych])); | ||
| 826 | putchar('\n'); | ||
| 827 | } | ||
| 828 | # endif | ||
| 829 | if(yyt <= yytop && yyt->verify+yysvec == yystate){ | ||
| 830 | if(yyt->advance+yysvec == YYLERR) /* error transition */ | ||
| 831 | {unput(*--yylastch);break;} | ||
| 832 | *lsp++ = yystate = yyt->advance+yysvec; | ||
| 833 | goto contin; | ||
| 834 | } | ||
| 835 | } | ||
| 836 | if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){ | ||
| 837 | # ifdef LEXDEBUG | ||
| 838 | if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1); | ||
| 839 | # endif | ||
| 840 | goto tryagain; | ||
| 841 | } | ||
| 842 | # endif | ||
| 843 | else | ||
| 844 | {unput(*--yylastch);break;} | ||
| 845 | contin: | ||
| 846 | # ifdef LEXDEBUG | ||
| 847 | if(debug){ | ||
| 848 | fprintf(yyout,"state %d char ",yystate-yysvec-1); | ||
| 849 | allprint(yych); | ||
| 850 | putchar('\n'); | ||
| 851 | } | ||
| 852 | # endif | ||
| 853 | ; | ||
| 854 | } | ||
| 855 | # ifdef LEXDEBUG | ||
| 856 | if(debug){ | ||
| 857 | fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1); | ||
| 858 | allprint(yych); | ||
| 859 | putchar('\n'); | ||
| 860 | } | ||
| 861 | # endif | ||
| 862 | while (lsp-- > yylstate){ | ||
| 863 | *yylastch-- = 0; | ||
| 864 | if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){ | ||
| 865 | yyolsp = lsp; | ||
| 866 | if(yyextra[*yyfnd]){ /* must backup */ | ||
| 867 | while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){ | ||
| 868 | lsp--; | ||
| 869 | unput(*yylastch--); | ||
| 870 | } | ||
| 871 | } | ||
| 872 | yyprevious = YYU(*yylastch); | ||
| 873 | yylsp = lsp; | ||
| 874 | yyleng = yylastch-yytext+1; | ||
| 875 | yytext[yyleng] = 0; | ||
| 876 | # ifdef LEXDEBUG | ||
| 877 | if(debug){ | ||
| 878 | fprintf(yyout,"\nmatch "); | ||
| 879 | sprint(yytext); | ||
| 880 | fprintf(yyout," action %d\n",*yyfnd); | ||
| 881 | } | ||
| 882 | # endif | ||
| 883 | return(*yyfnd++); | ||
| 884 | } | ||
| 885 | unput(*yylastch); | ||
| 886 | } | ||
| 887 | if (yytext[0] == 0 /* && feof(yyin) */) | ||
| 888 | { | ||
| 889 | yysptr=yysbuf; | ||
| 890 | return(0); | ||
| 891 | } | ||
| 892 | yyprevious = yytext[0] = input(); | ||
| 893 | if (yyprevious>0) | ||
| 894 | output(yyprevious); | ||
| 895 | yylastch=yytext; | ||
| 896 | # ifdef LEXDEBUG | ||
| 897 | if(debug)putchar('\n'); | ||
| 898 | # endif | ||
| 899 | } | ||
| 900 | } | ||
| 901 | yyback(p, m) | ||
| 902 | int *p; | ||
| 903 | { | ||
| 904 | if (p==0) return(0); | ||
| 905 | while (*p) | ||
| 906 | { | ||
| 907 | if (*p++ == m) | ||
| 908 | return(1); | ||
| 909 | } | ||
| 910 | return(0); | ||
| 911 | } | ||
| 912 | /* the following are only used in the lex library */ | ||
| 913 | yyinput(){ | ||
| 914 | return(input()); | ||
| 915 | } | ||
| 916 | yyoutput(c) | ||
| 917 | int c; { | ||
| 918 | output(c); | ||
| 919 | } | ||
| 920 | yyunput(c) | ||
| 921 | int c; { | ||
| 922 | unput(c); | ||
| 923 | } | ||
diff --git a/lua.lex b/lua.lex new file mode 100644 index 00000000..23a1d7b1 --- /dev/null +++ b/lua.lex | |||
| @@ -0,0 +1,85 @@ | |||
| 1 | %{ | ||
| 2 | |||
| 3 | char *rcs_lualex = "$Id: $"; | ||
| 4 | |||
| 5 | #include <stdlib.h> | ||
| 6 | #include <string.h> | ||
| 7 | |||
| 8 | #include "opcode.h" | ||
| 9 | #include "hash.h" | ||
| 10 | #include "inout.h" | ||
| 11 | #include "table.h" | ||
| 12 | #include "y.tab.h" | ||
| 13 | |||
| 14 | #undef input | ||
| 15 | #undef unput | ||
| 16 | |||
| 17 | static Input input; | ||
| 18 | static Unput unput; | ||
| 19 | |||
| 20 | void lua_setinput (Input fn) | ||
| 21 | { | ||
| 22 | input = fn; | ||
| 23 | } | ||
| 24 | |||
| 25 | void lua_setunput (Unput fn) | ||
| 26 | { | ||
| 27 | unput = fn; | ||
| 28 | } | ||
| 29 | |||
| 30 | char *lua_lasttext (void) | ||
| 31 | { | ||
| 32 | return yytext; | ||
| 33 | } | ||
| 34 | |||
| 35 | %} | ||
| 36 | |||
| 37 | |||
| 38 | %% | ||
| 39 | [ \t]* ; | ||
| 40 | ^"$debug" {yylval.vInt = 1; return DEBUG;} | ||
| 41 | ^"$nodebug" {yylval.vInt = 0; return DEBUG;} | ||
| 42 | \n lua_linenumber++; | ||
| 43 | "--".* ; | ||
| 44 | "local" return LOCAL; | ||
| 45 | "if" return IF; | ||
| 46 | "then" return THEN; | ||
| 47 | "else" return ELSE; | ||
| 48 | "elseif" return ELSEIF; | ||
| 49 | "while" return WHILE; | ||
| 50 | "do" return DO; | ||
| 51 | "repeat" return REPEAT; | ||
| 52 | "until" return UNTIL; | ||
| 53 | "function" { | ||
| 54 | yylval.vWord = lua_nfile-1; | ||
| 55 | return FUNCTION; | ||
| 56 | } | ||
| 57 | "end" return END; | ||
| 58 | "return" return RETURN; | ||
| 59 | "local" return LOCAL; | ||
| 60 | "nil" return NIL; | ||
| 61 | "and" return AND; | ||
| 62 | "or" return OR; | ||
| 63 | "not" return NOT; | ||
| 64 | "~=" return NE; | ||
| 65 | "<=" return LE; | ||
| 66 | ">=" return GE; | ||
| 67 | ".." return CONC; | ||
| 68 | \"[^\"]*\" | | ||
| 69 | \'[^\']*\' { | ||
| 70 | yylval.vWord = lua_findenclosedconstant (yytext); | ||
| 71 | return STRING; | ||
| 72 | } | ||
| 73 | [0-9]+("."[0-9]*)? | | ||
| 74 | ([0-9]+)?"."[0-9]+ | | ||
| 75 | [0-9]+("."[0-9]*)?[dDeEgG][+-]?[0-9]+ | | ||
| 76 | ([0-9]+)?"."[0-9]+[dDeEgG][+-]?[0-9]+ { | ||
| 77 | yylval.vFloat = atof(yytext); | ||
| 78 | return NUMBER; | ||
| 79 | } | ||
| 80 | [a-zA-Z_][a-zA-Z0-9_]* { | ||
| 81 | yylval.vWord = lua_findsymbol (yytext); | ||
| 82 | return NAME; | ||
| 83 | } | ||
| 84 | . return *yytext; | ||
| 85 | |||
