programming language
Revisión | d4aa99410ac8e919edf228d191e77039eb978bad (tree) |
---|---|
Tiempo | 2022-06-26 22:30:01 |
Autor | dhrname <dhrname@joes...> |
Commiter | dhrname |
Modify the lexer
@@ -91,6 +91,7 @@ namespace jstr | ||
91 | 91 | , FOR |
92 | 92 | , IF |
93 | 93 | , ELSE |
94 | + , ELSEIF | |
94 | 95 | , CONTINUE |
95 | 96 | , BREAK |
96 | 97 | , RETURN |
@@ -669,6 +670,12 @@ namespace jstr | ||
669 | 670 | } |
670 | 671 | }; |
671 | 672 | |
673 | + /*VoidTypeValue クラス | |
674 | + * 何も返さないvoid型を示すクラス*/ | |
675 | + class VoidTypeValue: public Phrase | |
676 | + { | |
677 | + }; | |
678 | + | |
672 | 679 | /*FunctorStatement クラス |
673 | 680 | * 関手宣言を示すクラス |
674 | 681 | * Functorクラスとは異なる*/ |
@@ -56,6 +56,7 @@ namespace jstr | ||
56 | 56 | , FOR |
57 | 57 | , IF |
58 | 58 | , ELSE |
59 | + , ELSEIF | |
59 | 60 | , CONTINUE |
60 | 61 | , BREAK |
61 | 62 | , RETURN |
@@ -166,6 +167,7 @@ DIGIT [1-9][0-9]* | ||
166 | 167 | "for" return jstr::parser::token::FOR ; |
167 | 168 | "if" return jstr::parser::token::IF ; |
168 | 169 | "else" return jstr::parser::token::ELSE ; |
170 | +"elif" return jstr::parser::token::ELSEIF ; | |
169 | 171 | "continue" return jstr::parser::token::CONTINUE ; |
170 | 172 | "break" return jstr::parser::token::BREAK ; |
171 | 173 | "return" return jstr::parser::token::RETURN ; |
@@ -385,8 +385,8 @@ int yyFlexLexer::yywrap() { return 1; } | ||
385 | 385 | /* %% [3.0] code to copy yytext_ptr to yytext[] goes here, if %array \ */\ |
386 | 386 | (yy_c_buf_p) = yy_cp; |
387 | 387 | /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ |
388 | -#define YY_NUM_RULES 91 | |
389 | -#define YY_END_OF_BUFFER 92 | |
388 | +#define YY_NUM_RULES 92 | |
389 | +#define YY_END_OF_BUFFER 93 | |
390 | 390 | /* This struct is not used in this scanner, |
391 | 391 | but its presence is necessary. */ |
392 | 392 | struct yy_trans_info |
@@ -394,32 +394,32 @@ struct yy_trans_info | ||
394 | 394 | flex_int32_t yy_verify; |
395 | 395 | flex_int32_t yy_nxt; |
396 | 396 | }; |
397 | -static const flex_int16_t yy_accept[217] = | |
397 | +static const flex_int16_t yy_accept[219] = | |
398 | 398 | { 0, |
399 | - 0, 0, 92, 91, 89, 89, 75, 91, 91, 74, | |
400 | - 91, 79, 80, 72, 70, 35, 71, 78, 73, 91, | |
401 | - 85, 49, 38, 64, 52, 65, 81, 84, 84, 84, | |
402 | - 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, | |
403 | - 84, 84, 84, 84, 36, 91, 37, 90, 90, 89, | |
404 | - 63, 0, 87, 0, 88, 55, 61, 53, 76, 56, | |
405 | - 77, 57, 0, 86, 54, 0, 0, 85, 68, 66, | |
406 | - 62, 67, 69, 84, 84, 84, 84, 84, 84, 84, | |
407 | - 84, 84, 84, 84, 84, 40, 84, 84, 84, 84, | |
408 | - 84, 84, 84, 84, 84, 42, 84, 19, 84, 84, | |
409 | - | |
410 | - 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, | |
411 | - 84, 84, 60, 90, 90, 87, 34, 0, 58, 59, | |
412 | - 15, 84, 9, 10, 11, 12, 84, 84, 84, 29, | |
413 | - 84, 84, 84, 33, 28, 14, 84, 84, 84, 84, | |
414 | - 13, 41, 1, 2, 3, 4, 84, 17, 23, 16, | |
415 | - 84, 84, 84, 84, 84, 84, 5, 6, 7, 8, | |
416 | - 18, 84, 84, 0, 84, 31, 26, 84, 84, 84, | |
417 | - 84, 84, 43, 84, 84, 84, 84, 84, 84, 84, | |
418 | - 51, 24, 27, 84, 84, 86, 45, 22, 20, 84, | |
419 | - 84, 84, 47, 84, 84, 84, 48, 84, 84, 84, | |
420 | - | |
421 | - 39, 86, 84, 25, 32, 83, 82, 50, 30, 46, | |
422 | - 84, 84, 84, 44, 21, 0 | |
399 | + 0, 0, 93, 92, 90, 90, 76, 92, 92, 75, | |
400 | + 92, 80, 81, 73, 71, 35, 72, 79, 74, 92, | |
401 | + 86, 50, 38, 65, 53, 66, 82, 85, 85, 85, | |
402 | + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, | |
403 | + 85, 85, 85, 85, 36, 92, 37, 91, 91, 90, | |
404 | + 64, 0, 88, 0, 89, 56, 62, 54, 77, 57, | |
405 | + 78, 58, 0, 87, 55, 0, 0, 86, 69, 67, | |
406 | + 63, 68, 70, 85, 85, 85, 85, 85, 85, 85, | |
407 | + 85, 85, 85, 85, 85, 40, 85, 85, 85, 85, | |
408 | + 85, 85, 85, 85, 85, 42, 85, 19, 85, 85, | |
409 | + | |
410 | + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, | |
411 | + 85, 85, 61, 91, 91, 88, 34, 0, 59, 60, | |
412 | + 15, 85, 9, 10, 11, 12, 85, 85, 85, 29, | |
413 | + 85, 85, 85, 33, 28, 14, 85, 85, 85, 85, | |
414 | + 85, 13, 41, 1, 2, 3, 4, 85, 17, 23, | |
415 | + 16, 85, 85, 85, 85, 85, 85, 5, 6, 7, | |
416 | + 8, 18, 85, 85, 0, 85, 31, 26, 85, 85, | |
417 | + 85, 85, 85, 44, 43, 85, 85, 85, 85, 85, | |
418 | + 85, 85, 52, 24, 27, 85, 85, 87, 46, 22, | |
419 | + 20, 85, 85, 85, 48, 85, 85, 85, 49, 85, | |
420 | + | |
421 | + 85, 85, 39, 87, 85, 25, 32, 84, 83, 51, | |
422 | + 30, 47, 85, 85, 85, 45, 21, 0 | |
423 | 423 | } ; |
424 | 424 | |
425 | 425 | static const YY_CHAR yy_ec[256] = |
@@ -464,65 +464,65 @@ static const YY_CHAR yy_meta[60] = | ||
464 | 464 | 5, 5, 5, 5, 5, 5, 1, 1, 1 |
465 | 465 | } ; |
466 | 466 | |
467 | -static const flex_int16_t yy_base[223] = | |
467 | +static const flex_int16_t yy_base[225] = | |
468 | 468 | { 0, |
469 | - 0, 58, 284, 285, 285, 280, 253, 275, 277, 250, | |
470 | - 269, 285, 285, 248, 48, 285, 47, 260, 246, 258, | |
471 | - 257, 285, 285, 37, 243, 38, 285, 0, 22, 54, | |
472 | - 42, 30, 37, 72, 237, 232, 234, 219, 229, 218, | |
473 | - 30, 76, 218, 224, 285, 205, 285, 97, 100, 285, | |
474 | - 285, 256, 255, 257, 285, 285, 285, 285, 285, 285, | |
475 | - 285, 285, 243, 71, 285, 102, 242, 241, 227, 285, | |
476 | - 285, 285, 226, 0, 210, 215, 227, 227, 230, 227, | |
477 | - 63, 214, 68, 64, 205, 83, 196, 196, 82, 197, | |
478 | - 194, 217, 217, 220, 217, 0, 190, 0, 192, 182, | |
479 | - | |
480 | - 193, 193, 81, 195, 191, 183, 205, 205, 208, 205, | |
481 | - 92, 185, 285, 110, 132, 135, 285, 127, 285, 285, | |
482 | - 0, 191, 0, 0, 0, 0, 180, 185, 172, 0, | |
483 | - 93, 183, 186, 0, 0, 0, 181, 171, 179, 178, | |
484 | - 0, 0, 0, 0, 0, 0, 168, 0, 0, 0, | |
485 | - 168, 161, 160, 175, 160, 171, 0, 0, 0, 0, | |
486 | - 0, 174, 163, 126, 163, 0, 0, 155, 153, 162, | |
487 | - 151, 165, 0, 151, 151, 162, 148, 145, 150, 145, | |
488 | - 0, 0, 0, 142, 154, 134, 0, 0, 0, 145, | |
489 | - 152, 149, 0, 137, 136, 135, 0, 131, 93, 88, | |
490 | - | |
491 | - 0, 142, 58, 0, 0, 0, 0, 0, 0, 0, | |
492 | - 48, 44, 25, 0, 0, 285, 167, 172, 175, 177, | |
493 | - 179, 180 | |
469 | + 0, 58, 286, 287, 287, 282, 255, 277, 279, 252, | |
470 | + 271, 287, 287, 250, 48, 287, 47, 262, 248, 260, | |
471 | + 259, 287, 287, 37, 245, 38, 287, 0, 22, 54, | |
472 | + 42, 30, 37, 72, 239, 234, 236, 221, 231, 220, | |
473 | + 30, 76, 220, 226, 287, 207, 287, 97, 100, 287, | |
474 | + 287, 258, 257, 259, 287, 287, 287, 287, 287, 287, | |
475 | + 287, 287, 245, 71, 287, 102, 244, 243, 229, 287, | |
476 | + 287, 287, 228, 0, 212, 217, 229, 229, 232, 229, | |
477 | + 63, 216, 68, 64, 207, 83, 88, 199, 82, 200, | |
478 | + 197, 220, 220, 223, 220, 0, 193, 0, 195, 185, | |
479 | + | |
480 | + 196, 196, 81, 198, 194, 186, 208, 208, 211, 208, | |
481 | + 92, 188, 287, 110, 135, 137, 287, 127, 287, 287, | |
482 | + 0, 194, 0, 0, 0, 0, 183, 188, 175, 0, | |
483 | + 94, 186, 189, 0, 0, 0, 183, 183, 173, 181, | |
484 | + 180, 0, 0, 0, 0, 0, 0, 170, 0, 0, | |
485 | + 0, 170, 163, 162, 177, 162, 173, 0, 0, 0, | |
486 | + 0, 0, 176, 165, 127, 165, 0, 0, 157, 155, | |
487 | + 164, 153, 167, 0, 0, 153, 153, 164, 150, 147, | |
488 | + 152, 147, 0, 0, 0, 144, 156, 135, 0, 0, | |
489 | + 0, 147, 154, 151, 0, 139, 138, 137, 0, 149, | |
490 | + | |
491 | + 124, 93, 0, 143, 58, 0, 0, 0, 0, 0, | |
492 | + 0, 0, 48, 44, 25, 0, 0, 287, 168, 173, | |
493 | + 176, 178, 180, 181 | |
494 | 494 | } ; |
495 | 495 | |
496 | -static const flex_int16_t yy_def[223] = | |
496 | +static const flex_int16_t yy_def[225] = | |
497 | 497 | { 0, |
498 | - 216, 1, 216, 216, 216, 216, 216, 217, 218, 216, | |
499 | - 216, 216, 216, 216, 216, 216, 216, 219, 216, 220, | |
500 | - 221, 216, 216, 216, 216, 216, 216, 222, 222, 222, | |
501 | - 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, | |
502 | - 222, 222, 222, 222, 216, 216, 216, 216, 217, 216, | |
503 | - 216, 217, 217, 218, 216, 216, 216, 216, 216, 216, | |
504 | - 216, 216, 216, 219, 216, 216, 220, 221, 216, 216, | |
505 | - 216, 216, 216, 222, 222, 222, 222, 222, 222, 222, | |
506 | - 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, | |
507 | - 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, | |
508 | - | |
509 | - 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, | |
510 | - 222, 222, 216, 216, 217, 217, 216, 216, 216, 216, | |
511 | - 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, | |
512 | - 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, | |
513 | - 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, | |
514 | - 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, | |
515 | - 222, 222, 222, 216, 222, 222, 222, 222, 222, 222, | |
516 | - 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, | |
517 | - 222, 222, 222, 222, 222, 216, 222, 222, 222, 222, | |
518 | - 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, | |
519 | - | |
520 | - 222, 216, 222, 222, 222, 222, 222, 222, 222, 222, | |
521 | - 222, 222, 222, 222, 222, 0, 216, 216, 216, 216, | |
522 | - 216, 216 | |
498 | + 218, 1, 218, 218, 218, 218, 218, 219, 220, 218, | |
499 | + 218, 218, 218, 218, 218, 218, 218, 221, 218, 222, | |
500 | + 223, 218, 218, 218, 218, 218, 218, 224, 224, 224, | |
501 | + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, | |
502 | + 224, 224, 224, 224, 218, 218, 218, 218, 219, 218, | |
503 | + 218, 219, 219, 220, 218, 218, 218, 218, 218, 218, | |
504 | + 218, 218, 218, 221, 218, 218, 222, 223, 218, 218, | |
505 | + 218, 218, 218, 224, 224, 224, 224, 224, 224, 224, | |
506 | + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, | |
507 | + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, | |
508 | + | |
509 | + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, | |
510 | + 224, 224, 218, 218, 219, 219, 218, 218, 218, 218, | |
511 | + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, | |
512 | + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, | |
513 | + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, | |
514 | + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, | |
515 | + 224, 224, 224, 224, 218, 224, 224, 224, 224, 224, | |
516 | + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, | |
517 | + 224, 224, 224, 224, 224, 224, 224, 218, 224, 224, | |
518 | + 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, | |
519 | + | |
520 | + 224, 224, 224, 218, 224, 224, 224, 224, 224, 224, | |
521 | + 224, 224, 224, 224, 224, 224, 224, 0, 218, 218, | |
522 | + 218, 218, 218, 218 | |
523 | 523 | } ; |
524 | 524 | |
525 | -static const flex_int16_t yy_nxt[345] = | |
525 | +static const flex_int16_t yy_nxt[347] = | |
526 | 526 | { 0, |
527 | 527 | 4, 4, 5, 6, 7, 8, 9, 10, 11, 12, |
528 | 528 | 13, 14, 15, 16, 17, 18, 19, 20, 21, 21, |
@@ -530,41 +530,41 @@ static const flex_int16_t yy_nxt[345] = | ||
530 | 530 | 27, 28, 28, 28, 29, 30, 31, 32, 33, 28, |
531 | 531 | 34, 28, 28, 35, 28, 36, 37, 38, 39, 40, |
532 | 532 | 41, 42, 43, 44, 28, 28, 45, 46, 47, 48, |
533 | - 59, 61, 215, 49, 69, 70, 72, 73, 75, 105, | |
533 | + 59, 61, 217, 49, 69, 70, 72, 73, 75, 105, | |
534 | 534 | 76, 77, 78, 87, 79, 62, 60, 80, 88, 84, |
535 | - 90, 214, 85, 91, 89, 106, 216, 81, 86, 92, | |
536 | - 93, 213, 94, 107, 108, 95, 109, 82, 114, 110, | |
537 | - | |
538 | - 83, 115, 114, 118, 130, 116, 127, 132, 118, 212, | |
539 | - 96, 114, 128, 131, 133, 114, 97, 139, 98, 64, | |
540 | - 64, 64, 64, 64, 64, 64, 64, 135, 211, 140, | |
541 | - 152, 153, 161, 115, 136, 162, 115, 116, 210, 164, | |
542 | - 116, 164, 169, 170, 186, 186, 186, 186, 186, 186, | |
543 | - 186, 202, 202, 202, 202, 202, 202, 202, 202, 202, | |
544 | - 202, 202, 202, 202, 202, 202, 202, 52, 209, 52, | |
545 | - 52, 52, 54, 54, 54, 54, 54, 64, 64, 67, | |
546 | - 67, 68, 68, 74, 74, 208, 207, 206, 205, 204, | |
547 | - 203, 201, 200, 199, 198, 197, 196, 195, 194, 193, | |
548 | - | |
549 | - 192, 191, 190, 189, 188, 187, 185, 184, 183, 182, | |
550 | - 181, 180, 179, 178, 177, 176, 175, 174, 173, 172, | |
551 | - 171, 168, 167, 166, 165, 163, 160, 159, 158, 157, | |
552 | - 156, 155, 154, 151, 150, 149, 148, 147, 146, 145, | |
553 | - 144, 143, 142, 141, 138, 137, 134, 129, 126, 125, | |
554 | - 124, 123, 122, 121, 120, 119, 66, 66, 117, 55, | |
555 | - 53, 53, 113, 112, 111, 104, 103, 102, 101, 100, | |
556 | - 99, 71, 66, 66, 65, 63, 58, 57, 56, 55, | |
557 | - 53, 51, 50, 216, 3, 216, 216, 216, 216, 216, | |
558 | - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, | |
559 | - | |
560 | - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, | |
561 | - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, | |
562 | - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, | |
563 | - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, | |
564 | - 216, 216, 216, 216 | |
535 | + 90, 216, 85, 91, 89, 106, 218, 81, 86, 92, | |
536 | + 93, 215, 94, 107, 108, 95, 109, 82, 114, 110, | |
537 | + | |
538 | + 83, 115, 114, 118, 130, 116, 127, 132, 118, 214, | |
539 | + 96, 114, 128, 131, 133, 114, 97, 140, 98, 64, | |
540 | + 64, 64, 64, 64, 64, 64, 64, 135, 137, 141, | |
541 | + 153, 154, 162, 213, 136, 163, 115, 138, 115, 165, | |
542 | + 116, 165, 116, 170, 171, 188, 188, 188, 188, 188, | |
543 | + 188, 188, 204, 204, 204, 204, 204, 204, 204, 204, | |
544 | + 204, 204, 204, 204, 204, 204, 204, 204, 52, 212, | |
545 | + 52, 52, 52, 54, 54, 54, 54, 54, 64, 64, | |
546 | + 67, 67, 68, 68, 74, 74, 211, 210, 209, 208, | |
547 | + 207, 206, 205, 203, 202, 201, 200, 199, 198, 197, | |
548 | + | |
549 | + 196, 195, 194, 193, 192, 191, 190, 189, 187, 186, | |
550 | + 185, 184, 183, 182, 181, 180, 179, 178, 177, 176, | |
551 | + 175, 174, 173, 172, 169, 168, 167, 166, 164, 161, | |
552 | + 160, 159, 158, 157, 156, 155, 152, 151, 150, 149, | |
553 | + 148, 147, 146, 145, 144, 143, 142, 139, 134, 129, | |
554 | + 126, 125, 124, 123, 122, 121, 120, 119, 66, 66, | |
555 | + 117, 55, 53, 53, 113, 112, 111, 104, 103, 102, | |
556 | + 101, 100, 99, 71, 66, 66, 65, 63, 58, 57, | |
557 | + 56, 55, 53, 51, 50, 218, 3, 218, 218, 218, | |
558 | + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, | |
559 | + | |
560 | + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, | |
561 | + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, | |
562 | + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, | |
563 | + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, | |
564 | + 218, 218, 218, 218, 218, 218 | |
565 | 565 | } ; |
566 | 566 | |
567 | -static const flex_int16_t yy_chk[345] = | |
567 | +static const flex_int16_t yy_chk[347] = | |
568 | 568 | { 0, |
569 | 569 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
570 | 570 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
@@ -572,51 +572,53 @@ static const flex_int16_t yy_chk[345] = | ||
572 | 572 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
573 | 573 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, |
574 | 574 | 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, |
575 | - 15, 17, 213, 2, 24, 24, 26, 26, 29, 41, | |
575 | + 15, 17, 215, 2, 24, 24, 26, 26, 29, 41, | |
576 | 576 | 29, 30, 30, 32, 30, 17, 15, 30, 32, 31, |
577 | - 33, 212, 31, 33, 32, 41, 64, 30, 31, 34, | |
578 | - 34, 211, 34, 42, 42, 34, 42, 30, 48, 42, | |
577 | + 33, 214, 31, 33, 32, 41, 64, 30, 31, 34, | |
578 | + 34, 213, 34, 42, 42, 34, 42, 30, 48, 42, | |
579 | 579 | |
580 | - 30, 49, 48, 64, 83, 49, 81, 84, 64, 203, | |
580 | + 30, 49, 48, 64, 83, 49, 81, 84, 64, 205, | |
581 | 581 | 34, 114, 81, 83, 84, 114, 34, 89, 34, 66, |
582 | - 66, 66, 66, 66, 66, 66, 66, 86, 200, 89, | |
583 | - 103, 103, 111, 115, 86, 111, 116, 115, 199, 118, | |
584 | - 116, 118, 131, 131, 164, 164, 164, 164, 164, 164, | |
585 | - 164, 186, 186, 186, 186, 186, 186, 186, 186, 202, | |
586 | - 202, 202, 202, 202, 202, 202, 202, 217, 198, 217, | |
587 | - 217, 217, 218, 218, 218, 218, 218, 219, 219, 220, | |
588 | - 220, 221, 221, 222, 222, 196, 195, 194, 192, 191, | |
589 | - 190, 185, 184, 180, 179, 178, 177, 176, 175, 174, | |
590 | - | |
591 | - 172, 171, 170, 169, 168, 165, 163, 162, 156, 155, | |
592 | - 154, 153, 152, 151, 147, 140, 139, 138, 137, 133, | |
593 | - 132, 129, 128, 127, 122, 112, 110, 109, 108, 107, | |
594 | - 106, 105, 104, 102, 101, 100, 99, 97, 95, 94, | |
595 | - 93, 92, 91, 90, 88, 87, 85, 82, 80, 79, | |
596 | - 78, 77, 76, 75, 73, 69, 68, 67, 63, 54, | |
597 | - 53, 52, 46, 44, 43, 40, 39, 38, 37, 36, | |
598 | - 35, 25, 21, 20, 19, 18, 14, 11, 10, 9, | |
599 | - 8, 7, 6, 3, 216, 216, 216, 216, 216, 216, | |
600 | - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, | |
601 | - | |
602 | - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, | |
603 | - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, | |
604 | - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, | |
605 | - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, | |
606 | - 216, 216, 216, 216 | |
582 | + 66, 66, 66, 66, 66, 66, 66, 86, 87, 89, | |
583 | + 103, 103, 111, 202, 86, 111, 115, 87, 116, 118, | |
584 | + 115, 118, 116, 131, 131, 165, 165, 165, 165, 165, | |
585 | + 165, 165, 188, 188, 188, 188, 188, 188, 188, 188, | |
586 | + 204, 204, 204, 204, 204, 204, 204, 204, 219, 201, | |
587 | + 219, 219, 219, 220, 220, 220, 220, 220, 221, 221, | |
588 | + 222, 222, 223, 223, 224, 224, 200, 198, 197, 196, | |
589 | + 194, 193, 192, 187, 186, 182, 181, 180, 179, 178, | |
590 | + | |
591 | + 177, 176, 173, 172, 171, 170, 169, 166, 164, 163, | |
592 | + 157, 156, 155, 154, 153, 152, 148, 141, 140, 139, | |
593 | + 138, 137, 133, 132, 129, 128, 127, 122, 112, 110, | |
594 | + 109, 108, 107, 106, 105, 104, 102, 101, 100, 99, | |
595 | + 97, 95, 94, 93, 92, 91, 90, 88, 85, 82, | |
596 | + 80, 79, 78, 77, 76, 75, 73, 69, 68, 67, | |
597 | + 63, 54, 53, 52, 46, 44, 43, 40, 39, 38, | |
598 | + 37, 36, 35, 25, 21, 20, 19, 18, 14, 11, | |
599 | + 10, 9, 8, 7, 6, 3, 218, 218, 218, 218, | |
600 | + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, | |
601 | + | |
602 | + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, | |
603 | + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, | |
604 | + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, | |
605 | + 218, 218, 218, 218, 218, 218, 218, 218, 218, 218, | |
606 | + 218, 218, 218, 218, 218, 218 | |
607 | 607 | } ; |
608 | 608 | |
609 | -static const flex_int16_t yy_rule_linenum[91] = | |
609 | +static const flex_int16_t yy_rule_linenum[92] = | |
610 | 610 | { 0, |
611 | - 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, | |
612 | - 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, | |
613 | - 143, 145, 146, 147, 148, 150, 151, 152, 153, 154, | |
614 | - 155, 156, 157, 158, 159, 161, 162, 163, 164, 165, | |
615 | - 166, 167, 168, 169, 170, 171, 172, 173, 174, 176, | |
616 | - 177, 179, 180, 181, 182, 183, 184, 185, 186, 188, | |
617 | - 189, 190, 191, 192, 193, 194, 195, 196, 197, 199, | |
618 | - 200, 201, 202, 203, 204, 205, 206, 208, 209, 210, | |
619 | - 211, 212, 213, 216, 217, 218, 219, 221, 222, 223 | |
611 | + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, | |
612 | + 133, 134, 135, 136, 137, 138, 139, 140, 141, 143, | |
613 | + 144, 146, 147, 148, 149, 151, 152, 153, 154, 155, | |
614 | + 156, 157, 158, 159, 160, 162, 163, 164, 165, 166, | |
615 | + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, | |
616 | + 178, 179, 181, 182, 183, 184, 185, 186, 187, 188, | |
617 | + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, | |
618 | + 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, | |
619 | + 212, 213, 214, 215, 218, 219, 220, 221, 223, 224, | |
620 | + 225 | |
621 | + | |
620 | 622 | } ; |
621 | 623 | |
622 | 624 | /* The intent behind this definition is that it'll catch |
@@ -685,6 +687,7 @@ namespace jstr | ||
685 | 687 | , FOR |
686 | 688 | , IF |
687 | 689 | , ELSE |
690 | + , ELSEIF | |
688 | 691 | , CONTINUE |
689 | 692 | , BREAK |
690 | 693 | , RETURN |
@@ -738,9 +741,9 @@ namespace jstr | ||
738 | 741 | } |
739 | 742 | } |
740 | 743 | |
741 | -#line 741 "lex.yy.cc" | |
744 | +#line 744 "lex.yy.cc" | |
742 | 745 | #define YY_NO_INPUT 1 |
743 | -#line 743 "lex.yy.cc" | |
746 | +#line 746 "lex.yy.cc" | |
744 | 747 | |
745 | 748 | #define INITIAL 0 |
746 | 749 |
@@ -935,10 +938,10 @@ YY_DECL | ||
935 | 938 | |
936 | 939 | { |
937 | 940 | /* %% [7.0] user's declarations go here */ |
938 | -#line 120 "lex.l" | |
941 | +#line 121 "lex.l" | |
939 | 942 | |
940 | 943 | |
941 | -#line 941 "lex.yy.cc" | |
944 | +#line 944 "lex.yy.cc" | |
942 | 945 | |
943 | 946 | while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ |
944 | 947 | { |
@@ -968,13 +971,13 @@ yy_match: | ||
968 | 971 | while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) |
969 | 972 | { |
970 | 973 | yy_current_state = (int) yy_def[yy_current_state]; |
971 | - if ( yy_current_state >= 217 ) | |
974 | + if ( yy_current_state >= 219 ) | |
972 | 975 | yy_c = yy_meta[yy_c]; |
973 | 976 | } |
974 | 977 | yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; |
975 | 978 | ++yy_cp; |
976 | 979 | } |
977 | - while ( yy_current_state != 216 ); | |
980 | + while ( yy_current_state != 218 ); | |
978 | 981 | yy_cp = (yy_last_accepting_cpos); |
979 | 982 | yy_current_state = (yy_last_accepting_state); |
980 | 983 |
@@ -993,12 +996,12 @@ do_action: /* This label is used only to access EOF actions. */ | ||
993 | 996 | { |
994 | 997 | if ( yy_act == 0 ) |
995 | 998 | std::cerr << "--scanner backing up\n"; |
996 | - else if ( yy_act < 91 ) | |
999 | + else if ( yy_act < 92 ) | |
997 | 1000 | std::cerr << "--accepting rule at line " << yy_rule_linenum[yy_act] << |
998 | 1001 | "(\"" << yytext << "\")\n"; |
999 | - else if ( yy_act == 91 ) | |
1000 | - std::cerr << "--accepting default rule (\"" << yytext << "\")\n"; | |
1001 | 1002 | else if ( yy_act == 92 ) |
1003 | + std::cerr << "--accepting default rule (\"" << yytext << "\")\n"; | |
1004 | + else if ( yy_act == 93 ) | |
1002 | 1005 | std::cerr << "--(end of buffer or a NUL)\n"; |
1003 | 1006 | else |
1004 | 1007 | std::cerr << "--EOF (start condition " << YY_START << ")\n"; |
@@ -1016,462 +1019,467 @@ do_action: /* This label is used only to access EOF actions. */ | ||
1016 | 1019 | |
1017 | 1020 | case 1: |
1018 | 1021 | YY_RULE_SETUP |
1019 | -#line 122 "lex.l" | |
1022 | +#line 123 "lex.l" | |
1020 | 1023 | return jstr::parser::token::INTEGER8 ; |
1021 | 1024 | YY_BREAK |
1022 | 1025 | case 2: |
1023 | 1026 | YY_RULE_SETUP |
1024 | -#line 123 "lex.l" | |
1027 | +#line 124 "lex.l" | |
1025 | 1028 | return jstr::parser::token::INTEGER16 ; |
1026 | 1029 | YY_BREAK |
1027 | 1030 | case 3: |
1028 | 1031 | YY_RULE_SETUP |
1029 | -#line 124 "lex.l" | |
1032 | +#line 125 "lex.l" | |
1030 | 1033 | return jstr::parser::token::INTEGER32 ; |
1031 | 1034 | YY_BREAK |
1032 | 1035 | case 4: |
1033 | 1036 | YY_RULE_SETUP |
1034 | -#line 125 "lex.l" | |
1037 | +#line 126 "lex.l" | |
1035 | 1038 | return jstr::parser::token::INTEGER64 ; |
1036 | 1039 | YY_BREAK |
1037 | 1040 | case 5: |
1038 | 1041 | YY_RULE_SETUP |
1039 | -#line 126 "lex.l" | |
1042 | +#line 127 "lex.l" | |
1040 | 1043 | return jstr::parser::token::UINTEGER8 ; |
1041 | 1044 | YY_BREAK |
1042 | 1045 | case 6: |
1043 | 1046 | YY_RULE_SETUP |
1044 | -#line 127 "lex.l" | |
1047 | +#line 128 "lex.l" | |
1045 | 1048 | return jstr::parser::token::UINTEGER16 ; |
1046 | 1049 | YY_BREAK |
1047 | 1050 | case 7: |
1048 | 1051 | YY_RULE_SETUP |
1049 | -#line 128 "lex.l" | |
1052 | +#line 129 "lex.l" | |
1050 | 1053 | return jstr::parser::token::UINTEGER32 ; |
1051 | 1054 | YY_BREAK |
1052 | 1055 | case 8: |
1053 | 1056 | YY_RULE_SETUP |
1054 | -#line 129 "lex.l" | |
1057 | +#line 130 "lex.l" | |
1055 | 1058 | return jstr::parser::token::UINTEGER64 ; |
1056 | 1059 | YY_BREAK |
1057 | 1060 | case 9: |
1058 | 1061 | YY_RULE_SETUP |
1059 | -#line 130 "lex.l" | |
1062 | +#line 131 "lex.l" | |
1060 | 1063 | return jstr::parser::token::CHARACTER8 ; |
1061 | 1064 | YY_BREAK |
1062 | 1065 | case 10: |
1063 | 1066 | YY_RULE_SETUP |
1064 | -#line 131 "lex.l" | |
1067 | +#line 132 "lex.l" | |
1065 | 1068 | return jstr::parser::token::CHARACTER16 ; |
1066 | 1069 | YY_BREAK |
1067 | 1070 | case 11: |
1068 | 1071 | YY_RULE_SETUP |
1069 | -#line 132 "lex.l" | |
1072 | +#line 133 "lex.l" | |
1070 | 1073 | return jstr::parser::token::CHARACTER32 ; |
1071 | 1074 | YY_BREAK |
1072 | 1075 | case 12: |
1073 | 1076 | YY_RULE_SETUP |
1074 | -#line 133 "lex.l" | |
1077 | +#line 134 "lex.l" | |
1075 | 1078 | return jstr::parser::token::CHARACTER64 ; |
1076 | 1079 | YY_BREAK |
1077 | 1080 | case 13: |
1078 | 1081 | YY_RULE_SETUP |
1079 | -#line 134 "lex.l" | |
1082 | +#line 135 "lex.l" | |
1080 | 1083 | return jstr::parser::token::FLOAT ; |
1081 | 1084 | YY_BREAK |
1082 | 1085 | case 14: |
1083 | 1086 | YY_RULE_SETUP |
1084 | -#line 135 "lex.l" | |
1087 | +#line 136 "lex.l" | |
1085 | 1088 | return jstr::parser::token::DOUBLE ; |
1086 | 1089 | YY_BREAK |
1087 | 1090 | case 15: |
1088 | 1091 | YY_RULE_SETUP |
1089 | -#line 136 "lex.l" | |
1092 | +#line 137 "lex.l" | |
1090 | 1093 | return jstr::parser::token::BOOLEAN ; |
1091 | 1094 | YY_BREAK |
1092 | 1095 | case 16: |
1093 | 1096 | YY_RULE_SETUP |
1094 | -#line 137 "lex.l" | |
1097 | +#line 138 "lex.l" | |
1095 | 1098 | return jstr::parser::token::OBJECT ; |
1096 | 1099 | YY_BREAK |
1097 | 1100 | case 17: |
1098 | 1101 | YY_RULE_SETUP |
1099 | -#line 138 "lex.l" | |
1102 | +#line 139 "lex.l" | |
1100 | 1103 | return jstr::parser::token::LAMBDA ; |
1101 | 1104 | YY_BREAK |
1102 | 1105 | case 18: |
1103 | 1106 | YY_RULE_SETUP |
1104 | -#line 139 "lex.l" | |
1107 | +#line 140 "lex.l" | |
1105 | 1108 | return jstr::parser::token::VOID ; |
1106 | 1109 | YY_BREAK |
1107 | 1110 | case 19: |
1108 | 1111 | YY_RULE_SETUP |
1109 | -#line 140 "lex.l" | |
1112 | +#line 141 "lex.l" | |
1110 | 1113 | return jstr::parser::token::INOUT ; |
1111 | 1114 | YY_BREAK |
1112 | 1115 | case 20: |
1113 | 1116 | YY_RULE_SETUP |
1114 | -#line 142 "lex.l" | |
1117 | +#line 143 "lex.l" | |
1115 | 1118 | return jstr::parser::token::CONST ; |
1116 | 1119 | YY_BREAK |
1117 | 1120 | case 21: |
1118 | 1121 | YY_RULE_SETUP |
1119 | -#line 143 "lex.l" | |
1122 | +#line 144 "lex.l" | |
1120 | 1123 | return jstr::parser::token::VOLATILE ; |
1121 | 1124 | YY_BREAK |
1122 | 1125 | case 22: |
1123 | 1126 | YY_RULE_SETUP |
1124 | -#line 145 "lex.l" | |
1127 | +#line 146 "lex.l" | |
1125 | 1128 | return jstr::parser::token::CLASS ; |
1126 | 1129 | YY_BREAK |
1127 | 1130 | case 23: |
1128 | 1131 | YY_RULE_SETUP |
1129 | -#line 146 "lex.l" | |
1132 | +#line 147 "lex.l" | |
1130 | 1133 | return jstr::parser::token::NEW ; |
1131 | 1134 | YY_BREAK |
1132 | 1135 | case 24: |
1133 | 1136 | YY_RULE_SETUP |
1134 | -#line 147 "lex.l" | |
1137 | +#line 148 "lex.l" | |
1135 | 1138 | return jstr::parser::token::THIS ; |
1136 | 1139 | YY_BREAK |
1137 | 1140 | case 25: |
1138 | 1141 | YY_RULE_SETUP |
1139 | -#line 148 "lex.l" | |
1142 | +#line 149 "lex.l" | |
1140 | 1143 | return jstr::parser::token::DELETE ; |
1141 | 1144 | YY_BREAK |
1142 | 1145 | case 26: |
1143 | 1146 | YY_RULE_SETUP |
1144 | -#line 150 "lex.l" | |
1147 | +#line 151 "lex.l" | |
1145 | 1148 | return jstr::parser::token::CASE ; |
1146 | 1149 | YY_BREAK |
1147 | 1150 | case 27: |
1148 | 1151 | YY_RULE_SETUP |
1149 | -#line 151 "lex.l" | |
1152 | +#line 152 "lex.l" | |
1150 | 1153 | return jstr::parser::token::TYPE ; |
1151 | 1154 | YY_BREAK |
1152 | 1155 | case 28: |
1153 | 1156 | YY_RULE_SETUP |
1154 | -#line 152 "lex.l" | |
1157 | +#line 153 "lex.l" | |
1155 | 1158 | return jstr::parser::token::JDOMAIN ; |
1156 | 1159 | YY_BREAK |
1157 | 1160 | case 29: |
1158 | 1161 | YY_RULE_SETUP |
1159 | -#line 153 "lex.l" | |
1162 | +#line 154 "lex.l" | |
1160 | 1163 | return jstr::parser::token::CODOMAIN ; |
1161 | 1164 | YY_BREAK |
1162 | 1165 | case 30: |
1163 | 1166 | YY_RULE_SETUP |
1164 | -#line 154 "lex.l" | |
1167 | +#line 155 "lex.l" | |
1165 | 1168 | return jstr::parser::token::RESUME ; |
1166 | 1169 | YY_BREAK |
1167 | 1170 | case 31: |
1168 | 1171 | YY_RULE_SETUP |
1169 | -#line 155 "lex.l" | |
1172 | +#line 156 "lex.l" | |
1170 | 1173 | return jstr::parser::token::CALL ; |
1171 | 1174 | YY_BREAK |
1172 | 1175 | case 32: |
1173 | 1176 | YY_RULE_SETUP |
1174 | -#line 156 "lex.l" | |
1177 | +#line 157 "lex.l" | |
1175 | 1178 | return jstr::parser::token::DETACH ; |
1176 | 1179 | YY_BREAK |
1177 | 1180 | case 33: |
1178 | 1181 | YY_RULE_SETUP |
1179 | -#line 157 "lex.l" | |
1182 | +#line 158 "lex.l" | |
1180 | 1183 | return jstr::parser::token::DIJKSTRA ; |
1181 | 1184 | YY_BREAK |
1182 | 1185 | case 34: |
1183 | 1186 | YY_RULE_SETUP |
1184 | -#line 158 "lex.l" | |
1187 | +#line 159 "lex.l" | |
1185 | 1188 | return jstr::parser::token::ARGUMENTETCETRA ; |
1186 | 1189 | YY_BREAK |
1187 | 1190 | case 35: |
1188 | 1191 | YY_RULE_SETUP |
1189 | -#line 159 "lex.l" | |
1192 | +#line 160 "lex.l" | |
1190 | 1193 | return jstr::parser::token::ARGUMENTSEPARATOR ; |
1191 | 1194 | YY_BREAK |
1192 | 1195 | case 36: |
1193 | 1196 | YY_RULE_SETUP |
1194 | -#line 161 "lex.l" | |
1197 | +#line 162 "lex.l" | |
1195 | 1198 | return jstr::parser::token::JBEGIN ; |
1196 | 1199 | YY_BREAK |
1197 | 1200 | case 37: |
1198 | 1201 | YY_RULE_SETUP |
1199 | -#line 162 "lex.l" | |
1202 | +#line 163 "lex.l" | |
1200 | 1203 | return jstr::parser::token::END ; |
1201 | 1204 | YY_BREAK |
1202 | 1205 | case 38: |
1203 | 1206 | YY_RULE_SETUP |
1204 | -#line 163 "lex.l" | |
1207 | +#line 164 "lex.l" | |
1205 | 1208 | return jstr::parser::token::LINEEND ; |
1206 | 1209 | YY_BREAK |
1207 | 1210 | case 39: |
1208 | 1211 | YY_RULE_SETUP |
1209 | -#line 164 "lex.l" | |
1212 | +#line 165 "lex.l" | |
1210 | 1213 | return jstr::parser::token::WHILE ; |
1211 | 1214 | YY_BREAK |
1212 | 1215 | case 40: |
1213 | 1216 | YY_RULE_SETUP |
1214 | -#line 165 "lex.l" | |
1217 | +#line 166 "lex.l" | |
1215 | 1218 | return jstr::parser::token::DO ; |
1216 | 1219 | YY_BREAK |
1217 | 1220 | case 41: |
1218 | 1221 | YY_RULE_SETUP |
1219 | -#line 166 "lex.l" | |
1222 | +#line 167 "lex.l" | |
1220 | 1223 | return jstr::parser::token::FOR ; |
1221 | 1224 | YY_BREAK |
1222 | 1225 | case 42: |
1223 | 1226 | YY_RULE_SETUP |
1224 | -#line 167 "lex.l" | |
1227 | +#line 168 "lex.l" | |
1225 | 1228 | return jstr::parser::token::IF ; |
1226 | 1229 | YY_BREAK |
1227 | 1230 | case 43: |
1228 | 1231 | YY_RULE_SETUP |
1229 | -#line 168 "lex.l" | |
1232 | +#line 169 "lex.l" | |
1230 | 1233 | return jstr::parser::token::ELSE ; |
1231 | 1234 | YY_BREAK |
1232 | 1235 | case 44: |
1233 | 1236 | YY_RULE_SETUP |
1234 | -#line 169 "lex.l" | |
1235 | -return jstr::parser::token::CONTINUE ; | |
1237 | +#line 170 "lex.l" | |
1238 | +return jstr::parser::token::ELSEIF ; | |
1236 | 1239 | YY_BREAK |
1237 | 1240 | case 45: |
1238 | 1241 | YY_RULE_SETUP |
1239 | -#line 170 "lex.l" | |
1240 | -return jstr::parser::token::BREAK ; | |
1242 | +#line 171 "lex.l" | |
1243 | +return jstr::parser::token::CONTINUE ; | |
1241 | 1244 | YY_BREAK |
1242 | 1245 | case 46: |
1243 | 1246 | YY_RULE_SETUP |
1244 | -#line 171 "lex.l" | |
1245 | -return jstr::parser::token::RETURN ; | |
1247 | +#line 172 "lex.l" | |
1248 | +return jstr::parser::token::BREAK ; | |
1246 | 1249 | YY_BREAK |
1247 | 1250 | case 47: |
1248 | 1251 | YY_RULE_SETUP |
1249 | -#line 172 "lex.l" | |
1250 | -return jstr::parser::token::JERROR ; | |
1252 | +#line 173 "lex.l" | |
1253 | +return jstr::parser::token::RETURN ; | |
1251 | 1254 | YY_BREAK |
1252 | 1255 | case 48: |
1253 | 1256 | YY_RULE_SETUP |
1254 | -#line 173 "lex.l" | |
1255 | -return jstr::parser::token::PRINT ; | |
1257 | +#line 174 "lex.l" | |
1258 | +return jstr::parser::token::JERROR ; | |
1256 | 1259 | YY_BREAK |
1257 | 1260 | case 49: |
1258 | 1261 | YY_RULE_SETUP |
1259 | -#line 174 "lex.l" | |
1260 | -return jstr::parser::token::COLON ; | |
1262 | +#line 175 "lex.l" | |
1263 | +return jstr::parser::token::PRINT ; | |
1261 | 1264 | YY_BREAK |
1262 | 1265 | case 50: |
1263 | 1266 | YY_RULE_SETUP |
1264 | 1267 | #line 176 "lex.l" |
1265 | -return jstr::parser::token::INCLUDE ; | |
1268 | +return jstr::parser::token::COLON ; | |
1266 | 1269 | YY_BREAK |
1267 | 1270 | case 51: |
1268 | 1271 | YY_RULE_SETUP |
1269 | -#line 177 "lex.l" | |
1270 | -return jstr::parser::token::TEST ; | |
1272 | +#line 178 "lex.l" | |
1273 | +return jstr::parser::token::INCLUDE ; | |
1271 | 1274 | YY_BREAK |
1272 | 1275 | case 52: |
1273 | 1276 | YY_RULE_SETUP |
1274 | 1277 | #line 179 "lex.l" |
1275 | -return jstr::parser::token::ASSIGN ; | |
1278 | +return jstr::parser::token::TEST ; | |
1276 | 1279 | YY_BREAK |
1277 | 1280 | case 53: |
1278 | 1281 | YY_RULE_SETUP |
1279 | -#line 180 "lex.l" | |
1280 | -return jstr::parser::token::ASSIGNMUL ; | |
1282 | +#line 181 "lex.l" | |
1283 | +return jstr::parser::token::ASSIGN ; | |
1281 | 1284 | YY_BREAK |
1282 | 1285 | case 54: |
1283 | 1286 | YY_RULE_SETUP |
1284 | -#line 181 "lex.l" | |
1285 | -return jstr::parser::token::ASSIGNDIV ; | |
1287 | +#line 182 "lex.l" | |
1288 | +return jstr::parser::token::ASSIGNMUL ; | |
1286 | 1289 | YY_BREAK |
1287 | 1290 | case 55: |
1288 | 1291 | YY_RULE_SETUP |
1289 | -#line 182 "lex.l" | |
1290 | -return jstr::parser::token::ASSIGNREMAINDER ; | |
1292 | +#line 183 "lex.l" | |
1293 | +return jstr::parser::token::ASSIGNDIV ; | |
1291 | 1294 | YY_BREAK |
1292 | 1295 | case 56: |
1293 | 1296 | YY_RULE_SETUP |
1294 | -#line 183 "lex.l" | |
1295 | -return jstr::parser::token::ASSIGNADD ; | |
1297 | +#line 184 "lex.l" | |
1298 | +return jstr::parser::token::ASSIGNREMAINDER ; | |
1296 | 1299 | YY_BREAK |
1297 | 1300 | case 57: |
1298 | 1301 | YY_RULE_SETUP |
1299 | -#line 184 "lex.l" | |
1300 | -return jstr::parser::token::ASSIGNSUB ; | |
1302 | +#line 185 "lex.l" | |
1303 | +return jstr::parser::token::ASSIGNADD ; | |
1301 | 1304 | YY_BREAK |
1302 | 1305 | case 58: |
1303 | 1306 | YY_RULE_SETUP |
1304 | -#line 185 "lex.l" | |
1305 | -return jstr::parser::token::ASSIGNSHIFTLEFT ; | |
1307 | +#line 186 "lex.l" | |
1308 | +return jstr::parser::token::ASSIGNSUB ; | |
1306 | 1309 | YY_BREAK |
1307 | 1310 | case 59: |
1308 | 1311 | YY_RULE_SETUP |
1309 | -#line 186 "lex.l" | |
1310 | -return jstr::parser::token::ASSIGNSHIFTRIGHT ; | |
1312 | +#line 187 "lex.l" | |
1313 | +return jstr::parser::token::ASSIGNSHIFTLEFT ; | |
1311 | 1314 | YY_BREAK |
1312 | 1315 | case 60: |
1313 | 1316 | YY_RULE_SETUP |
1314 | 1317 | #line 188 "lex.l" |
1315 | -return jstr::parser::token::OR ; | |
1318 | +return jstr::parser::token::ASSIGNSHIFTRIGHT ; | |
1316 | 1319 | YY_BREAK |
1317 | 1320 | case 61: |
1318 | 1321 | YY_RULE_SETUP |
1319 | -#line 189 "lex.l" | |
1320 | -return jstr::parser::token::AND ; | |
1322 | +#line 190 "lex.l" | |
1323 | +return jstr::parser::token::OR ; | |
1321 | 1324 | YY_BREAK |
1322 | 1325 | case 62: |
1323 | 1326 | YY_RULE_SETUP |
1324 | -#line 190 "lex.l" | |
1325 | -return jstr::parser::token::EQUALITY ; | |
1327 | +#line 191 "lex.l" | |
1328 | +return jstr::parser::token::AND ; | |
1326 | 1329 | YY_BREAK |
1327 | 1330 | case 63: |
1328 | 1331 | YY_RULE_SETUP |
1329 | -#line 191 "lex.l" | |
1330 | -return jstr::parser::token::NOTEQUALITY ; | |
1332 | +#line 192 "lex.l" | |
1333 | +return jstr::parser::token::EQUALITY ; | |
1331 | 1334 | YY_BREAK |
1332 | 1335 | case 64: |
1333 | 1336 | YY_RULE_SETUP |
1334 | -#line 192 "lex.l" | |
1335 | -return jstr::parser::token::RATIONALLEFT ; | |
1337 | +#line 193 "lex.l" | |
1338 | +return jstr::parser::token::NOTEQUALITY ; | |
1336 | 1339 | YY_BREAK |
1337 | 1340 | case 65: |
1338 | 1341 | YY_RULE_SETUP |
1339 | -#line 193 "lex.l" | |
1340 | -return jstr::parser::token::RATIONALRIGHT ; | |
1342 | +#line 194 "lex.l" | |
1343 | +return jstr::parser::token::RATIONALLEFT ; | |
1341 | 1344 | YY_BREAK |
1342 | 1345 | case 66: |
1343 | 1346 | YY_RULE_SETUP |
1344 | -#line 194 "lex.l" | |
1345 | -return jstr::parser::token::RATIONALLEFTEQUAL ; | |
1347 | +#line 195 "lex.l" | |
1348 | +return jstr::parser::token::RATIONALRIGHT ; | |
1346 | 1349 | YY_BREAK |
1347 | 1350 | case 67: |
1348 | 1351 | YY_RULE_SETUP |
1349 | -#line 195 "lex.l" | |
1350 | -return jstr::parser::token::RATIONALRIGHTEQUAL ; | |
1352 | +#line 196 "lex.l" | |
1353 | +return jstr::parser::token::RATIONALLEFTEQUAL ; | |
1351 | 1354 | YY_BREAK |
1352 | 1355 | case 68: |
1353 | 1356 | YY_RULE_SETUP |
1354 | -#line 196 "lex.l" | |
1355 | -return jstr::parser::token::SHIFTLEFT ; | |
1357 | +#line 197 "lex.l" | |
1358 | +return jstr::parser::token::RATIONALRIGHTEQUAL ; | |
1356 | 1359 | YY_BREAK |
1357 | 1360 | case 69: |
1358 | 1361 | YY_RULE_SETUP |
1359 | -#line 197 "lex.l" | |
1360 | -return jstr::parser::token::SHIFTRIGHT ; | |
1362 | +#line 198 "lex.l" | |
1363 | +return jstr::parser::token::SHIFTLEFT ; | |
1361 | 1364 | YY_BREAK |
1362 | 1365 | case 70: |
1363 | 1366 | YY_RULE_SETUP |
1364 | 1367 | #line 199 "lex.l" |
1365 | -return jstr::parser::token::ADD ; | |
1368 | +return jstr::parser::token::SHIFTRIGHT ; | |
1366 | 1369 | YY_BREAK |
1367 | 1370 | case 71: |
1368 | 1371 | YY_RULE_SETUP |
1369 | -#line 200 "lex.l" | |
1370 | -return jstr::parser::token::SUB ; | |
1372 | +#line 201 "lex.l" | |
1373 | +return jstr::parser::token::ADD ; | |
1371 | 1374 | YY_BREAK |
1372 | 1375 | case 72: |
1373 | 1376 | YY_RULE_SETUP |
1374 | -#line 201 "lex.l" | |
1375 | -return jstr::parser::token::MUL ; | |
1377 | +#line 202 "lex.l" | |
1378 | +return jstr::parser::token::SUB ; | |
1376 | 1379 | YY_BREAK |
1377 | 1380 | case 73: |
1378 | 1381 | YY_RULE_SETUP |
1379 | -#line 202 "lex.l" | |
1380 | -return jstr::parser::token::DIV ; | |
1382 | +#line 203 "lex.l" | |
1383 | +return jstr::parser::token::MUL ; | |
1381 | 1384 | YY_BREAK |
1382 | 1385 | case 74: |
1383 | 1386 | YY_RULE_SETUP |
1384 | -#line 203 "lex.l" | |
1385 | -return jstr::parser::token::REMAINDER ; | |
1387 | +#line 204 "lex.l" | |
1388 | +return jstr::parser::token::DIV ; | |
1386 | 1389 | YY_BREAK |
1387 | 1390 | case 75: |
1388 | 1391 | YY_RULE_SETUP |
1389 | -#line 204 "lex.l" | |
1390 | -return jstr::parser::token::NOT ; | |
1392 | +#line 205 "lex.l" | |
1393 | +return jstr::parser::token::REMAINDER ; | |
1391 | 1394 | YY_BREAK |
1392 | 1395 | case 76: |
1393 | 1396 | YY_RULE_SETUP |
1394 | -#line 205 "lex.l" | |
1395 | -return jstr::parser::token::UNARYPLUSPLUS ; | |
1397 | +#line 206 "lex.l" | |
1398 | +return jstr::parser::token::NOT ; | |
1396 | 1399 | YY_BREAK |
1397 | 1400 | case 77: |
1398 | 1401 | YY_RULE_SETUP |
1399 | -#line 206 "lex.l" | |
1400 | -return jstr::parser::token::UNARYMINUSMINUS ; | |
1402 | +#line 207 "lex.l" | |
1403 | +return jstr::parser::token::UNARYPLUSPLUS ; | |
1401 | 1404 | YY_BREAK |
1402 | 1405 | case 78: |
1403 | 1406 | YY_RULE_SETUP |
1404 | 1407 | #line 208 "lex.l" |
1405 | -return jstr::parser::token::DOT ; | |
1408 | +return jstr::parser::token::UNARYMINUSMINUS ; | |
1406 | 1409 | YY_BREAK |
1407 | 1410 | case 79: |
1408 | 1411 | YY_RULE_SETUP |
1409 | -#line 209 "lex.l" | |
1410 | -return jstr::parser::token::PARENBEGIN ; | |
1412 | +#line 210 "lex.l" | |
1413 | +return jstr::parser::token::DOT ; | |
1411 | 1414 | YY_BREAK |
1412 | 1415 | case 80: |
1413 | 1416 | YY_RULE_SETUP |
1414 | -#line 210 "lex.l" | |
1415 | -return jstr::parser::token::PARENEND ; | |
1417 | +#line 211 "lex.l" | |
1418 | +return jstr::parser::token::PARENBEGIN ; | |
1416 | 1419 | YY_BREAK |
1417 | 1420 | case 81: |
1418 | 1421 | YY_RULE_SETUP |
1419 | -#line 211 "lex.l" | |
1420 | -return jstr::parser::token::CONDITIONALQUESTION; | |
1422 | +#line 212 "lex.l" | |
1423 | +return jstr::parser::token::PARENEND ; | |
1421 | 1424 | YY_BREAK |
1422 | 1425 | case 82: |
1423 | 1426 | YY_RULE_SETUP |
1424 | -#line 212 "lex.l" | |
1425 | -return jstr::parser::token::EXPECT ; | |
1427 | +#line 213 "lex.l" | |
1428 | +return jstr::parser::token::CONDITIONALQUESTION; | |
1426 | 1429 | YY_BREAK |
1427 | 1430 | case 83: |
1428 | 1431 | YY_RULE_SETUP |
1429 | -#line 213 "lex.l" | |
1430 | -return jstr::parser::token::EXCEPT ; | |
1432 | +#line 214 "lex.l" | |
1433 | +return jstr::parser::token::EXPECT ; | |
1431 | 1434 | YY_BREAK |
1432 | 1435 | case 84: |
1433 | 1436 | YY_RULE_SETUP |
1434 | -#line 216 "lex.l" | |
1435 | -return jstr::parser::token::IDENTIFIER ; | |
1437 | +#line 215 "lex.l" | |
1438 | +return jstr::parser::token::EXCEPT ; | |
1436 | 1439 | YY_BREAK |
1437 | 1440 | case 85: |
1438 | 1441 | YY_RULE_SETUP |
1439 | -#line 217 "lex.l" | |
1440 | -return jstr::parser::token::UNSIGNEDINTEGER ; | |
1442 | +#line 218 "lex.l" | |
1443 | +return jstr::parser::token::IDENTIFIER ; | |
1441 | 1444 | YY_BREAK |
1442 | 1445 | case 86: |
1443 | 1446 | YY_RULE_SETUP |
1444 | -#line 218 "lex.l" | |
1445 | -return jstr::parser::token::UNSIGNEDNUMBER ; | |
1447 | +#line 219 "lex.l" | |
1448 | +return jstr::parser::token::UNSIGNEDINTEGER ; | |
1446 | 1449 | YY_BREAK |
1447 | 1450 | case 87: |
1448 | 1451 | YY_RULE_SETUP |
1449 | -#line 219 "lex.l" | |
1450 | -return jstr::parser::token::TEXT ; | |
1452 | +#line 220 "lex.l" | |
1453 | +return jstr::parser::token::UNSIGNEDNUMBER ; | |
1451 | 1454 | YY_BREAK |
1452 | 1455 | case 88: |
1453 | -/* rule 88 can match eol */ | |
1454 | 1456 | YY_RULE_SETUP |
1455 | 1457 | #line 221 "lex.l" |
1456 | -return jstr::parser::token::COMMENT ; | |
1458 | +return jstr::parser::token::TEXT ; | |
1457 | 1459 | YY_BREAK |
1458 | 1460 | case 89: |
1459 | 1461 | /* rule 89 can match eol */ |
1460 | 1462 | YY_RULE_SETUP |
1461 | -#line 222 "lex.l" | |
1462 | -return jstr::parser::token::NEWLINE ; | |
1463 | +#line 223 "lex.l" | |
1464 | +return jstr::parser::token::COMMENT ; | |
1463 | 1465 | YY_BREAK |
1464 | 1466 | case 90: |
1467 | +/* rule 90 can match eol */ | |
1465 | 1468 | YY_RULE_SETUP |
1466 | -#line 223 "lex.l" | |
1467 | -return jstr::parser::token::INDENT ; | |
1469 | +#line 224 "lex.l" | |
1470 | +return jstr::parser::token::NEWLINE ; | |
1468 | 1471 | YY_BREAK |
1469 | 1472 | case 91: |
1470 | 1473 | YY_RULE_SETUP |
1471 | 1474 | #line 225 "lex.l" |
1475 | +return jstr::parser::token::INDENT ; | |
1476 | + YY_BREAK | |
1477 | +case 92: | |
1478 | +YY_RULE_SETUP | |
1479 | +#line 227 "lex.l" | |
1472 | 1480 | ECHO; |
1473 | 1481 | YY_BREAK |
1474 | -#line 1474 "lex.yy.cc" | |
1482 | +#line 1482 "lex.yy.cc" | |
1475 | 1483 | case YY_STATE_EOF(INITIAL): |
1476 | 1484 | yyterminate(); |
1477 | 1485 |
@@ -1912,7 +1920,7 @@ int yyFlexLexer::yy_get_next_buffer() | ||
1912 | 1920 | while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) |
1913 | 1921 | { |
1914 | 1922 | yy_current_state = (int) yy_def[yy_current_state]; |
1915 | - if ( yy_current_state >= 217 ) | |
1923 | + if ( yy_current_state >= 219 ) | |
1916 | 1924 | yy_c = yy_meta[yy_c]; |
1917 | 1925 | } |
1918 | 1926 | yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; |
@@ -1945,11 +1953,11 @@ int yyFlexLexer::yy_get_next_buffer() | ||
1945 | 1953 | while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) |
1946 | 1954 | { |
1947 | 1955 | yy_current_state = (int) yy_def[yy_current_state]; |
1948 | - if ( yy_current_state >= 217 ) | |
1956 | + if ( yy_current_state >= 219 ) | |
1949 | 1957 | yy_c = yy_meta[yy_c]; |
1950 | 1958 | } |
1951 | 1959 | yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; |
1952 | - yy_is_jam = (yy_current_state == 216); | |
1960 | + yy_is_jam = (yy_current_state == 218); | |
1953 | 1961 | |
1954 | 1962 | return yy_is_jam ? 0 : yy_current_state; |
1955 | 1963 | } |
@@ -2592,6 +2600,6 @@ void yyfree (void * ptr ) | ||
2592 | 2600 | |
2593 | 2601 | /* %ok-for-header */ |
2594 | 2602 | |
2595 | -#line 225 "lex.l" | |
2603 | +#line 227 "lex.l" | |
2596 | 2604 | |
2597 | 2605 |
@@ -1,31 +1,46 @@ | ||
1 | 1 | spec my_main < main: |
2 | 2 | obj o = new hoge(); |
3 | 3 | obj oa = new hogehoge(i:12); |
4 | - o.f(); | |
4 | + expect o.f(); | |
5 | 5 | delete o; |
6 | 6 | |
7 | 7 | expect oa.f(); |
8 | - expect oa.f(i:15) = 15; | |
9 | - expect oa.f( | |
8 | + expect oa.ff() = 12; | |
9 | + expect oa.ff(i:15) = 15; | |
10 | + expect oa.ff( | |
10 | 11 | i:12 |
11 | 12 | ) = 12; |
12 | 13 | delete oa; |
13 | 14 | |
14 | 15 | obj oh = new Hg(); |
15 | - expect oh.f() = 32; | |
16 | - expect oh.f(i:18) = 18; | |
17 | - expect oh.f(i:12) = 12; | |
16 | + expect oh.f(); | |
17 | + expect oa.ff() = 0; | |
18 | + expect oh.fff() = 35; | |
19 | + expect oh.ff(i:18) = 18; | |
20 | + expect oh.ff() = 18; | |
21 | + expect oh.fff(i:12) = 12; | |
22 | + expect oh.ff() = 18; | |
23 | + expect oh.fff() = 12; | |
18 | 24 | expect oh.g(i:15) = 15; |
19 | - expect oh.f( | |
20 | - i: 12, | |
21 | - j: 15 | |
22 | - ) = 12; | |
23 | - obj ob = new Hh(i:12); | |
24 | - expect ob.f() = 12; | |
25 | + expect oa.fg() = 12; | |
26 | + expect oh.fff( | |
27 | + i: 14, | |
28 | + j: 21 | |
29 | + ) = 14; | |
30 | + expect oh.fff() = 14; | |
31 | + expect oa.g() = 15; | |
32 | + expect oa.fg() = 21; | |
33 | + expect oa.f(); | |
34 | + expect oh.ff() = 18; | |
35 | + delete oh; | |
36 | + obj ob = new Hh(i:15); | |
37 | + expect ob.f(); | |
38 | + expect oh.ff() = 0; | |
25 | 39 | expect ob.g() = 35; |
26 | - | |
27 | - expect ob.g(i:15) = 15; | |
28 | - expect ob.f() = 12; | |
40 | + expect oh.fff() = 12; | |
41 | + expect oh.ffff() = 15; | |
42 | + expect ob.g(i:17) = 17; | |
43 | + expect ob.g() = 17; | |
29 | 44 | delete ob; |
30 | 45 | ; |
31 | 46 |
@@ -39,19 +54,19 @@ class hoge: | ||
39 | 54 | |
40 | 55 | class hogehoge: |
41 | 56 | i32 i = 0; |
42 | - io i32 f: | |
57 | + io i32 ff: | |
43 | 58 | return i; |
44 | 59 | ; |
45 | 60 | |
46 | 61 | class Hg < hogehoge < hoge: |
47 | 62 | i32 i = 35; |
48 | 63 | i64 j = 12; |
49 | - io i32 f: | |
64 | + io i32 fff: | |
50 | 65 | return i; |
51 | 66 | io i32 g: |
52 | 67 | return i; |
53 | 68 | io i64 fg: |
54 | - return i; | |
69 | + return j; | |
55 | 70 | ; |
56 | 71 | |
57 | 72 | class Hf: |
@@ -59,6 +74,6 @@ class Hf: | ||
59 | 74 | |
60 | 75 | class Hh < Hg < Hf: |
61 | 76 | i32 i = 0; |
62 | - io i32 f: | |
77 | + io i32 ffff: | |
63 | 78 | return i; |
64 | 79 | ; |
@@ -3,6 +3,9 @@ spec my_main < main: | ||
3 | 3 | o.f(); |
4 | 4 | except o.g(); |
5 | 5 | delete o; |
6 | + obj oo = new hogehoge(); | |
7 | + except oo.f(); | |
8 | + delete oo; | |
6 | 9 | ; |
7 | 10 | |
8 | 11 |
@@ -10,7 +10,7 @@ spec my_main < main: | ||
10 | 10 | return my_main; |
11 | 11 | if oa.f() > 11: |
12 | 12 | ; |
13 | - else if oa.f() < 12: | |
13 | + elif oa.f() < 12: | |
14 | 14 | delete oa; |
15 | 15 | return my_main; |
16 | 16 | else: |