From: Nick Downing Date: Fri, 3 Aug 2018 07:07:46 +0000 (+1000) Subject: Put PYACC.Text inside PYACC.BracedCode excluding the braces, except for the action... X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=3a5de99314d055d1ce1c4a22304249d0df83c5bb;p=bootstrap_bison.git Put PYACC.Text inside PYACC.BracedCode excluding the braces, except for the action text where this is too difficult (so we'll work around it in ast.py for now) --- diff --git a/src/parse-gram.c b/src/parse-gram.c index 770c1c2..c6672cd 100644 --- a/src/parse-gram.c +++ b/src/parse-gram.c @@ -129,7 +129,7 @@ extern int gram_debug; param_parse = 1 << 1, param_both = param_lex | param_parse } param_type; -#line 885 "src/parse-gram.y" /* yacc.c:355 */ +#line 887 "src/parse-gram.y" /* yacc.c:355 */ #include "muscle-tab.h" #line 136 "src/parse-gram.c" /* yacc.c:355 */ @@ -221,9 +221,9 @@ symbol_list *list; named_ref *named_ref; #line 266 "src/parse-gram.y" /* yacc.c:355 */ param_type param; -#line 561 "src/parse-gram.y" /* yacc.c:355 */ +#line 563 "src/parse-gram.y" /* yacc.c:355 */ code_props_type code_type; -#line 887 "src/parse-gram.y" /* yacc.c:355 */ +#line 889 "src/parse-gram.y" /* yacc.c:355 */ struct { @@ -645,17 +645,17 @@ static const yytype_uint8 yytranslate[] = static const yytype_uint16 yyrline[] = { 0, 289, 289, 304, 315, 319, 320, 332, 350, 357, - 361, 368, 376, 381, 386, 390, 397, 409, 413, 417, - 421, 425, 429, 429, 433, 437, 463, 467, 471, 475, - 479, 480, 489, 490, 491, 499, 519, 525, 531, 546, - 564, 565, 575, 576, 582, 601, 601, 608, 608, 615, - 628, 646, 647, 648, 649, 653, 654, 659, 661, 666, - 673, 686, 691, 699, 700, 704, 708, 712, 713, 714, - 719, 724, 731, 740, 748, 762, 763, 772, 773, 779, - 780, 781, 788, 788, 801, 805, 809, 814, 826, 832, - 841, 843, 848, 855, 861, 869, 870, 880, 881, 906, - 907, 908, 909, 921, 923, 932, 937, 938, 943, 951, - 952 + 361, 368, 376, 381, 386, 390, 397, 410, 414, 418, + 422, 426, 430, 430, 434, 438, 464, 468, 472, 476, + 480, 481, 490, 491, 492, 500, 521, 527, 533, 548, + 566, 567, 577, 578, 584, 603, 603, 610, 610, 617, + 630, 648, 649, 650, 651, 655, 656, 661, 663, 668, + 675, 688, 693, 701, 702, 706, 710, 714, 715, 716, + 721, 726, 733, 742, 750, 764, 765, 774, 775, 781, + 782, 783, 790, 790, 803, 807, 811, 816, 828, 834, + 843, 845, 850, 857, 863, 871, 872, 882, 883, 908, + 909, 910, 911, 923, 925, 934, 939, 940, 945, 953, + 954 }; #endif @@ -1116,7 +1116,7 @@ yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvalue break; case 65: /* code_props_type */ -#line 562 "src/parse-gram.y" /* yacc.c:684 */ +#line 564 "src/parse-gram.y" /* yacc.c:684 */ { fprintf (yyo, "%s", code_props_type_string (((*yyvaluep).code_type))); } #line 1122 "src/parse-gram.c" /* yacc.c:684 */ break; @@ -1140,7 +1140,7 @@ yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvalue break; case 89: /* value */ -#line 896 "src/parse-gram.y" /* yacc.c:684 */ +#line 898 "src/parse-gram.y" /* yacc.c:684 */ { switch (((*yyvaluep).value).kind) { @@ -2231,90 +2231,91 @@ yyreduce: case 16: #line 398 "src/parse-gram.y" /* yacc.c:1648 */ { - code_piece_append(""); + /* should be BracedCode, but too hard to put PYACC_Text inside braces */ + code_piece_append(""); muscle_code_grow ("initial_action", translate_code ((yyvsp[0].code), (yylsp[0]), false), (yylsp[0])); code_scanner_last_string_free (); - code_piece_append(""); + code_piece_append(""); code_piece_pack(); free(gram_piece[gram_piece2 + 2]); gram_piece[gram_piece2 + 2] = strdup(code_piece[code_piece0 - 1]); insert_after(1, ""); insert_before(0, ""); } -#line 2234 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2235 "src/parse-gram.c" /* yacc.c:1648 */ break; case 17: -#line 409 "src/parse-gram.y" /* yacc.c:1648 */ +#line 410 "src/parse-gram.y" /* yacc.c:1648 */ { language_argmatch ((yyvsp[0].code), grammar_prio, (yylsp[-1])); /*}*/ insert_after(1, ""); insert_before(0, ""); } -#line 2243 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2244 "src/parse-gram.c" /* yacc.c:1648 */ break; case 18: -#line 413 "src/parse-gram.y" /* yacc.c:1648 */ +#line 414 "src/parse-gram.y" /* yacc.c:1648 */ { spec_name_prefix = (yyvsp[0].code); /*}*/ insert_after(1, ""); insert_before(0, ""); } -#line 2252 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2253 "src/parse-gram.c" /* yacc.c:1648 */ break; case 19: -#line 417 "src/parse-gram.y" /* yacc.c:1648 */ +#line 418 "src/parse-gram.y" /* yacc.c:1648 */ { no_lines_flag = true; /*}*/ insert_after(0, ""); insert_before(0, ""); } -#line 2261 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2262 "src/parse-gram.c" /* yacc.c:1648 */ break; case 20: -#line 421 "src/parse-gram.y" /* yacc.c:1648 */ +#line 422 "src/parse-gram.y" /* yacc.c:1648 */ { nondeterministic_parser = true; /*}*/ insert_after(0, ""); insert_before(0, ""); } -#line 2270 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2271 "src/parse-gram.c" /* yacc.c:1648 */ break; case 21: -#line 425 "src/parse-gram.y" /* yacc.c:1648 */ +#line 426 "src/parse-gram.y" /* yacc.c:1648 */ { spec_outfile = (yyvsp[0].code); /*}*/ insert_after(1, ""); insert_before(0, ""); } -#line 2279 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2280 "src/parse-gram.c" /* yacc.c:1648 */ break; case 22: -#line 429 "src/parse-gram.y" /* yacc.c:1648 */ +#line 430 "src/parse-gram.y" /* yacc.c:1648 */ { current_param = (yyvsp[0].param); } -#line 2285 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2286 "src/parse-gram.c" /* yacc.c:1648 */ break; case 23: -#line 429 "src/parse-gram.y" /* yacc.c:1648 */ +#line 430 "src/parse-gram.y" /* yacc.c:1648 */ { current_param = param_none; /*}*/ insert_after(2, ""); insert_before(0, ""); } -#line 2294 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2295 "src/parse-gram.c" /* yacc.c:1648 */ break; case 24: -#line 433 "src/parse-gram.y" /* yacc.c:1648 */ +#line 434 "src/parse-gram.y" /* yacc.c:1648 */ { version_check (&(yylsp[0]), (yyvsp[0].code)); /*}*/ insert_after(1, ""); insert_before(0, ""); } -#line 2303 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2304 "src/parse-gram.c" /* yacc.c:1648 */ break; case 25: -#line 438 "src/parse-gram.y" /* yacc.c:1648 */ +#line 439 "src/parse-gram.y" /* yacc.c:1648 */ { char const *skeleton_user = (yyvsp[0].code); if (strchr (skeleton_user, '/')) @@ -2340,50 +2341,50 @@ yyreduce: insert_after(1, ""); insert_before(0, ""); } -#line 2333 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2334 "src/parse-gram.c" /* yacc.c:1648 */ break; case 26: -#line 463 "src/parse-gram.y" /* yacc.c:1648 */ +#line 464 "src/parse-gram.y" /* yacc.c:1648 */ { token_table_flag = true; /*}*/ insert_after(0, ""); insert_before(0, ""); } -#line 2342 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2343 "src/parse-gram.c" /* yacc.c:1648 */ break; case 27: -#line 467 "src/parse-gram.y" /* yacc.c:1648 */ +#line 468 "src/parse-gram.y" /* yacc.c:1648 */ { report_flag |= report_states; /*}*/ insert_after(0, ""); insert_before(0, ""); } -#line 2351 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2352 "src/parse-gram.c" /* yacc.c:1648 */ break; case 28: -#line 471 "src/parse-gram.y" /* yacc.c:1648 */ +#line 472 "src/parse-gram.y" /* yacc.c:1648 */ { yacc_flag = true; /*}*/ insert_after(0, ""); insert_before(0, ""); } -#line 2360 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2361 "src/parse-gram.c" /* yacc.c:1648 */ break; case 30: -#line 479 "src/parse-gram.y" /* yacc.c:1648 */ +#line 480 "src/parse-gram.y" /* yacc.c:1648 */ { add_param (current_param, (yyvsp[0].code), (yylsp[0])); } -#line 2366 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2367 "src/parse-gram.c" /* yacc.c:1648 */ break; case 31: -#line 480 "src/parse-gram.y" /* yacc.c:1648 */ +#line 481 "src/parse-gram.y" /* yacc.c:1648 */ { add_param (current_param, (yyvsp[0].code), (yylsp[0])); } -#line 2372 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2373 "src/parse-gram.c" /* yacc.c:1648 */ break; case 34: -#line 492 "src/parse-gram.y" /* yacc.c:1648 */ +#line 493 "src/parse-gram.y" /* yacc.c:1648 */ { grammar_start_symbol_set ((yyvsp[0].symbol), (yylsp[0])); insert_after(1, ""); @@ -2391,17 +2392,18 @@ yyreduce: insert_before(1, ""); insert_before(0, ""); } -#line 2384 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2385 "src/parse-gram.c" /* yacc.c:1648 */ break; case 35: -#line 500 "src/parse-gram.y" /* yacc.c:1648 */ +#line 501 "src/parse-gram.y" /* yacc.c:1648 */ { code_props code; code_props_symbol_action_init (&code, (yyvsp[-1].code), (yylsp[-1])); - code_piece_append(""); + /* should be BracedCode, but too hard to put PYACC_Text inside braces */ + code_piece_append(""); code_props_translate_code (&code); - code_piece_append(""); + code_piece_append(""); code_piece_pack(); free(gram_piece[gram_piece2 + 2]); gram_piece[gram_piece2 + 2] = strdup(code_piece[code_piece0 - 1]); @@ -2415,143 +2417,143 @@ yyreduce: sprintf(gram_piece_temp, "", (yyvsp[-2].code_type)); insert_before(0, gram_piece_temp); } -#line 2408 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2410 "src/parse-gram.c" /* yacc.c:1648 */ break; case 36: -#line 520 "src/parse-gram.y" /* yacc.c:1648 */ +#line 522 "src/parse-gram.y" /* yacc.c:1648 */ { default_prec = true; insert_after(0, ""); insert_before(0, ""); } -#line 2418 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2420 "src/parse-gram.c" /* yacc.c:1648 */ break; case 37: -#line 526 "src/parse-gram.y" /* yacc.c:1648 */ +#line 528 "src/parse-gram.y" /* yacc.c:1648 */ { default_prec = false; insert_after(0, ""); insert_before(0, ""); } -#line 2428 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2430 "src/parse-gram.c" /* yacc.c:1648 */ break; case 38: -#line 532 "src/parse-gram.y" /* yacc.c:1648 */ +#line 534 "src/parse-gram.y" /* yacc.c:1648 */ { /* Do not invoke muscle_percent_code_grow here since it invokes muscle_user_name_list_grow. */ - code_piece_append("{"); + code_piece_append("{"); muscle_code_grow ("percent_code()", translate_code_braceless ((yyvsp[0].code), (yylsp[0])), (yylsp[0])); code_scanner_last_string_free (); - code_piece_append("}"); + code_piece_append("}"); code_piece_pack(); free(gram_piece[gram_piece2 + 2]); gram_piece[gram_piece2 + 2] = strdup(code_piece[code_piece0 - 1]); insert_after(1, ""); insert_before(0, ""); } -#line 2447 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2449 "src/parse-gram.c" /* yacc.c:1648 */ break; case 39: -#line 547 "src/parse-gram.y" /* yacc.c:1648 */ +#line 549 "src/parse-gram.y" /* yacc.c:1648 */ { - code_piece_append("{"); + code_piece_append("{"); muscle_percent_code_grow ((yyvsp[-1].uniqstr), (yylsp[-1]), translate_code_braceless ((yyvsp[0].code), (yylsp[0])), (yylsp[0])); code_scanner_last_string_free (); - code_piece_append("}"); + code_piece_append("}"); code_piece_pack(); free(gram_piece[gram_piece2 + 4]); gram_piece[gram_piece2 + 4] = strdup(code_piece[code_piece0 - 1]); insert_after(2, ""); insert_before(0, ""); } -#line 2463 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2465 "src/parse-gram.c" /* yacc.c:1648 */ break; case 40: -#line 564 "src/parse-gram.y" /* yacc.c:1648 */ +#line 566 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.code_type) = destructor; } -#line 2469 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2471 "src/parse-gram.c" /* yacc.c:1648 */ break; case 41: -#line 565 "src/parse-gram.y" /* yacc.c:1648 */ +#line 567 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.code_type) = printer; } -#line 2475 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2477 "src/parse-gram.c" /* yacc.c:1648 */ break; case 42: -#line 575 "src/parse-gram.y" /* yacc.c:1648 */ +#line 577 "src/parse-gram.y" /* yacc.c:1648 */ { insert_before(0, ""); } -#line 2481 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2483 "src/parse-gram.c" /* yacc.c:1648 */ break; case 43: -#line 576 "src/parse-gram.y" /* yacc.c:1648 */ +#line 578 "src/parse-gram.y" /* yacc.c:1648 */ { muscle_percent_define_insert ("api.value.union.name", (yylsp[0]), muscle_keyword, (yyvsp[0].uniqstr), MUSCLE_PERCENT_DEFINE_GRAMMAR_FILE); } -#line 2489 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2491 "src/parse-gram.c" /* yacc.c:1648 */ break; case 44: -#line 583 "src/parse-gram.y" /* yacc.c:1648 */ +#line 585 "src/parse-gram.y" /* yacc.c:1648 */ { union_seen = true; - code_piece_append("{"); + code_piece_append("{"); muscle_code_grow ("union_members", translate_code_braceless ((yyvsp[0].code), (yylsp[0])), (yylsp[0])); code_scanner_last_string_free (); - code_piece_append("}"); + code_piece_append("}"); code_piece_pack(); free(gram_piece[gram_piece2 + 4]); gram_piece[gram_piece2 + 4] = strdup(code_piece[code_piece0 - 1]); insert_after(2, ""); insert_before(0, ""); } -#line 2506 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2508 "src/parse-gram.c" /* yacc.c:1648 */ break; case 45: -#line 601 "src/parse-gram.y" /* yacc.c:1648 */ +#line 603 "src/parse-gram.y" /* yacc.c:1648 */ { current_class = nterm_sym; } -#line 2512 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2514 "src/parse-gram.c" /* yacc.c:1648 */ break; case 46: -#line 602 "src/parse-gram.y" /* yacc.c:1648 */ +#line 604 "src/parse-gram.y" /* yacc.c:1648 */ { current_class = unknown_sym; current_type = NULL; insert_after(2, ""); insert_before(0, ""); } -#line 2523 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2525 "src/parse-gram.c" /* yacc.c:1648 */ break; case 47: -#line 608 "src/parse-gram.y" /* yacc.c:1648 */ +#line 610 "src/parse-gram.y" /* yacc.c:1648 */ { current_class = token_sym; } -#line 2529 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2531 "src/parse-gram.c" /* yacc.c:1648 */ break; case 48: -#line 609 "src/parse-gram.y" /* yacc.c:1648 */ +#line 611 "src/parse-gram.y" /* yacc.c:1648 */ { current_class = unknown_sym; current_type = NULL; insert_after(2, ""); insert_before(0, ""); } -#line 2540 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2542 "src/parse-gram.c" /* yacc.c:1648 */ break; case 49: -#line 616 "src/parse-gram.y" /* yacc.c:1648 */ +#line 618 "src/parse-gram.y" /* yacc.c:1648 */ { symbol_list *list; tag_seen = true; @@ -2561,11 +2563,11 @@ yyreduce: insert_after(2, ""); insert_before(0, ""); } -#line 2554 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2556 "src/parse-gram.c" /* yacc.c:1648 */ break; case 50: -#line 629 "src/parse-gram.y" /* yacc.c:1648 */ +#line 631 "src/parse-gram.y" /* yacc.c:1648 */ { symbol_list *list; ++current_prec; @@ -2580,70 +2582,70 @@ yyreduce: sprintf(gram_piece_temp, "", ((yyvsp[-2].assoc) & 3) - 1); /* -1 precedence, 0 right, 1 left, 2 nonassoc */ insert_before(0, gram_piece_temp); } -#line 2573 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2575 "src/parse-gram.c" /* yacc.c:1648 */ break; case 51: -#line 646 "src/parse-gram.y" /* yacc.c:1648 */ +#line 648 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.assoc) = left_assoc; } -#line 2579 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2581 "src/parse-gram.c" /* yacc.c:1648 */ break; case 52: -#line 647 "src/parse-gram.y" /* yacc.c:1648 */ +#line 649 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.assoc) = right_assoc; } -#line 2585 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2587 "src/parse-gram.c" /* yacc.c:1648 */ break; case 53: -#line 648 "src/parse-gram.y" /* yacc.c:1648 */ +#line 650 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.assoc) = non_assoc; } -#line 2591 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2593 "src/parse-gram.c" /* yacc.c:1648 */ break; case 54: -#line 649 "src/parse-gram.y" /* yacc.c:1648 */ +#line 651 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.assoc) = precedence_assoc; } -#line 2597 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2599 "src/parse-gram.c" /* yacc.c:1648 */ break; case 55: -#line 653 "src/parse-gram.y" /* yacc.c:1648 */ +#line 655 "src/parse-gram.y" /* yacc.c:1648 */ { current_type = NULL; } -#line 2603 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2605 "src/parse-gram.c" /* yacc.c:1648 */ break; case 56: -#line 654 "src/parse-gram.y" /* yacc.c:1648 */ +#line 656 "src/parse-gram.y" /* yacc.c:1648 */ { current_type = (yyvsp[0].uniqstr); tag_seen = true; } -#line 2609 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2611 "src/parse-gram.c" /* yacc.c:1648 */ break; case 57: -#line 660 "src/parse-gram.y" /* yacc.c:1648 */ +#line 662 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.list) = symbol_list_sym_new ((yyvsp[0].symbol), (yylsp[0])); } -#line 2615 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2617 "src/parse-gram.c" /* yacc.c:1648 */ break; case 58: -#line 662 "src/parse-gram.y" /* yacc.c:1648 */ +#line 664 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.list) = symbol_list_append ((yyvsp[-1].list), symbol_list_sym_new ((yyvsp[0].symbol), (yylsp[0]))); } -#line 2621 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2623 "src/parse-gram.c" /* yacc.c:1648 */ break; case 59: -#line 667 "src/parse-gram.y" /* yacc.c:1648 */ +#line 669 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.symbol) = (yyvsp[0].symbol); symbol_class_set ((yyvsp[0].symbol), token_sym, (yylsp[0]), false); insert_after(0, ""); insert_before(0, ""); } -#line 2632 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2634 "src/parse-gram.c" /* yacc.c:1648 */ break; case 60: -#line 674 "src/parse-gram.y" /* yacc.c:1648 */ +#line 676 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.symbol) = (yyvsp[-1].symbol); symbol_user_token_number_set ((yyvsp[-1].symbol), (yyvsp[0].integer), (yylsp[0])); @@ -2652,88 +2654,88 @@ yyreduce: sprintf(gram_piece_temp, "", (yyvsp[0].integer)); insert_before(0, gram_piece_temp); } -#line 2645 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2647 "src/parse-gram.c" /* yacc.c:1648 */ break; case 61: -#line 687 "src/parse-gram.y" /* yacc.c:1648 */ +#line 689 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.list) = symbol_list_sym_new ((yyvsp[0].symbol), (yylsp[0])); /*}*/ insert_after(0, ""); insert_before(0, ""); } -#line 2654 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2656 "src/parse-gram.c" /* yacc.c:1648 */ break; case 62: -#line 692 "src/parse-gram.y" /* yacc.c:1648 */ +#line 694 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.list) = symbol_list_append ((yyvsp[-1].list), symbol_list_sym_new ((yyvsp[0].symbol), (yylsp[0]))); /*}*/ insert_after(1, ""); insert_before(1, ""); } -#line 2663 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2665 "src/parse-gram.c" /* yacc.c:1648 */ break; case 63: -#line 699 "src/parse-gram.y" /* yacc.c:1648 */ +#line 701 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.list) = (yyvsp[0].list); } -#line 2669 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2671 "src/parse-gram.c" /* yacc.c:1648 */ break; case 64: -#line 700 "src/parse-gram.y" /* yacc.c:1648 */ +#line 702 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.list) = symbol_list_append ((yyvsp[-1].list), (yyvsp[0].list)); } -#line 2675 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2677 "src/parse-gram.c" /* yacc.c:1648 */ break; case 65: -#line 704 "src/parse-gram.y" /* yacc.c:1648 */ +#line 706 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.list) = symbol_list_sym_new ((yyvsp[0].symbol), (yylsp[0])); /*}*/ insert_after(0, ""); insert_before(0, ""); } -#line 2684 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2686 "src/parse-gram.c" /* yacc.c:1648 */ break; case 66: -#line 708 "src/parse-gram.y" /* yacc.c:1648 */ +#line 710 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.list) = symbol_list_type_new ((yyvsp[0].uniqstr), (yylsp[0])); } -#line 2690 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2692 "src/parse-gram.c" /* yacc.c:1648 */ break; case 68: -#line 713 "src/parse-gram.y" /* yacc.c:1648 */ +#line 715 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.uniqstr) = uniqstr_new ("*"); } -#line 2696 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2698 "src/parse-gram.c" /* yacc.c:1648 */ break; case 69: -#line 714 "src/parse-gram.y" /* yacc.c:1648 */ +#line 716 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.uniqstr) = uniqstr_new (""); } -#line 2702 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2704 "src/parse-gram.c" /* yacc.c:1648 */ break; case 70: -#line 720 "src/parse-gram.y" /* yacc.c:1648 */ +#line 722 "src/parse-gram.y" /* yacc.c:1648 */ { current_type = (yyvsp[0].uniqstr); tag_seen = true; } -#line 2711 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2713 "src/parse-gram.c" /* yacc.c:1648 */ break; case 71: -#line 725 "src/parse-gram.y" /* yacc.c:1648 */ +#line 727 "src/parse-gram.y" /* yacc.c:1648 */ { symbol_class_set ((yyvsp[0].symbol), current_class, (yylsp[0]), true); symbol_type_set ((yyvsp[0].symbol), current_type, (yylsp[0])); insert_after(0, ""); insert_before(0, ""); } -#line 2722 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2724 "src/parse-gram.c" /* yacc.c:1648 */ break; case 72: -#line 732 "src/parse-gram.y" /* yacc.c:1648 */ +#line 734 "src/parse-gram.y" /* yacc.c:1648 */ { symbol_class_set ((yyvsp[-1].symbol), current_class, (yylsp[-1]), true); symbol_type_set ((yyvsp[-1].symbol), current_type, (yylsp[-1])); @@ -2742,11 +2744,11 @@ yyreduce: sprintf(gram_piece_temp, "", (yyvsp[0].integer)); insert_before(0, gram_piece_temp); } -#line 2735 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2737 "src/parse-gram.c" /* yacc.c:1648 */ break; case 73: -#line 741 "src/parse-gram.y" /* yacc.c:1648 */ +#line 743 "src/parse-gram.y" /* yacc.c:1648 */ { symbol_class_set ((yyvsp[-1].symbol), current_class, (yylsp[-1]), true); symbol_type_set ((yyvsp[-1].symbol), current_type, (yylsp[-1])); @@ -2754,11 +2756,11 @@ yyreduce: insert_after(1, ""); insert_before(0, ""); } -#line 2747 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2749 "src/parse-gram.c" /* yacc.c:1648 */ break; case 74: -#line 749 "src/parse-gram.y" /* yacc.c:1648 */ +#line 751 "src/parse-gram.y" /* yacc.c:1648 */ { symbol_class_set ((yyvsp[-2].symbol), current_class, (yylsp[-2]), true); symbol_type_set ((yyvsp[-2].symbol), current_type, (yylsp[-2])); @@ -2768,25 +2770,25 @@ yyreduce: sprintf(gram_piece_temp, "", (yyvsp[-1].integer)); insert_before(0, gram_piece_temp); } -#line 2761 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2763 "src/parse-gram.c" /* yacc.c:1648 */ break; case 81: -#line 782 "src/parse-gram.y" /* yacc.c:1648 */ +#line 784 "src/parse-gram.y" /* yacc.c:1648 */ { yyerrok; } -#line 2769 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2771 "src/parse-gram.c" /* yacc.c:1648 */ break; case 82: -#line 788 "src/parse-gram.y" /* yacc.c:1648 */ +#line 790 "src/parse-gram.y" /* yacc.c:1648 */ { current_lhs ((yyvsp[-1].symbol), (yylsp[-1]), (yyvsp[0].named_ref)); } -#line 2775 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2777 "src/parse-gram.c" /* yacc.c:1648 */ break; case 83: -#line 789 "src/parse-gram.y" /* yacc.c:1648 */ +#line 791 "src/parse-gram.y" /* yacc.c:1648 */ { /* Free the current lhs. */ current_lhs (0, (yylsp[-3]), 0); @@ -2796,29 +2798,29 @@ yyreduce: insert_before(0, ""); insert_before(0, ""); } -#line 2789 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2791 "src/parse-gram.c" /* yacc.c:1648 */ break; case 84: -#line 801 "src/parse-gram.y" /* yacc.c:1648 */ +#line 803 "src/parse-gram.y" /* yacc.c:1648 */ { grammar_current_rule_end ((yylsp[0])); /*}*/ insert_after(0, ""); insert_before(0, ""); } -#line 2798 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2800 "src/parse-gram.c" /* yacc.c:1648 */ break; case 85: -#line 805 "src/parse-gram.y" /* yacc.c:1648 */ +#line 807 "src/parse-gram.y" /* yacc.c:1648 */ { grammar_current_rule_end ((yylsp[0])); /*}*/ insert_after(2, ""); insert_before(2, ""); } -#line 2807 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2809 "src/parse-gram.c" /* yacc.c:1648 */ break; case 87: -#line 815 "src/parse-gram.y" /* yacc.c:1648 */ +#line 817 "src/parse-gram.y" /* yacc.c:1648 */ { grammar_current_rule_begin (current_lhs_symbol, current_lhs_location, current_lhs_named_ref); /*}*/ /* in this case, want empty rule associated with stuff on the right of us */ @@ -2830,152 +2832,152 @@ yyreduce: gram_piece[gram_piece2] = gram_piece[gram_piece2 - 1]; /* empty */ gram_piece[gram_piece2 - 1] = temp; } -#line 2823 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2825 "src/parse-gram.c" /* yacc.c:1648 */ break; case 88: -#line 827 "src/parse-gram.y" /* yacc.c:1648 */ +#line 829 "src/parse-gram.y" /* yacc.c:1648 */ { grammar_current_rule_symbol_append ((yyvsp[-1].symbol), (yylsp[-1]), (yyvsp[0].named_ref)); /*}*/ insert_after(2, ""); insert_after(1, ""); insert_before(1, ""); } -#line 2833 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2835 "src/parse-gram.c" /* yacc.c:1648 */ break; case 89: -#line 833 "src/parse-gram.y" /* yacc.c:1648 */ - { code_piece_append(""); grammar_current_rule_action_append ((yyvsp[-1].code), (yylsp[-1]), (yyvsp[0].named_ref), false); /*}*/ - code_piece_append(""); +#line 835 "src/parse-gram.y" /* yacc.c:1648 */ + { /* should be BracedCode, but too hard to put PYACC_Text inside braces */ code_piece_append(""); grammar_current_rule_action_append ((yyvsp[-1].code), (yylsp[-1]), (yyvsp[0].named_ref), false); /*}*/ + code_piece_append(""); code_piece_pack(); free(gram_piece[gram_piece2 + 2]); gram_piece[gram_piece2 + 2] = strdup(code_piece[code_piece0 - 1]); insert_after(2, ""); insert_before(1, ""); } -#line 2846 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2848 "src/parse-gram.c" /* yacc.c:1648 */ break; case 90: -#line 842 "src/parse-gram.y" /* yacc.c:1648 */ +#line 844 "src/parse-gram.y" /* yacc.c:1648 */ { grammar_current_rule_action_append ((yyvsp[0].code), (yylsp[0]), NULL, true); } -#line 2852 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2854 "src/parse-gram.c" /* yacc.c:1648 */ break; case 91: -#line 844 "src/parse-gram.y" /* yacc.c:1648 */ +#line 846 "src/parse-gram.y" /* yacc.c:1648 */ { grammar_current_rule_empty_set ((yylsp[0])); /*}*/ insert_after(1, ""); insert_before(1, ""); } -#line 2861 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2863 "src/parse-gram.c" /* yacc.c:1648 */ break; case 92: -#line 849 "src/parse-gram.y" /* yacc.c:1648 */ +#line 851 "src/parse-gram.y" /* yacc.c:1648 */ { grammar_current_rule_prec_set ((yyvsp[0].symbol), (yylsp[0])); /*}*/ insert_after(2, ""); insert_after(2, ""); insert_before(2, ""); insert_before(1, ""); } -#line 2872 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2874 "src/parse-gram.c" /* yacc.c:1648 */ break; case 93: -#line 856 "src/parse-gram.y" /* yacc.c:1648 */ +#line 858 "src/parse-gram.y" /* yacc.c:1648 */ { grammar_current_rule_dprec_set ((yyvsp[0].integer), (yylsp[0])); /*}*/ insert_after(2, ""); sprintf(gram_piece_temp, "", (yyvsp[0].integer)); insert_before(1, gram_piece_temp); } -#line 2882 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2884 "src/parse-gram.c" /* yacc.c:1648 */ break; case 94: -#line 862 "src/parse-gram.y" /* yacc.c:1648 */ +#line 864 "src/parse-gram.y" /* yacc.c:1648 */ { grammar_current_rule_merge_set ((yyvsp[0].uniqstr), (yylsp[0])); /*}*/ insert_after(2, ""); insert_before(1, ""); } -#line 2891 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2893 "src/parse-gram.c" /* yacc.c:1648 */ break; case 95: -#line 869 "src/parse-gram.y" /* yacc.c:1648 */ +#line 871 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.named_ref) = 0; } -#line 2897 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2899 "src/parse-gram.c" /* yacc.c:1648 */ break; case 96: -#line 870 "src/parse-gram.y" /* yacc.c:1648 */ +#line 872 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.named_ref) = named_ref_new ((yyvsp[0].uniqstr), (yylsp[0])); } -#line 2903 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2905 "src/parse-gram.c" /* yacc.c:1648 */ break; case 98: -#line 881 "src/parse-gram.y" /* yacc.c:1648 */ +#line 883 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.uniqstr) = uniqstr_new ((yyvsp[0].code)); } -#line 2909 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2911 "src/parse-gram.c" /* yacc.c:1648 */ break; case 99: -#line 906 "src/parse-gram.y" /* yacc.c:1648 */ +#line 908 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.value).kind = muscle_keyword; (yyval.value).chars = ""; } -#line 2915 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2917 "src/parse-gram.c" /* yacc.c:1648 */ break; case 100: -#line 907 "src/parse-gram.y" /* yacc.c:1648 */ +#line 909 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.value).kind = muscle_keyword; (yyval.value).chars = (yyvsp[0].uniqstr); } -#line 2921 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2923 "src/parse-gram.c" /* yacc.c:1648 */ break; case 101: -#line 908 "src/parse-gram.y" /* yacc.c:1648 */ +#line 910 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.value).kind = muscle_string; (yyval.value).chars = (yyvsp[0].code); } -#line 2927 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2929 "src/parse-gram.c" /* yacc.c:1648 */ break; case 102: -#line 909 "src/parse-gram.y" /* yacc.c:1648 */ +#line 911 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.value).kind = muscle_code; (yyval.value).chars = strip_braces ((yyvsp[0].code)); } -#line 2933 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2935 "src/parse-gram.c" /* yacc.c:1648 */ break; case 103: -#line 922 "src/parse-gram.y" /* yacc.c:1648 */ +#line 924 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.symbol) = symbol_from_uniqstr ((yyvsp[0].uniqstr), (yylsp[0])); } -#line 2939 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2941 "src/parse-gram.c" /* yacc.c:1648 */ break; case 104: -#line 924 "src/parse-gram.y" /* yacc.c:1648 */ +#line 926 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.symbol) = symbol_get (char_name ((yyvsp[0].character)), (yylsp[0])); symbol_class_set ((yyval.symbol), token_sym, (yylsp[0]), false); symbol_user_token_number_set ((yyval.symbol), (yyvsp[0].character), (yylsp[0])); } -#line 2949 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2951 "src/parse-gram.c" /* yacc.c:1648 */ break; case 105: -#line 932 "src/parse-gram.y" /* yacc.c:1648 */ +#line 934 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.symbol) = symbol_from_uniqstr ((yyvsp[0].uniqstr), (yylsp[0])); } -#line 2955 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2957 "src/parse-gram.c" /* yacc.c:1648 */ break; case 108: -#line 944 "src/parse-gram.y" /* yacc.c:1648 */ +#line 946 "src/parse-gram.y" /* yacc.c:1648 */ { (yyval.symbol) = symbol_get (quotearg_style (c_quoting_style, (yyvsp[0].code)), (yylsp[0])); symbol_class_set ((yyval.symbol), token_sym, (yylsp[0]), false); } -#line 2964 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2966 "src/parse-gram.c" /* yacc.c:1648 */ break; case 110: -#line 953 "src/parse-gram.y" /* yacc.c:1648 */ +#line 955 "src/parse-gram.y" /* yacc.c:1648 */ { #if 0 int gram_piece0_save = gram_piece0, gram_piece1_save = gram_piece1; @@ -2996,11 +2998,11 @@ yyreduce: insert_after(1, ""); insert_after(0, ""); } -#line 2989 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2991 "src/parse-gram.c" /* yacc.c:1648 */ break; -#line 2993 "src/parse-gram.c" /* yacc.c:1648 */ +#line 2995 "src/parse-gram.c" /* yacc.c:1648 */ default: break; } if (yychar_backup != yychar) @@ -3263,7 +3265,7 @@ yyreturn: #endif return yyresult; } -#line 975 "src/parse-gram.y" /* yacc.c:1907 */ +#line 977 "src/parse-gram.y" /* yacc.c:1907 */ /* Return the location of the left-hand side of a rule whose diff --git a/src/parse-gram.h b/src/parse-gram.h index 4521396..537cbe7 100644 --- a/src/parse-gram.h +++ b/src/parse-gram.h @@ -61,7 +61,7 @@ extern int gram_debug; param_parse = 1 << 1, param_both = param_lex | param_parse } param_type; -#line 885 "src/parse-gram.y" /* yacc.c:1910 */ +#line 887 "src/parse-gram.y" /* yacc.c:1910 */ #include "muscle-tab.h" #line 68 "src/parse-gram.h" /* yacc.c:1910 */ @@ -153,9 +153,9 @@ symbol_list *list; named_ref *named_ref; #line 266 "src/parse-gram.y" /* yacc.c:1910 */ param_type param; -#line 561 "src/parse-gram.y" /* yacc.c:1910 */ +#line 563 "src/parse-gram.y" /* yacc.c:1910 */ code_props_type code_type; -#line 887 "src/parse-gram.y" /* yacc.c:1910 */ +#line 889 "src/parse-gram.y" /* yacc.c:1910 */ struct { diff --git a/src/parse-gram.y b/src/parse-gram.y index 54347ea..f8f2ef8 100644 --- a/src/parse-gram.y +++ b/src/parse-gram.y @@ -396,10 +396,11 @@ prologue_declaration: } | "%initial-action" "{...}" { - code_piece_append(""); + /* should be BracedCode, but too hard to put PYACC_Text inside braces */ + code_piece_append(""); muscle_code_grow ("initial_action", translate_code ($2, @2, false), @2); code_scanner_last_string_free (); - code_piece_append(""); + code_piece_append(""); code_piece_pack(); free(gram_piece[gram_piece2 + 2]); gram_piece[gram_piece2 + 2] = strdup(code_piece[code_piece0 - 1]); @@ -500,9 +501,10 @@ grammar_declaration: { code_props code; code_props_symbol_action_init (&code, $2, @2); - code_piece_append(""); + /* should be BracedCode, but too hard to put PYACC_Text inside braces */ + code_piece_append(""); code_props_translate_code (&code); - code_piece_append(""); + code_piece_append(""); code_piece_pack(); free(gram_piece[gram_piece2 + 2]); gram_piece[gram_piece2 + 2] = strdup(code_piece[code_piece0 - 1]); @@ -532,11 +534,11 @@ grammar_declaration: { /* Do not invoke muscle_percent_code_grow here since it invokes muscle_user_name_list_grow. */ - code_piece_append("{"); + code_piece_append("{"); muscle_code_grow ("percent_code()", translate_code_braceless ($2, @2), @2); code_scanner_last_string_free (); - code_piece_append("}"); + code_piece_append("}"); code_piece_pack(); free(gram_piece[gram_piece2 + 2]); gram_piece[gram_piece2 + 2] = strdup(code_piece[code_piece0 - 1]); @@ -545,10 +547,10 @@ grammar_declaration: } | "%code" ID "{...}" { - code_piece_append("{"); + code_piece_append("{"); muscle_percent_code_grow ($2, @2, translate_code_braceless ($3, @3), @3); code_scanner_last_string_free (); - code_piece_append("}"); + code_piece_append("}"); code_piece_pack(); free(gram_piece[gram_piece2 + 4]); gram_piece[gram_piece2 + 4] = strdup(code_piece[code_piece0 - 1]); @@ -582,10 +584,10 @@ grammar_declaration: "%union" union_name "{...}" { union_seen = true; - code_piece_append("{"); + code_piece_append("{"); muscle_code_grow ("union_members", translate_code_braceless ($3, @3), @3); code_scanner_last_string_free (); - code_piece_append("}"); + code_piece_append("}"); code_piece_pack(); free(gram_piece[gram_piece2 + 4]); gram_piece[gram_piece2 + 4] = strdup(code_piece[code_piece0 - 1]); @@ -830,8 +832,8 @@ rhs: insert_before(1, ""); } | rhs "{...}" named_ref.opt - { code_piece_append(""); grammar_current_rule_action_append ($2, @2, $3, false); /*}*/ - code_piece_append(""); + { /* should be BracedCode, but too hard to put PYACC_Text inside braces */ code_piece_append(""); grammar_current_rule_action_append ($2, @2, $3, false); /*}*/ + code_piece_append(""); code_piece_pack(); free(gram_piece[gram_piece2 + 2]); gram_piece[gram_piece2 + 2] = strdup(code_piece[code_piece0 - 1]); diff --git a/src/scan-gram.c b/src/scan-gram.c index 9a68bf5..ea812dc 100644 --- a/src/scan-gram.c +++ b/src/scan-gram.c @@ -999,13 +999,13 @@ static yyconst flex_int16_t yy_rule_linenum[130] = 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 289, 293, 294, 295, 297, 309, 323, 340, 345, - 348, 351, 354, 364, 375, 376, 377, 387, 401, 408, - 428, 438, 453, 463, 490, 503, 519, 534, 551, 552, - 563, 574, 575, 587, 603, 613, 640, 652, 674, 675, + 348, 351, 354, 366, 377, 378, 379, 389, 403, 410, + 430, 440, 455, 465, 492, 505, 521, 536, 553, 554, + 565, 576, 577, 589, 605, 615, 642, 654, 676, 677, - 686, 701, 717, 718, 719, 720, 721, 722, 723, 726, - 728, 742, 760, 765, 766, 772, 773, 784, 790, 796, - 802, 818, 819, 823, 830, 854, 882, 928, 929 + 688, 703, 719, 720, 721, 722, 723, 724, 725, 728, + 730, 744, 762, 767, 768, 774, 775, 786, 792, 798, + 804, 820, 821, 825, 832, 857, 886, 932, 933 } ; /* The intent behind this definition is that it'll catch @@ -2020,19 +2020,21 @@ YY_RULE_SETUP BEGIN SC_BRACED_CODE; gram_piece_pack(); gram_piece_append(""); + gram_piece_flush(strlen(gram_text)); + gram_piece_append(""); } YY_BREAK /* Semantic predicate. */ case 74: /* rule 74 can match eol */ YY_RULE_SETUP -#line 364 "src/scan-gram.l" +#line 366 "src/scan-gram.l" { nesting = 0; code_start = loc->start; gram_piece_pack(); gram_piece_append(""); - gram_piece_flush(strlen(gram_text) - 1); + gram_piece_flush(strlen(gram_text)); gram_piece_append(""); BEGIN SC_PREDICATE; } @@ -2040,17 +2042,17 @@ YY_RULE_SETUP /* A type. */ case 75: YY_RULE_SETUP -#line 375 "src/scan-gram.l" +#line 377 "src/scan-gram.l" gram_piece_pack(); gram_piece_append("<*>"); return ~TAG_ANY; /*return TAG_ANY;*/ YY_BREAK case 76: YY_RULE_SETUP -#line 376 "src/scan-gram.l" +#line 378 "src/scan-gram.l" gram_piece_pack(); gram_piece_append("<>"); return ~TAG_NONE; /*return TAG_NONE;*/ YY_BREAK case 77: YY_RULE_SETUP -#line 377 "src/scan-gram.l" +#line 379 "src/scan-gram.l" { nesting = 0; token_start = loc->start; @@ -2063,7 +2065,7 @@ YY_RULE_SETUP YY_BREAK case 78: YY_RULE_SETUP -#line 387 "src/scan-gram.l" +#line 389 "src/scan-gram.l" { static int percent_percent_count; if (++percent_percent_count == 2) @@ -2080,7 +2082,7 @@ YY_RULE_SETUP YY_BREAK case 79: YY_RULE_SETUP -#line 401 "src/scan-gram.l" +#line 403 "src/scan-gram.l" { bracketed_id_str = NULL; bracketed_id_start = loc->start; @@ -2090,7 +2092,7 @@ YY_RULE_SETUP YY_BREAK case 80: YY_RULE_SETUP -#line 408 "src/scan-gram.l" +#line 410 "src/scan-gram.l" { complain (loc, complaint, "%s: %s", ngettext ("invalid character", "invalid characters", gram_leng), @@ -2098,7 +2100,7 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(INITIAL): -#line 414 "src/scan-gram.l" +#line 416 "src/scan-gram.l" { loc->start = loc->end = scanner_cursor; yyterminate (); @@ -2113,7 +2115,7 @@ case YY_STATE_EOF(INITIAL): case 81: YY_RULE_SETUP -#line 428 "src/scan-gram.l" +#line 430 "src/scan-gram.l" complain (loc, complaint, _("invalid null character")); YY_BREAK @@ -2124,7 +2126,7 @@ complain (loc, complaint, _("invalid null character")); case 82: YY_RULE_SETUP -#line 438 "src/scan-gram.l" +#line 440 "src/scan-gram.l" { if (bracketed_id_str) { @@ -2143,7 +2145,7 @@ YY_RULE_SETUP YY_BREAK case 83: YY_RULE_SETUP -#line 453 "src/scan-gram.l" +#line 455 "src/scan-gram.l" { BEGIN (bracketed_id_str ? SC_RETURN_BRACKETED_ID : INITIAL); *loc = id_loc; @@ -2157,7 +2159,7 @@ YY_RULE_SETUP YY_BREAK case 84: YY_RULE_SETUP -#line 463 "src/scan-gram.l" +#line 465 "src/scan-gram.l" { ROLLBACK_CURRENT_TOKEN; BEGIN (bracketed_id_str ? SC_RETURN_BRACKETED_ID : INITIAL); @@ -2170,7 +2172,7 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(SC_AFTER_IDENTIFIER): -#line 473 "src/scan-gram.l" +#line 475 "src/scan-gram.l" { BEGIN (bracketed_id_str ? SC_RETURN_BRACKETED_ID : INITIAL); *loc = id_loc; @@ -2189,7 +2191,7 @@ case YY_STATE_EOF(SC_AFTER_IDENTIFIER): case 85: YY_RULE_SETUP -#line 490 "src/scan-gram.l" +#line 492 "src/scan-gram.l" { if (bracketed_id_str) { @@ -2206,7 +2208,7 @@ YY_RULE_SETUP YY_BREAK case 86: YY_RULE_SETUP -#line 503 "src/scan-gram.l" +#line 505 "src/scan-gram.l" { BEGIN bracketed_id_context_state; if (bracketed_id_str) @@ -2225,7 +2227,7 @@ YY_RULE_SETUP YY_BREAK case 87: YY_RULE_SETUP -#line 519 "src/scan-gram.l" +#line 521 "src/scan-gram.l" { complain (loc, complaint, "%s: %s", ngettext ("invalid character in bracketed name", @@ -2234,7 +2236,7 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(SC_BRACKETED_ID): -#line 526 "src/scan-gram.l" +#line 528 "src/scan-gram.l" { BEGIN bracketed_id_context_state; unexpected_eof (bracketed_id_start, "]"); @@ -2245,7 +2247,7 @@ case YY_STATE_EOF(SC_BRACKETED_ID): case 88: YY_RULE_SETUP -#line 534 "src/scan-gram.l" +#line 536 "src/scan-gram.l" { ROLLBACK_CURRENT_TOKEN; val->uniqstr = bracketed_id_str; @@ -2263,17 +2265,17 @@ YY_RULE_SETUP case 89: YY_RULE_SETUP -#line 551 "src/scan-gram.l" +#line 553 "src/scan-gram.l" BEGIN context_state; YY_BREAK case 90: /* rule 90 can match eol */ YY_RULE_SETUP -#line 552 "src/scan-gram.l" +#line 554 "src/scan-gram.l" continue; YY_BREAK case YY_STATE_EOF(SC_YACC_COMMENT): -#line 553 "src/scan-gram.l" +#line 555 "src/scan-gram.l" unexpected_eof (token_start, "*/"); BEGIN context_state; YY_BREAK @@ -2285,11 +2287,11 @@ unexpected_eof (token_start, "*/"); BEGIN context_state; case 91: /* rule 91 can match eol */ YY_RULE_SETUP -#line 563 "src/scan-gram.l" +#line 565 "src/scan-gram.l" STRING_GROW; BEGIN context_state; YY_BREAK case YY_STATE_EOF(SC_COMMENT): -#line 564 "src/scan-gram.l" +#line 566 "src/scan-gram.l" unexpected_eof (token_start, "*/"); BEGIN context_state; YY_BREAK @@ -2301,17 +2303,17 @@ unexpected_eof (token_start, "*/"); BEGIN context_state; case 92: /* rule 92 can match eol */ YY_RULE_SETUP -#line 574 "src/scan-gram.l" +#line 576 "src/scan-gram.l" STRING_GROW; BEGIN context_state; YY_BREAK case 93: /* rule 93 can match eol */ YY_RULE_SETUP -#line 575 "src/scan-gram.l" +#line 577 "src/scan-gram.l" STRING_GROW; YY_BREAK case YY_STATE_EOF(SC_LINE_COMMENT): -#line 576 "src/scan-gram.l" +#line 578 "src/scan-gram.l" BEGIN context_state; YY_BREAK @@ -2323,7 +2325,7 @@ BEGIN context_state; case 94: YY_RULE_SETUP -#line 587 "src/scan-gram.l" +#line 589 "src/scan-gram.l" { STRING_FINISH; loc->start = token_start; @@ -2341,13 +2343,13 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(SC_ESCAPED_STRING): -#line 602 "src/scan-gram.l" +#line 604 "src/scan-gram.l" unexpected_eof (token_start, "\""); YY_BREAK case 95: /* rule 95 can match eol */ YY_RULE_SETUP -#line 603 "src/scan-gram.l" +#line 605 "src/scan-gram.l" unexpected_newline (token_start, "\""); YY_BREAK @@ -2359,7 +2361,7 @@ unexpected_newline (token_start, "\""); case 96: YY_RULE_SETUP -#line 613 "src/scan-gram.l" +#line 615 "src/scan-gram.l" { STRING_FINISH; loc->start = token_start; @@ -2391,11 +2393,11 @@ YY_RULE_SETUP case 97: /* rule 97 can match eol */ YY_RULE_SETUP -#line 640 "src/scan-gram.l" +#line 642 "src/scan-gram.l" unexpected_newline (token_start, "'"); YY_BREAK case YY_STATE_EOF(SC_ESCAPED_CHARACTER): -#line 641 "src/scan-gram.l" +#line 643 "src/scan-gram.l" unexpected_eof (token_start, "'"); YY_BREAK @@ -2406,7 +2408,7 @@ unexpected_eof (token_start, "'"); case 98: YY_RULE_SETUP -#line 652 "src/scan-gram.l" +#line 654 "src/scan-gram.l" { --nesting; if (nesting < 0) @@ -2432,16 +2434,16 @@ YY_RULE_SETUP case 99: /* rule 99 can match eol */ YY_RULE_SETUP -#line 674 "src/scan-gram.l" +#line 676 "src/scan-gram.l" STRING_GROW; YY_BREAK case 100: YY_RULE_SETUP -#line 675 "src/scan-gram.l" +#line 677 "src/scan-gram.l" STRING_GROW; nesting += gram_leng; YY_BREAK case YY_STATE_EOF(SC_TAG): -#line 677 "src/scan-gram.l" +#line 679 "src/scan-gram.l" unexpected_eof (token_start, ">"); YY_BREAK @@ -2452,7 +2454,7 @@ unexpected_eof (token_start, ">"); case 101: YY_RULE_SETUP -#line 686 "src/scan-gram.l" +#line 688 "src/scan-gram.l" { unsigned long int c = strtoul (gram_text + 1, NULL, 8); if (!c || UCHAR_MAX < c) @@ -2470,7 +2472,7 @@ YY_RULE_SETUP YY_BREAK case 102: YY_RULE_SETUP -#line 701 "src/scan-gram.l" +#line 703 "src/scan-gram.l" { verify (UCHAR_MAX < ULONG_MAX); unsigned long int c = strtoul (gram_text + 2, NULL, 16); @@ -2489,48 +2491,48 @@ YY_RULE_SETUP YY_BREAK case 103: YY_RULE_SETUP -#line 717 "src/scan-gram.l" +#line 719 "src/scan-gram.l" obstack_1grow (&obstack_for_string, '\a'); gram_piece_append(""); gram_piece_flush(strlen(gram_text)); gram_piece_append(""); YY_BREAK case 104: YY_RULE_SETUP -#line 718 "src/scan-gram.l" +#line 720 "src/scan-gram.l" obstack_1grow (&obstack_for_string, '\b'); gram_piece_append(""); gram_piece_flush(strlen(gram_text)); gram_piece_append(""); YY_BREAK case 105: YY_RULE_SETUP -#line 719 "src/scan-gram.l" +#line 721 "src/scan-gram.l" obstack_1grow (&obstack_for_string, '\f'); gram_piece_append(""); gram_piece_flush(strlen(gram_text)); gram_piece_append(""); YY_BREAK case 106: YY_RULE_SETUP -#line 720 "src/scan-gram.l" +#line 722 "src/scan-gram.l" obstack_1grow (&obstack_for_string, '\n'); gram_piece_append(""); gram_piece_flush(strlen(gram_text)); gram_piece_append(""); YY_BREAK case 107: YY_RULE_SETUP -#line 721 "src/scan-gram.l" +#line 723 "src/scan-gram.l" obstack_1grow (&obstack_for_string, '\r'); gram_piece_append(""); gram_piece_flush(strlen(gram_text)); gram_piece_append(""); YY_BREAK case 108: YY_RULE_SETUP -#line 722 "src/scan-gram.l" +#line 724 "src/scan-gram.l" obstack_1grow (&obstack_for_string, '\t'); gram_piece_append(""); gram_piece_flush(strlen(gram_text)); gram_piece_append(""); YY_BREAK case 109: YY_RULE_SETUP -#line 723 "src/scan-gram.l" +#line 725 "src/scan-gram.l" obstack_1grow (&obstack_for_string, '\v'); gram_piece_append(""); gram_piece_flush(strlen(gram_text)); gram_piece_append(""); YY_BREAK /* \\[\"\'?\\] would be shorter, but it confuses xgettext. */ case 110: YY_RULE_SETUP -#line 726 "src/scan-gram.l" +#line 728 "src/scan-gram.l" obstack_1grow (&obstack_for_string, gram_text[1]); sprintf(gram_piece_temp, "", gram_text[1]); gram_piece_append(gram_piece_temp); gram_piece_flush(strlen(gram_text)); gram_piece_append(""); YY_BREAK case 111: YY_RULE_SETUP -#line 728 "src/scan-gram.l" +#line 730 "src/scan-gram.l" { int c = convert_ucn_to_byte (gram_text); if (c <= 0) @@ -2549,7 +2551,7 @@ YY_RULE_SETUP case 112: /* rule 112 can match eol */ YY_RULE_SETUP -#line 742 "src/scan-gram.l" +#line 744 "src/scan-gram.l" { char const *p = gram_text + 1; /* Quote only if escaping won't make the character visible. */ @@ -2570,7 +2572,7 @@ YY_RULE_SETUP case 113: /* rule 113 can match eol */ YY_RULE_SETUP -#line 760 "src/scan-gram.l" +#line 762 "src/scan-gram.l" STRING_GROW; YY_BREAK @@ -2578,17 +2580,17 @@ STRING_GROW; case 114: YY_RULE_SETUP -#line 765 "src/scan-gram.l" +#line 767 "src/scan-gram.l" STRING_GROW; BEGIN context_state; YY_BREAK case 115: /* rule 115 can match eol */ YY_RULE_SETUP -#line 766 "src/scan-gram.l" +#line 768 "src/scan-gram.l" unexpected_newline (token_start, "'"); YY_BREAK case YY_STATE_EOF(SC_CHARACTER): -#line 767 "src/scan-gram.l" +#line 769 "src/scan-gram.l" unexpected_eof (token_start, "'"); YY_BREAK @@ -2596,17 +2598,17 @@ unexpected_eof (token_start, "'"); case 116: YY_RULE_SETUP -#line 772 "src/scan-gram.l" +#line 774 "src/scan-gram.l" STRING_GROW; BEGIN context_state; YY_BREAK case 117: /* rule 117 can match eol */ YY_RULE_SETUP -#line 773 "src/scan-gram.l" +#line 775 "src/scan-gram.l" unexpected_newline (token_start, "\""); YY_BREAK case YY_STATE_EOF(SC_STRING): -#line 774 "src/scan-gram.l" +#line 776 "src/scan-gram.l" unexpected_eof (token_start, "\""); YY_BREAK @@ -2617,7 +2619,7 @@ unexpected_eof (token_start, "\""); case 118: YY_RULE_SETUP -#line 784 "src/scan-gram.l" +#line 786 "src/scan-gram.l" { STRING_GROW; context_state = YY_START; @@ -2627,7 +2629,7 @@ YY_RULE_SETUP YY_BREAK case 119: YY_RULE_SETUP -#line 790 "src/scan-gram.l" +#line 792 "src/scan-gram.l" { STRING_GROW; context_state = YY_START; @@ -2638,7 +2640,7 @@ YY_RULE_SETUP case 120: /* rule 120 can match eol */ YY_RULE_SETUP -#line 796 "src/scan-gram.l" +#line 798 "src/scan-gram.l" { STRING_GROW; context_state = YY_START; @@ -2649,7 +2651,7 @@ YY_RULE_SETUP case 121: /* rule 121 can match eol */ YY_RULE_SETUP -#line 802 "src/scan-gram.l" +#line 804 "src/scan-gram.l" { STRING_GROW; context_state = YY_START; @@ -2666,13 +2668,13 @@ YY_RULE_SETUP case 122: /* rule 122 can match eol */ YY_RULE_SETUP -#line 818 "src/scan-gram.l" +#line 820 "src/scan-gram.l" STRING_GROW; nesting++; YY_BREAK case 123: /* rule 123 can match eol */ YY_RULE_SETUP -#line 819 "src/scan-gram.l" +#line 821 "src/scan-gram.l" STRING_GROW; nesting--; YY_BREAK /* Tokenize '<<%' correctly (as '<<' '%') rather than incorrrectly @@ -2680,12 +2682,12 @@ STRING_GROW; nesting--; case 124: /* rule 124 can match eol */ YY_RULE_SETUP -#line 823 "src/scan-gram.l" +#line 825 "src/scan-gram.l" STRING_GROW; YY_BREAK case YY_STATE_EOF(SC_BRACED_CODE): case YY_STATE_EOF(SC_PREDICATE): -#line 825 "src/scan-gram.l" +#line 827 "src/scan-gram.l" unexpected_eof (code_start, "}"); YY_BREAK @@ -2693,7 +2695,7 @@ unexpected_eof (code_start, "}"); case 125: YY_RULE_SETUP -#line 830 "src/scan-gram.l" +#line 832 "src/scan-gram.l" { obstack_1grow (&obstack_for_string, '}'); @@ -2705,6 +2707,7 @@ YY_RULE_SETUP val->code = last_string; BEGIN INITIAL; #if 1 + gram_piece_append(""); gram_piece_escape(gram_text, strlen(gram_text)); gram_piece_append(""); gram_piece_pack(); @@ -2720,7 +2723,7 @@ YY_RULE_SETUP case 126: YY_RULE_SETUP -#line 854 "src/scan-gram.l" +#line 857 "src/scan-gram.l" { --nesting; if (nesting < 0) @@ -2730,8 +2733,9 @@ YY_RULE_SETUP val->code = last_string; BEGIN INITIAL; #if 1 + gram_piece_append(""); gram_piece_escape(gram_text, strlen(gram_text)); - gram_piece_append(""); + gram_piece_append(""); gram_piece_pack(); return ~BRACED_PREDICATE; #else @@ -2750,7 +2754,7 @@ YY_RULE_SETUP case 127: YY_RULE_SETUP -#line 882 "src/scan-gram.l" +#line 886 "src/scan-gram.l" { STRING_FINISH; loc->start = code_start; @@ -2768,7 +2772,7 @@ YY_RULE_SETUP } YY_BREAK case YY_STATE_EOF(SC_PROLOGUE): -#line 898 "src/scan-gram.l" +#line 902 "src/scan-gram.l" unexpected_eof (code_start, "%}"); YY_BREAK @@ -2779,7 +2783,7 @@ unexpected_eof (code_start, "%}"); case YY_STATE_EOF(SC_EPILOGUE): -#line 909 "src/scan-gram.l" +#line 913 "src/scan-gram.l" { STRING_FINISH; loc->start = code_start; @@ -2798,19 +2802,19 @@ case YY_STATE_EOF(SC_EPILOGUE): | By default, grow the string obstack with the input. | `-----------------------------------------------------*/ case 128: -#line 929 "src/scan-gram.l" +#line 933 "src/scan-gram.l" case 129: /* rule 129 can match eol */ YY_RULE_SETUP -#line 929 "src/scan-gram.l" +#line 933 "src/scan-gram.l" STRING_GROW; YY_BREAK case 130: YY_RULE_SETUP -#line 932 "src/scan-gram.l" +#line 936 "src/scan-gram.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK -#line 2800 "src/scan-gram.c" +#line 2804 "src/scan-gram.c" case YY_STATE_EOF(SC_RETURN_BRACKETED_ID): yyterminate(); @@ -3944,7 +3948,7 @@ void gram_free (void * ptr ) /* %ok-for-header */ -#line 932 "src/scan-gram.l" +#line 936 "src/scan-gram.l" diff --git a/src/scan-gram.l b/src/scan-gram.l index 86aa160..9c9ef0a 100644 --- a/src/scan-gram.l +++ b/src/scan-gram.l @@ -358,6 +358,8 @@ eqopt ([[:space:]]*=)? BEGIN SC_BRACED_CODE; gram_piece_pack(); gram_piece_append(""); + gram_piece_flush(strlen(yytext)); + gram_piece_append(""); } /* Semantic predicate. */ @@ -366,7 +368,7 @@ eqopt ([[:space:]]*=)? code_start = loc->start; gram_piece_pack(); gram_piece_append(""); - gram_piece_flush(strlen(yytext) - 1); + gram_piece_flush(strlen(yytext)); gram_piece_append(""); BEGIN SC_PREDICATE; } @@ -838,6 +840,7 @@ eqopt ([[:space:]]*=)? val->code = last_string; BEGIN INITIAL; #if 1 + gram_piece_append(""); gram_piece_escape(yytext, strlen(yytext)); gram_piece_append(""); gram_piece_pack(); @@ -860,8 +863,9 @@ eqopt ([[:space:]]*=)? val->code = last_string; BEGIN INITIAL; #if 1 + gram_piece_append(""); gram_piece_escape(yytext, strlen(yytext)); - gram_piece_append(""); + gram_piece_append(""); gram_piece_pack(); return ~BRACED_PREDICATE; #else