param_parse = 1 << 1,
param_both = param_lex | param_parse
} param_type;
-#line 694 "src/parse-gram.y" /* yacc.c:355 */
+#line 798 "src/parse-gram.y" /* yacc.c:355 */
#include "muscle-tab.h"
#line 136 "src/parse-gram.c" /* yacc.c:355 */
named_ref *named_ref;
#line 241 "src/parse-gram.y" /* yacc.c:355 */
param_type param;
-#line 415 "src/parse-gram.y" /* yacc.c:355 */
+#line 496 "src/parse-gram.y" /* yacc.c:355 */
code_props_type code_type;
-#line 696 "src/parse-gram.y" /* yacc.c:355 */
+#line 800 "src/parse-gram.y" /* yacc.c:355 */
struct
{
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 264, 264, 279, 280, 284, 285, 291, 295, 300,
- 301, 306, 312, 313, 314, 315, 320, 325, 326, 327,
- 328, 329, 330, 330, 331, 332, 356, 357, 358, 359,
- 363, 364, 373, 374, 375, 379, 391, 395, 399, 407,
- 418, 419, 429, 430, 436, 450, 450, 459, 459, 468,
- 483, 502, 503, 504, 505, 509, 510, 515, 517, 522,
- 527, 539, 541, 546, 547, 551, 552, 556, 557, 558,
- 563, 568, 573, 581, 589, 602, 603, 612, 613, 619,
- 620, 626, 633, 633, 645, 649, 653, 658, 661, 663,
- 665, 667, 669, 671, 673, 678, 679, 689, 690, 715,
- 716, 717, 718, 730, 732, 741, 746, 747, 752, 760,
- 761
+ 0, 264, 264, 279, 290, 294, 295, 301, 307, 314,
+ 318, 325, 333, 337, 341, 345, 352, 359, 363, 367,
+ 371, 375, 379, 379, 383, 387, 413, 417, 421, 425,
+ 429, 430, 439, 440, 441, 447, 464, 470, 476, 486,
+ 499, 500, 510, 511, 517, 531, 531, 538, 538, 545,
+ 560, 580, 581, 582, 583, 587, 590, 595, 597, 602,
+ 607, 619, 621, 626, 627, 631, 632, 636, 641, 645,
+ 653, 658, 663, 671, 680, 693, 694, 703, 704, 710,
+ 711, 712, 719, 719, 731, 735, 739, 744, 747, 752,
+ 757, 759, 764, 769, 774, 782, 783, 793, 794, 819,
+ 820, 821, 822, 834, 836, 845, 850, 851, 856, 864,
+ 865
};
#endif
break;
case 65: /* code_props_type */
-#line 416 "src/parse-gram.y" /* yacc.c:684 */
+#line 497 "src/parse-gram.y" /* yacc.c:684 */
{ fprintf (yyo, "%s", code_props_type_string (((*yyvaluep).code_type))); }
#line 1097 "src/parse-gram.c" /* yacc.c:684 */
break;
break;
case 89: /* value */
-#line 705 "src/parse-gram.y" /* yacc.c:684 */
+#line 809 "src/parse-gram.y" /* yacc.c:684 */
{
switch (((*yyvaluep).value).kind)
{
case 2:
#line 265 "src/parse-gram.y" /* yacc.c:1648 */
{
- insert_after(2, "</Sect2>");
- insert_before(2, "<Sect2>");
- insert_after(0, "</Sect1>");
- insert_before(0, "<Sect1>");
+ insert_after(2, "</PYACC_Section2>");
+ insert_before(2, "<PYACC_Section2>");
+ insert_after(0, "</PYACC_Section1>");
+ insert_before(0, "<PYACC_Section1>");
}
#line 2057 "src/parse-gram.c" /* yacc.c:1648 */
break;
+ case 3:
+#line 280 "src/parse-gram.y" /* yacc.c:1648 */
+ {
+ /* in this case, want empty rule associated with stuff on the right of us */
+ /* therefore, move inter-token text from the right of us over to the left */
+ if (yychar == YYEMPTY)
+ yychar = yylex(&yylval, &yylloc);
+ char *temp = piece[piece2 + 1];
+ piece[piece2 + 1] = piece[piece2]; /* empty */
+ piece[piece2] = piece[piece2 - 1]; /* empty */
+ piece[piece2 - 1] = temp;
+ }
+#line 2072 "src/parse-gram.c" /* yacc.c:1648 */
+ break;
+
case 6:
-#line 286 "src/parse-gram.y" /* yacc.c:1648 */
+#line 296 "src/parse-gram.y" /* yacc.c:1648 */
{
muscle_code_grow (union_seen ? "post_prologue" : "pre_prologue",
translate_code ((yyvsp[0].code), (yylsp[0]), true), (yylsp[0]));
code_scanner_last_string_free ();
}
-#line 2067 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2082 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 7:
-#line 292 "src/parse-gram.y" /* yacc.c:1648 */
+#line 302 "src/parse-gram.y" /* yacc.c:1648 */
{
muscle_percent_define_ensure ((yyvsp[0].uniqstr), (yylsp[0]), true);
+ insert_after(0, "</PYACC_Section1_Flag>");
+ insert_before(0, "<PYACC_Section1_Flag>");
}
-#line 2075 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2092 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 8:
-#line 296 "src/parse-gram.y" /* yacc.c:1648 */
+#line 308 "src/parse-gram.y" /* yacc.c:1648 */
{
muscle_percent_define_insert ((yyvsp[-1].uniqstr), (yylsp[-1]), (yyvsp[0].value).kind, (yyvsp[0].value).chars,
MUSCLE_PERCENT_DEFINE_GRAMMAR_FILE);
+ insert_after(2, "</PYACC_Section1_Define>");
+ insert_before(0, "<PYACC_Section1_Define>");
}
-#line 2084 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2103 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 9:
-#line 300 "src/parse-gram.y" /* yacc.c:1648 */
- { defines_flag = true; }
-#line 2090 "src/parse-gram.c" /* yacc.c:1648 */
+#line 314 "src/parse-gram.y" /* yacc.c:1648 */
+ { defines_flag = true; /*}*/
+ insert_after(0, "</PYACC_Section1_Define>");
+ insert_before(0, "<PYACC_Section1_Define>");
+ }
+#line 2112 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 10:
-#line 302 "src/parse-gram.y" /* yacc.c:1648 */
+#line 319 "src/parse-gram.y" /* yacc.c:1648 */
{
defines_flag = true;
spec_defines_file = xstrdup ((yyvsp[0].code));
+ insert_after(1, "</PYACC_Section1_Define>");
+ insert_before(0, "<PYACC_Section1_Define>");
}
-#line 2099 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2123 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 11:
-#line 307 "src/parse-gram.y" /* yacc.c:1648 */
+#line 326 "src/parse-gram.y" /* yacc.c:1648 */
{
muscle_percent_define_insert ("parse.error", (yylsp[0]), muscle_keyword,
"verbose",
MUSCLE_PERCENT_DEFINE_GRAMMAR_FILE);
+ insert_after(0, "</PYACC_Section1_ErrorVerbose>");
+ insert_before(0, "<PYACC_Section1_ErrorVerbose>");
}
-#line 2109 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2135 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 12:
-#line 312 "src/parse-gram.y" /* yacc.c:1648 */
- { expected_sr_conflicts = (yyvsp[0].integer); }
-#line 2115 "src/parse-gram.c" /* yacc.c:1648 */
+#line 333 "src/parse-gram.y" /* yacc.c:1648 */
+ { expected_sr_conflicts = (yyvsp[0].integer); /*}*/
+ insert_after(1, "</PYACC_Section1_Expect>");
+ insert_before(0, "<PYACC_Section1_Expect>");
+ }
+#line 2144 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 13:
-#line 313 "src/parse-gram.y" /* yacc.c:1648 */
- { expected_rr_conflicts = (yyvsp[0].integer); }
-#line 2121 "src/parse-gram.c" /* yacc.c:1648 */
+#line 337 "src/parse-gram.y" /* yacc.c:1648 */
+ { expected_rr_conflicts = (yyvsp[0].integer); /*}*/
+ insert_after(1, "</PYACC_Section1_ExpectRR>");
+ insert_before(0, "<PYACC_Section1_ExpectRR>");
+ }
+#line 2153 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 14:
-#line 314 "src/parse-gram.y" /* yacc.c:1648 */
- { spec_file_prefix = (yyvsp[0].code); }
-#line 2127 "src/parse-gram.c" /* yacc.c:1648 */
+#line 341 "src/parse-gram.y" /* yacc.c:1648 */
+ { spec_file_prefix = (yyvsp[0].code); /*}*/
+ insert_after(1, "</PYACC_Section1_FilePrefix>");
+ insert_before(0, "<PYACC_Section1_FilePrefix>");
+ }
+#line 2162 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 15:
-#line 316 "src/parse-gram.y" /* yacc.c:1648 */
+#line 346 "src/parse-gram.y" /* yacc.c:1648 */
{
nondeterministic_parser = true;
glr_parser = true;
+ insert_after(0, "</PYACC_Section1_GLRParser>");
+ insert_before(0, "<PYACC_Section1_GLRParser>");
}
-#line 2136 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2173 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 16:
-#line 321 "src/parse-gram.y" /* yacc.c:1648 */
+#line 353 "src/parse-gram.y" /* yacc.c:1648 */
{
muscle_code_grow ("initial_action", translate_code ((yyvsp[0].code), (yylsp[0]), false), (yylsp[0]));
code_scanner_last_string_free ();
+ insert_after(1, "</PYACC_Section1_InitialAction>");
+ insert_before(0, "<PYACC_Section1_InitialAction>");
}
-#line 2145 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2184 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 17:
-#line 325 "src/parse-gram.y" /* yacc.c:1648 */
- { language_argmatch ((yyvsp[0].code), grammar_prio, (yylsp[-1])); }
-#line 2151 "src/parse-gram.c" /* yacc.c:1648 */
+#line 359 "src/parse-gram.y" /* yacc.c:1648 */
+ { language_argmatch ((yyvsp[0].code), grammar_prio, (yylsp[-1])); /*}*/
+ insert_after(1, "</PYACC_Section1_Language>");
+ insert_before(0, "<PYACC_Section1_Language>");
+ }
+#line 2193 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 18:
-#line 326 "src/parse-gram.y" /* yacc.c:1648 */
- { spec_name_prefix = (yyvsp[0].code); }
-#line 2157 "src/parse-gram.c" /* yacc.c:1648 */
+#line 363 "src/parse-gram.y" /* yacc.c:1648 */
+ { spec_name_prefix = (yyvsp[0].code); /*}*/
+ insert_after(1, "</PYACC_Section1_NamePrefix>");
+ insert_before(0, "<PYACC_Section1_NamePrefix>");
+ }
+#line 2202 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 19:
-#line 327 "src/parse-gram.y" /* yacc.c:1648 */
- { no_lines_flag = true; }
-#line 2163 "src/parse-gram.c" /* yacc.c:1648 */
+#line 367 "src/parse-gram.y" /* yacc.c:1648 */
+ { no_lines_flag = true; /*}*/
+ insert_after(0, "</PYACC_Section1_Lines>");
+ insert_before(0, "<PYACC_Section1_Lines value=\"false\">");
+ }
+#line 2211 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 20:
-#line 328 "src/parse-gram.y" /* yacc.c:1648 */
- { nondeterministic_parser = true; }
-#line 2169 "src/parse-gram.c" /* yacc.c:1648 */
+#line 371 "src/parse-gram.y" /* yacc.c:1648 */
+ { nondeterministic_parser = true; /*}*/
+ insert_after(0, "</PYACC_Section1_NonDeterministicParser>");
+ insert_before(0, "<PYACC_Section1_NonDeterministicParser>");
+ }
+#line 2220 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 21:
-#line 329 "src/parse-gram.y" /* yacc.c:1648 */
- { spec_outfile = (yyvsp[0].code); }
-#line 2175 "src/parse-gram.c" /* yacc.c:1648 */
+#line 375 "src/parse-gram.y" /* yacc.c:1648 */
+ { spec_outfile = (yyvsp[0].code); /*}*/
+ insert_after(1, "</PYACC_Section1_Output>");
+ insert_before(0, "<PYACC_Section1_Output>");
+ }
+#line 2229 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 22:
-#line 330 "src/parse-gram.y" /* yacc.c:1648 */
+#line 379 "src/parse-gram.y" /* yacc.c:1648 */
{ current_param = (yyvsp[0].param); }
-#line 2181 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2235 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 23:
-#line 330 "src/parse-gram.y" /* yacc.c:1648 */
- { current_param = param_none; }
-#line 2187 "src/parse-gram.c" /* yacc.c:1648 */
+#line 379 "src/parse-gram.y" /* yacc.c:1648 */
+ { current_param = param_none; /*}*/
+ insert_after(2, "</PYACC_Section1_Param>");
+ insert_before(0, "<PYACC_Section1_Param>");
+ }
+#line 2244 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 24:
-#line 331 "src/parse-gram.y" /* yacc.c:1648 */
- { version_check (&(yylsp[0]), (yyvsp[0].code)); }
-#line 2193 "src/parse-gram.c" /* yacc.c:1648 */
+#line 383 "src/parse-gram.y" /* yacc.c:1648 */
+ { version_check (&(yylsp[0]), (yyvsp[0].code)); /*}*/
+ insert_after(1, "</PYACC_Section1_Require>");
+ insert_before(0, "<PYACC_Section1_Require>");
+ }
+#line 2253 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 25:
-#line 333 "src/parse-gram.y" /* yacc.c:1648 */
+#line 388 "src/parse-gram.y" /* yacc.c:1648 */
{
char const *skeleton_user = (yyvsp[0].code);
if (strchr (skeleton_user, '/'))
free (skeleton_build);
}
skeleton_arg (skeleton_user, grammar_prio, (yylsp[-1]));
+ insert_after(1, "</PYACC_Section1_Skeleton>");
+ insert_before(0, "<PYACC_Section1_Skeleton>");
}
-#line 2221 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2283 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 26:
-#line 356 "src/parse-gram.y" /* yacc.c:1648 */
- { token_table_flag = true; }
-#line 2227 "src/parse-gram.c" /* yacc.c:1648 */
+#line 413 "src/parse-gram.y" /* yacc.c:1648 */
+ { token_table_flag = true; /*}*/
+ insert_after(0, "</PYACC_Section1_TokenTable>");
+ insert_before(0, "<PYACC_Section1_TokenTable>");
+ }
+#line 2292 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 27:
-#line 357 "src/parse-gram.y" /* yacc.c:1648 */
- { report_flag |= report_states; }
-#line 2233 "src/parse-gram.c" /* yacc.c:1648 */
+#line 417 "src/parse-gram.y" /* yacc.c:1648 */
+ { report_flag |= report_states; /*}*/
+ insert_after(0, "</PYACC_Section1_Verbose>");
+ insert_before(0, "<PYACC_Section1_Verbose>");
+ }
+#line 2301 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 28:
-#line 358 "src/parse-gram.y" /* yacc.c:1648 */
- { yacc_flag = true; }
-#line 2239 "src/parse-gram.c" /* yacc.c:1648 */
+#line 421 "src/parse-gram.y" /* yacc.c:1648 */
+ { yacc_flag = true; /*}*/
+ insert_after(0, "</PYACC_Section1_YACC>");
+ insert_before(0, "<PYACC_Section1_YACC>");
+ }
+#line 2310 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 30:
-#line 363 "src/parse-gram.y" /* yacc.c:1648 */
+#line 429 "src/parse-gram.y" /* yacc.c:1648 */
{ add_param (current_param, (yyvsp[0].code), (yylsp[0])); }
-#line 2245 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2316 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 31:
-#line 364 "src/parse-gram.y" /* yacc.c:1648 */
+#line 430 "src/parse-gram.y" /* yacc.c:1648 */
{ add_param (current_param, (yyvsp[0].code), (yylsp[0])); }
-#line 2251 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2322 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 34:
-#line 376 "src/parse-gram.y" /* yacc.c:1648 */
+#line 442 "src/parse-gram.y" /* yacc.c:1648 */
{
grammar_start_symbol_set ((yyvsp[0].symbol), (yylsp[0]));
+ insert_after(1, "</PYACC_Section1Or2_Start>");
+ insert_before(0, "<PYACC_Section1Or2_Start>");
}
-#line 2259 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2332 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 35:
-#line 380 "src/parse-gram.y" /* yacc.c:1648 */
+#line 448 "src/parse-gram.y" /* yacc.c:1648 */
{
code_props code;
code_props_symbol_action_init (&code, (yyvsp[-1].code), (yylsp[-1]));
symbol_list_code_props_set (list, (yyvsp[-2].code_type), &code);
symbol_list_free ((yyvsp[0].list));
}
+ insert_after(2, "</PYACC_Section1Or2_CodeProps>");
+ insert_after(2, "</PYACC_Section1Or2_CodeProps_GenericSymList>");
+ insert_before(2, "<PYACC_Section1Or2_CodeProps_GenericSymList>");
+ sprintf(piece_temp, "<PYACC_Section1Or2_CodeProps type=\"%d\">", (yyvsp[-2].code_type));
+ insert_before(0, piece_temp);
}
-#line 2275 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2353 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 36:
-#line 392 "src/parse-gram.y" /* yacc.c:1648 */
+#line 465 "src/parse-gram.y" /* yacc.c:1648 */
{
default_prec = true;
- }
-#line 2283 "src/parse-gram.c" /* yacc.c:1648 */
+ insert_after(0, "</PYACC_Section1Or2_DefaultPrec>");
+ insert_before(0, "<PYACC_Section1Or2_DefaultPrec value=\"true\">");
+ }
+#line 2363 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 37:
-#line 396 "src/parse-gram.y" /* yacc.c:1648 */
+#line 471 "src/parse-gram.y" /* yacc.c:1648 */
{
default_prec = false;
+ insert_after(0, "</PYACC_Section1Or2_DefaultPrec>");
+ insert_before(0, "<PYACC_Section1Or2_DefaultPrec>");
}
-#line 2291 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2373 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 38:
-#line 400 "src/parse-gram.y" /* yacc.c:1648 */
+#line 477 "src/parse-gram.y" /* yacc.c:1648 */
{
/* Do not invoke muscle_percent_code_grow here since it invokes
muscle_user_name_list_grow. */
muscle_code_grow ("percent_code()",
translate_code_braceless ((yyvsp[0].code), (yylsp[0])), (yylsp[0]));
code_scanner_last_string_free ();
+ insert_after(1, "</PYACC_Section1Or2_Code>");
+ insert_before(0, "<PYACC_Section1Or2_Code><PYACC_IDNone />");
}
-#line 2303 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2387 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 39:
-#line 408 "src/parse-gram.y" /* yacc.c:1648 */
+#line 487 "src/parse-gram.y" /* yacc.c:1648 */
{
muscle_percent_code_grow ((yyvsp[-1].uniqstr), (yylsp[-1]), translate_code_braceless ((yyvsp[0].code), (yylsp[0])), (yylsp[0]));
code_scanner_last_string_free ();
+ insert_after(2, "</PYACC_Section1Or2_Code>");
+ insert_before(0, "<PYACC_Section1Or2_Code>");
}
-#line 2312 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2398 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 40:
-#line 418 "src/parse-gram.y" /* yacc.c:1648 */
+#line 499 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.code_type) = destructor; }
-#line 2318 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2404 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 41:
-#line 419 "src/parse-gram.y" /* yacc.c:1648 */
+#line 500 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.code_type) = printer; }
-#line 2324 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2410 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 42:
-#line 429 "src/parse-gram.y" /* yacc.c:1648 */
- { insert_before(0, "<NoId />"); }
-#line 2330 "src/parse-gram.c" /* yacc.c:1648 */
+#line 510 "src/parse-gram.y" /* yacc.c:1648 */
+ { insert_before(0, "<PYACC_IDNone />"); }
+#line 2416 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 43:
-#line 430 "src/parse-gram.y" /* yacc.c:1648 */
+#line 511 "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 2338 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2424 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 44:
-#line 437 "src/parse-gram.y" /* yacc.c:1648 */
+#line 518 "src/parse-gram.y" /* yacc.c:1648 */
{
union_seen = true;
muscle_code_grow ("union_members", translate_code_braceless ((yyvsp[0].code), (yylsp[0])), (yylsp[0]));
code_scanner_last_string_free ();
- insert_after(2, "</PercentUnion>");
- insert_before(0, "<PercentUnion>");
+ insert_after(2, "</PYACC_Section1Or2_Union>");
+ insert_before(0, "<PYACC_Section1Or2_Union>");
}
-#line 2350 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2436 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 45:
-#line 450 "src/parse-gram.y" /* yacc.c:1648 */
+#line 531 "src/parse-gram.y" /* yacc.c:1648 */
{ current_class = nterm_sym; }
-#line 2356 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2442 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 46:
-#line 451 "src/parse-gram.y" /* yacc.c:1648 */
+#line 532 "src/parse-gram.y" /* yacc.c:1648 */
{
current_class = unknown_sym;
current_type = NULL;
- insert_after(2, "</PercentNTerm>");
- /*insert_after(2, "</SymbolDefs>");*/
- /*insert_before(2, "<SymbolDefs>");*/
- insert_before(0, "<PercentNTerm>");
+ insert_after(2, "</PYACC_Section1Or2_NTerm>");
+ insert_before(0, "<PYACC_Section1Or2_NTerm>");
}
-#line 2369 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2453 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 47:
-#line 459 "src/parse-gram.y" /* yacc.c:1648 */
+#line 538 "src/parse-gram.y" /* yacc.c:1648 */
{ current_class = token_sym; }
-#line 2375 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2459 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 48:
-#line 460 "src/parse-gram.y" /* yacc.c:1648 */
+#line 539 "src/parse-gram.y" /* yacc.c:1648 */
{
current_class = unknown_sym;
current_type = NULL;
- insert_after(2, "</PercentToken>");
- /*insert_after(2, "</SymbolDefs>");*/
- /*insert_before(2, "<SymbolDefs>");*/
- insert_before(0, "<PercentToken>");
+ insert_after(2, "</PYACC_Section1Or2_Token>");
+ insert_before(0, "<PYACC_Section1Or2_Token>");
}
-#line 2388 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2470 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 49:
-#line 469 "src/parse-gram.y" /* yacc.c:1648 */
+#line 546 "src/parse-gram.y" /* yacc.c:1648 */
{
symbol_list *list;
tag_seen = true;
for (list = (yyvsp[0].list); list; list = list->next)
symbol_type_set (list->content.sym, (yyvsp[-1].uniqstr), (yylsp[-1]));
symbol_list_free ((yyvsp[0].list));
- insert_after(2, "</PercentType>");
- insert_after(2, "</Symbols>");
- insert_before(2, "<Symbols>");
- insert_before(0, "<PercentType>");
+ insert_after(2, "</PYACC_Section1Or2_Type>");
+ insert_after(2, "</PYACC_Section1Or2_Type_Symbols>");
+ insert_before(2, "<PYACC_Section1Or2_Type_Symbols>");
+ insert_before(0, "<PYACC_Section1Or2_Type>");
}
-#line 2404 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2486 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 50:
-#line 484 "src/parse-gram.y" /* yacc.c:1648 */
+#line 561 "src/parse-gram.y" /* yacc.c:1648 */
{
symbol_list *list;
++current_prec;
}
symbol_list_free ((yyvsp[0].list));
current_type = NULL;
- insert_after(2, "</PrecedenceDeclaration>");
- insert_after(2, "</SymbolsPrec>");
- insert_before(2, "<SymbolsPrec>");
- insert_before(0, "<PrecedenceDeclaration>");
+ insert_after(2, "</PYACC_Section1Or2_Precedence>");
+ insert_after(2, "</PYACC_Section1Or2_Precedence_Symbols>");
+ insert_before(2, "<PYACC_Section1Or2_Precedence_Symbols>");
+ sprintf(piece_temp, "<PYACC_Section1Or2_Precedence type=\"%d\">", (yyvsp[-2].assoc));
+ insert_before(0, piece_temp);
}
-#line 2424 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2507 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 51:
-#line 502 "src/parse-gram.y" /* yacc.c:1648 */
- { (yyval.assoc) = left_assoc; insert_after(0, "</PrecedenceDeclaration_Left>"); insert_before(0, "<PrecedenceDeclaration_Left>"); }
-#line 2430 "src/parse-gram.c" /* yacc.c:1648 */
+#line 580 "src/parse-gram.y" /* yacc.c:1648 */
+ { (yyval.assoc) = left_assoc; }
+#line 2513 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 52:
-#line 503 "src/parse-gram.y" /* yacc.c:1648 */
- { (yyval.assoc) = right_assoc; insert_after(0, "</PrecedenceDeclaration_Right>"); insert_before(0, "<PrecedenceDeclaration_Right>"); }
-#line 2436 "src/parse-gram.c" /* yacc.c:1648 */
+#line 581 "src/parse-gram.y" /* yacc.c:1648 */
+ { (yyval.assoc) = right_assoc; }
+#line 2519 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 53:
-#line 504 "src/parse-gram.y" /* yacc.c:1648 */
- { (yyval.assoc) = non_assoc; insert_after(0, "</PrecedenceDeclaration_Non>"); insert_before(0, "<PrecedenceDeclaration_Non>"); }
-#line 2442 "src/parse-gram.c" /* yacc.c:1648 */
+#line 582 "src/parse-gram.y" /* yacc.c:1648 */
+ { (yyval.assoc) = non_assoc; }
+#line 2525 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 54:
-#line 505 "src/parse-gram.y" /* yacc.c:1648 */
- { (yyval.assoc) = precedence_assoc; insert_after(0, "</PrecedenceDeclaration_Precedence>"); insert_before(0, "<PrecedenceDeclaration_Precedence>"); }
-#line 2448 "src/parse-gram.c" /* yacc.c:1648 */
+#line 583 "src/parse-gram.y" /* yacc.c:1648 */
+ { (yyval.assoc) = precedence_assoc; }
+#line 2531 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 55:
-#line 509 "src/parse-gram.y" /* yacc.c:1648 */
- { current_type = NULL; insert_before(0, "<NoTag />"); }
-#line 2454 "src/parse-gram.c" /* yacc.c:1648 */
+#line 587 "src/parse-gram.y" /* yacc.c:1648 */
+ { current_type = NULL; /*}*/
+ insert_before(0, "<PYACC_TagNone />");
+ }
+#line 2539 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 56:
-#line 510 "src/parse-gram.y" /* yacc.c:1648 */
+#line 590 "src/parse-gram.y" /* yacc.c:1648 */
{ current_type = (yyvsp[0].uniqstr); tag_seen = true; }
-#line 2460 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2545 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 57:
-#line 516 "src/parse-gram.y" /* yacc.c:1648 */
+#line 596 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.list) = symbol_list_sym_new ((yyvsp[0].symbol), (yylsp[0])); }
-#line 2466 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2551 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 58:
-#line 518 "src/parse-gram.y" /* yacc.c:1648 */
+#line 598 "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 2472 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2557 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 59:
-#line 523 "src/parse-gram.y" /* yacc.c:1648 */
+#line 603 "src/parse-gram.y" /* yacc.c:1648 */
{
(yyval.symbol) = (yyvsp[0].symbol);
symbol_class_set ((yyvsp[0].symbol), token_sym, (yylsp[0]), false);
}
-#line 2481 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2566 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 60:
-#line 528 "src/parse-gram.y" /* yacc.c:1648 */
+#line 608 "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]));
symbol_class_set ((yyvsp[-1].symbol), token_sym, (yylsp[-1]), false);
- insert_after(1, "</SymbolInt>");
- insert_before(0, "<SymbolInt>");
+ insert_after(1, "<PYACC_Section1Or2_Precedence_Symbols_Symbol>");
+ insert_before(0, "<PYACC_Sectino1Or2_Precedence_Symbols_Symbol>");
}
-#line 2493 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2578 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 61:
-#line 540 "src/parse-gram.y" /* yacc.c:1648 */
+#line 620 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.list) = symbol_list_sym_new ((yyvsp[0].symbol), (yylsp[0])); }
-#line 2499 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2584 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 62:
-#line 542 "src/parse-gram.y" /* yacc.c:1648 */
+#line 622 "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 2505 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2590 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 63:
-#line 546 "src/parse-gram.y" /* yacc.c:1648 */
+#line 626 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.list) = (yyvsp[0].list); }
-#line 2511 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2596 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 64:
-#line 547 "src/parse-gram.y" /* yacc.c:1648 */
+#line 627 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.list) = symbol_list_append ((yyvsp[-1].list), (yyvsp[0].list)); }
-#line 2517 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2602 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 65:
-#line 551 "src/parse-gram.y" /* yacc.c:1648 */
+#line 631 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.list) = symbol_list_sym_new ((yyvsp[0].symbol), (yylsp[0])); }
-#line 2523 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2608 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 66:
-#line 552 "src/parse-gram.y" /* yacc.c:1648 */
+#line 632 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.list) = symbol_list_type_new ((yyvsp[0].uniqstr), (yylsp[0])); }
-#line 2529 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2614 "src/parse-gram.c" /* yacc.c:1648 */
+ break;
+
+ case 67:
+#line 637 "src/parse-gram.y" /* yacc.c:1648 */
+ {
+ insert_after(0, "</PYACC_Tag");
+ insert_before(0, "<PYACC_Tag type=\"0\">");
+ }
+#line 2623 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 68:
-#line 557 "src/parse-gram.y" /* yacc.c:1648 */
- { (yyval.uniqstr) = uniqstr_new ("*"); }
-#line 2535 "src/parse-gram.c" /* yacc.c:1648 */
+#line 641 "src/parse-gram.y" /* yacc.c:1648 */
+ { (yyval.uniqstr) = uniqstr_new ("*"); /*}*/
+ insert_after(0, "</PYACC_Tag");
+ insert_before(0, "<PYACC_Tag type=\"1\">");
+ }
+#line 2632 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 69:
-#line 558 "src/parse-gram.y" /* yacc.c:1648 */
- { (yyval.uniqstr) = uniqstr_new (""); }
-#line 2541 "src/parse-gram.c" /* yacc.c:1648 */
+#line 645 "src/parse-gram.y" /* yacc.c:1648 */
+ { (yyval.uniqstr) = uniqstr_new (""); /*}*/
+ insert_after(0, "</PYACC_Tag");
+ insert_before(0, "<PYACC_Tag type=\"2\">");
+ }
+#line 2641 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 70:
-#line 564 "src/parse-gram.y" /* yacc.c:1648 */
+#line 654 "src/parse-gram.y" /* yacc.c:1648 */
{
current_type = (yyvsp[0].uniqstr);
tag_seen = true;
}
-#line 2550 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2650 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 71:
-#line 569 "src/parse-gram.y" /* yacc.c:1648 */
+#line 659 "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]));
}
-#line 2559 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2659 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 72:
-#line 574 "src/parse-gram.y" /* yacc.c:1648 */
+#line 664 "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]));
symbol_user_token_number_set ((yyvsp[-1].symbol), (yyvsp[0].integer), (yylsp[0]));
- insert_after(1, "</IdInt>");
- insert_before(0, "<IdInt>");
+ insert_after(1, "</PYACC_Section1Or2_SymbolDef>");
+ insert_before(0, "<PYACC_Section1Or2_SymbolDef>");
}
-#line 2571 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2671 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 73:
-#line 582 "src/parse-gram.y" /* yacc.c:1648 */
+#line 672 "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]));
symbol_make_alias ((yyvsp[-1].symbol), (yyvsp[0].symbol), (yyloc));
- insert_after(1, "</IdString>");
- insert_before(0, "<IdString>");
+ insert_after(1, "</PYACC_Section1Or2_SymbolDef>");
+ insert_after(0, "<PYACC_IntNone />");
+ insert_before(0, "<PYACC_Section1Or2_SymbolDef>");
}
-#line 2583 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2684 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 74:
-#line 590 "src/parse-gram.y" /* yacc.c:1648 */
+#line 681 "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]));
symbol_user_token_number_set ((yyvsp[-2].symbol), (yyvsp[-1].integer), (yylsp[-1]));
symbol_make_alias ((yyvsp[-2].symbol), (yyvsp[0].symbol), (yyloc));
- insert_after(1, "</IdIntString>");
- insert_before(0, "<IdIntString>");
+ insert_after(2, "</PYACC_Section1Or2_SymbolDef>");
+ insert_before(0, "<PYACC_Section1Or2_SymbolDef>");
}
-#line 2596 "src/parse-gram.c" /* yacc.c:1648 */
- break;
-
- case 80:
-#line 621 "src/parse-gram.y" /* yacc.c:1648 */
- {
- /* this should be done inside the rule with a more descriptive tag */
- insert_after(0, "</GrammarDeclaration>");
- insert_before(0, "<GrammarDeclaration>");
- }
-#line 2606 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2697 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 81:
-#line 627 "src/parse-gram.y" /* yacc.c:1648 */
+#line 713 "src/parse-gram.y" /* yacc.c:1648 */
{
yyerrok;
}
-#line 2614 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2705 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 82:
-#line 633 "src/parse-gram.y" /* yacc.c:1648 */
+#line 719 "src/parse-gram.y" /* yacc.c:1648 */
{ current_lhs ((yyvsp[-1].symbol), (yylsp[-1]), (yyvsp[0].named_ref)); }
-#line 2620 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2711 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 83:
-#line 634 "src/parse-gram.y" /* yacc.c:1648 */
+#line 720 "src/parse-gram.y" /* yacc.c:1648 */
{
/* Free the current lhs. */
current_lhs (0, (yylsp[-3]), 0);
- insert_after(3, "</Rules>");
- insert_after(3, "</RHSes>");
- insert_before(3, "<RHSes>");
- insert_before(0, "<Rules>");
+ insert_after(3, "</PYACC_Section2_Rules>");
+ insert_after(3, "</PYACC_Section2_Rules_RHSes>");
+ insert_before(3, "<PYACC_Section2_Rules_RHSes>");
+ insert_before(0, "<PYACC_Section2_Rules>");
}
-#line 2633 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2724 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 84:
-#line 645 "src/parse-gram.y" /* yacc.c:1648 */
+#line 731 "src/parse-gram.y" /* yacc.c:1648 */
{ grammar_current_rule_end ((yylsp[0])); /*}*/
- insert_after(0, "</RHS>");
- insert_before(0, "<RHS>");
+ insert_after(0, "</PYACC_Section2_Rules_RHSes_RHS>");
+ insert_before(0, "<PYACC_Section2_Rules_RHSes_RHS>");
}
-#line 2642 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2733 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 85:
-#line 649 "src/parse-gram.y" /* yacc.c:1648 */
+#line 735 "src/parse-gram.y" /* yacc.c:1648 */
{ grammar_current_rule_end ((yylsp[0])); /*}*/
- insert_after(2, "</RHS>");
- insert_before(2, "<RHS>");
+ insert_after(2, "</PYACC_Section2_Rules_RHSes_RHS>");
+ insert_before(2, "<PYACC_Section2_Rules_RHSes_RHS>");
}
-#line 2651 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2742 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 87:
-#line 659 "src/parse-gram.y" /* yacc.c:1648 */
+#line 745 "src/parse-gram.y" /* yacc.c:1648 */
{ grammar_current_rule_begin (current_lhs_symbol, current_lhs_location,
current_lhs_named_ref); }
-#line 2658 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2749 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 88:
-#line 662 "src/parse-gram.y" /* yacc.c:1648 */
- { grammar_current_rule_symbol_append ((yyvsp[-1].symbol), (yylsp[-1]), (yyvsp[0].named_ref)); insert_after(2, "</RHSSymbol>"); insert_before(1, "<RHSSymbol>"); }
-#line 2664 "src/parse-gram.c" /* yacc.c:1648 */
+#line 748 "src/parse-gram.y" /* yacc.c:1648 */
+ { grammar_current_rule_symbol_append ((yyvsp[-1].symbol), (yylsp[-1]), (yyvsp[0].named_ref)); /*}*/
+ insert_after(2, "</PYACC_Section2_Rules_RHSes_RHS_Symbol>");
+ insert_before(1, "<PYACC_Section2_Rules_RHSes_RHS_Symbol>");
+ }
+#line 2758 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 89:
-#line 664 "src/parse-gram.y" /* yacc.c:1648 */
- { grammar_current_rule_action_append ((yyvsp[-1].code), (yylsp[-1]), (yyvsp[0].named_ref), false); insert_after(2, "</RHSAction>"); insert_after(0, "<RHSAction>"); }
-#line 2670 "src/parse-gram.c" /* yacc.c:1648 */
+#line 753 "src/parse-gram.y" /* yacc.c:1648 */
+ { grammar_current_rule_action_append ((yyvsp[-1].code), (yylsp[-1]), (yyvsp[0].named_ref), false); /*}*/
+ insert_after(2, "</PYACC_Section2_Rules_RHSes_RHS_Action>");
+ insert_after(0, "<PYACC_Section2_Rules_RHSes_RHS_Action>");
+ }
+#line 2767 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 90:
-#line 666 "src/parse-gram.y" /* yacc.c:1648 */
+#line 758 "src/parse-gram.y" /* yacc.c:1648 */
{ grammar_current_rule_action_append ((yyvsp[0].code), (yylsp[0]), NULL, true); }
-#line 2676 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2773 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 91:
-#line 668 "src/parse-gram.y" /* yacc.c:1648 */
- { grammar_current_rule_empty_set ((yylsp[0])); insert_after(1, "</RHSEmpty>"); insert_before(1, "<RHSEmpty>"); }
-#line 2682 "src/parse-gram.c" /* yacc.c:1648 */
+#line 760 "src/parse-gram.y" /* yacc.c:1648 */
+ { grammar_current_rule_empty_set ((yylsp[0])); /*}*/
+ insert_after(1, "</PYACC_Section2_Rules_RHSes_RHS_Empty>");
+ insert_before(1, "<PYACC_Section2_Rules_RHSes_RHS_Empty>");
+ }
+#line 2782 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 92:
-#line 670 "src/parse-gram.y" /* yacc.c:1648 */
- { grammar_current_rule_prec_set ((yyvsp[0].symbol), (yylsp[0])); insert_after(2, "</RHSPrec>"); insert_before(1, "<RHSPrec>"); }
-#line 2688 "src/parse-gram.c" /* yacc.c:1648 */
+#line 765 "src/parse-gram.y" /* yacc.c:1648 */
+ { grammar_current_rule_prec_set ((yyvsp[0].symbol), (yylsp[0])); /*}*/
+ insert_after(2, "</PYACC_Section2_Rules_RHSes_RHS_Prec>");
+ insert_before(1, "<PYACC_Section2_Rules_RHSes_RHS_Prec>");
+ }
+#line 2791 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 93:
-#line 672 "src/parse-gram.y" /* yacc.c:1648 */
- { grammar_current_rule_dprec_set ((yyvsp[0].integer), (yylsp[0])); insert_after(2, "</RHSDPrec>"); insert_before(1, "<RHSDPrec>"); }
-#line 2694 "src/parse-gram.c" /* yacc.c:1648 */
+#line 770 "src/parse-gram.y" /* yacc.c:1648 */
+ { grammar_current_rule_dprec_set ((yyvsp[0].integer), (yylsp[0])); /*}*/
+ insert_after(2, "</PYACC_Section2_Rules_RHSes_RHS_DPrec>");
+ insert_before(1, "<PYACC_Section2_Rules_RHSes_RHS_DPrec>");
+ }
+#line 2800 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 94:
-#line 674 "src/parse-gram.y" /* yacc.c:1648 */
- { grammar_current_rule_merge_set ((yyvsp[0].uniqstr), (yylsp[0])); insert_after(2, "</RHSMerge>"); insert_before(1, "<RHSMerge>"); }
-#line 2700 "src/parse-gram.c" /* yacc.c:1648 */
+#line 775 "src/parse-gram.y" /* yacc.c:1648 */
+ { grammar_current_rule_merge_set ((yyvsp[0].uniqstr), (yylsp[0])); /*}*/
+ insert_after(2, "</PYACC_Section2_Rules_RHSes_RHS_Merge>");
+ insert_before(1, "<PYACC_Section2_Rules_RHSes_RHS_Merge>");
+ }
+#line 2809 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 95:
-#line 678 "src/parse-gram.y" /* yacc.c:1648 */
- { (yyval.named_ref) = 0; insert_before(0, "<NoNamedRef />"); }
-#line 2706 "src/parse-gram.c" /* yacc.c:1648 */
+#line 782 "src/parse-gram.y" /* yacc.c:1648 */
+ { (yyval.named_ref) = 0; }
+#line 2815 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 96:
-#line 679 "src/parse-gram.y" /* yacc.c:1648 */
+#line 783 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.named_ref) = named_ref_new ((yyvsp[0].uniqstr), (yylsp[0])); }
-#line 2712 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2821 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 98:
-#line 690 "src/parse-gram.y" /* yacc.c:1648 */
+#line 794 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.uniqstr) = uniqstr_new ((yyvsp[0].code)); }
-#line 2718 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2827 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 99:
-#line 715 "src/parse-gram.y" /* yacc.c:1648 */
- { (yyval.value).kind = muscle_keyword; (yyval.value).chars = ""; insert_before(0, "<NoValue />"); }
-#line 2724 "src/parse-gram.c" /* yacc.c:1648 */
+#line 819 "src/parse-gram.y" /* yacc.c:1648 */
+ { (yyval.value).kind = muscle_keyword; (yyval.value).chars = ""; }
+#line 2833 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 100:
-#line 716 "src/parse-gram.y" /* yacc.c:1648 */
+#line 820 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.value).kind = muscle_keyword; (yyval.value).chars = (yyvsp[0].uniqstr); }
-#line 2730 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2839 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 101:
-#line 717 "src/parse-gram.y" /* yacc.c:1648 */
+#line 821 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.value).kind = muscle_string; (yyval.value).chars = (yyvsp[0].code); }
-#line 2736 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2845 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 102:
-#line 718 "src/parse-gram.y" /* yacc.c:1648 */
+#line 822 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.value).kind = muscle_code; (yyval.value).chars = strip_braces ((yyvsp[0].code)); }
-#line 2742 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2851 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 103:
-#line 731 "src/parse-gram.y" /* yacc.c:1648 */
+#line 835 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.symbol) = symbol_from_uniqstr ((yyvsp[0].uniqstr), (yylsp[0])); }
-#line 2748 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2857 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 104:
-#line 733 "src/parse-gram.y" /* yacc.c:1648 */
+#line 837 "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 2758 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2867 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 105:
-#line 741 "src/parse-gram.y" /* yacc.c:1648 */
+#line 845 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.symbol) = symbol_from_uniqstr ((yyvsp[0].uniqstr), (yylsp[0])); }
-#line 2764 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2873 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 108:
-#line 753 "src/parse-gram.y" /* yacc.c:1648 */
+#line 857 "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 2773 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2882 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 110:
-#line 762 "src/parse-gram.y" /* yacc.c:1648 */
+#line 866 "src/parse-gram.y" /* yacc.c:1648 */
{
muscle_code_grow ("epilogue", translate_code ((yyvsp[0].code), (yylsp[0]), true), (yylsp[0]));
code_scanner_last_string_free ();
- insert_after(1, "</Sect3>");
- insert_after(0, "<Sect3>");
+ insert_after(1, "</PYACC_Section3>");
+ insert_after(0, "<PYACC_Section3>");
}
-#line 2784 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2893 "src/parse-gram.c" /* yacc.c:1648 */
break;
-#line 2788 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2897 "src/parse-gram.c" /* yacc.c:1648 */
default: break;
}
if (yychar_backup != yychar)
#endif
return yyresult;
}
-#line 770 "src/parse-gram.y" /* yacc.c:1907 */
+#line 874 "src/parse-gram.y" /* yacc.c:1907 */
/* Return the location of the left-hand side of a rule whose
param_parse = 1 << 1,
param_both = param_lex | param_parse
} param_type;
-#line 694 "src/parse-gram.y" /* yacc.c:1910 */
+#line 798 "src/parse-gram.y" /* yacc.c:1910 */
#include "muscle-tab.h"
#line 68 "src/parse-gram.h" /* yacc.c:1910 */
named_ref *named_ref;
#line 241 "src/parse-gram.y" /* yacc.c:1910 */
param_type param;
-#line 415 "src/parse-gram.y" /* yacc.c:1910 */
+#line 496 "src/parse-gram.y" /* yacc.c:1910 */
code_props_type code_type;
-#line 696 "src/parse-gram.y" /* yacc.c:1910 */
+#line 800 "src/parse-gram.y" /* yacc.c:1910 */
struct
{
input:
prologue_declarations "%%" grammar epilogue.opt
{
- insert_after(2, "</Sect2>");
- insert_before(2, "<Sect2>");
- insert_after(0, "</Sect1>");
- insert_before(0, "<Sect1>");
+ insert_after(2, "</PYACC_Section2>");
+ insert_before(2, "<PYACC_Section2>");
+ insert_after(0, "</PYACC_Section1>");
+ insert_before(0, "<PYACC_Section1>");
}
;
prologue_declarations:
%empty
+ {
+ /* in this case, want empty rule associated with stuff on the right of us */
+ /* therefore, move inter-token text from the right of us over to the left */
+ if (yychar == YYEMPTY)
+ yychar = yylex(&yylval, &yylloc);
+ char *temp = piece[piece2 + 1];
+ piece[piece2 + 1] = piece[piece2]; /* empty */
+ piece[piece2] = piece[piece2 - 1]; /* empty */
+ piece[piece2 - 1] = temp;
+ }
| prologue_declarations prologue_declaration
;
| "%<flag>"
{
muscle_percent_define_ensure ($1, @1, true);
+ insert_after(0, "</PYACC_Section1_Flag>");
+ insert_before(0, "<PYACC_Section1_Flag>");
}
| "%define" variable value
{
muscle_percent_define_insert ($2, @2, $3.kind, $3.chars,
MUSCLE_PERCENT_DEFINE_GRAMMAR_FILE);
+ insert_after(2, "</PYACC_Section1_Define>");
+ insert_before(0, "<PYACC_Section1_Define>");
}
-| "%defines" { defines_flag = true; }
+| "%defines" { defines_flag = true; /*}*/
+ insert_after(0, "</PYACC_Section1_Define>");
+ insert_before(0, "<PYACC_Section1_Define>");
+ }
| "%defines" STRING
{
defines_flag = true;
spec_defines_file = xstrdup ($2);
+ insert_after(1, "</PYACC_Section1_Define>");
+ insert_before(0, "<PYACC_Section1_Define>");
}
| "%error-verbose"
{
muscle_percent_define_insert ("parse.error", @1, muscle_keyword,
"verbose",
MUSCLE_PERCENT_DEFINE_GRAMMAR_FILE);
+ insert_after(0, "</PYACC_Section1_ErrorVerbose>");
+ insert_before(0, "<PYACC_Section1_ErrorVerbose>");
}
-| "%expect" INT { expected_sr_conflicts = $2; }
-| "%expect-rr" INT { expected_rr_conflicts = $2; }
-| "%file-prefix" STRING { spec_file_prefix = $2; }
+| "%expect" INT { expected_sr_conflicts = $2; /*}*/
+ insert_after(1, "</PYACC_Section1_Expect>");
+ insert_before(0, "<PYACC_Section1_Expect>");
+ }
+| "%expect-rr" INT { expected_rr_conflicts = $2; /*}*/
+ insert_after(1, "</PYACC_Section1_ExpectRR>");
+ insert_before(0, "<PYACC_Section1_ExpectRR>");
+ }
+| "%file-prefix" STRING { spec_file_prefix = $2; /*}*/
+ insert_after(1, "</PYACC_Section1_FilePrefix>");
+ insert_before(0, "<PYACC_Section1_FilePrefix>");
+ }
| "%glr-parser"
{
nondeterministic_parser = true;
glr_parser = true;
+ insert_after(0, "</PYACC_Section1_GLRParser>");
+ insert_before(0, "<PYACC_Section1_GLRParser>");
}
| "%initial-action" "{...}"
{
muscle_code_grow ("initial_action", translate_code ($2, @2, false), @2);
code_scanner_last_string_free ();
+ insert_after(1, "</PYACC_Section1_InitialAction>");
+ insert_before(0, "<PYACC_Section1_InitialAction>");
}
-| "%language" STRING { language_argmatch ($2, grammar_prio, @1); }
-| "%name-prefix" STRING { spec_name_prefix = $2; }
-| "%no-lines" { no_lines_flag = true; }
-| "%nondeterministic-parser" { nondeterministic_parser = true; }
-| "%output" STRING { spec_outfile = $2; }
-| "%param" { current_param = $1; } params { current_param = param_none; }
-| "%require" STRING { version_check (&@2, $2); }
+| "%language" STRING { language_argmatch ($2, grammar_prio, @1); /*}*/
+ insert_after(1, "</PYACC_Section1_Language>");
+ insert_before(0, "<PYACC_Section1_Language>");
+ }
+| "%name-prefix" STRING { spec_name_prefix = $2; /*}*/
+ insert_after(1, "</PYACC_Section1_NamePrefix>");
+ insert_before(0, "<PYACC_Section1_NamePrefix>");
+ }
+| "%no-lines" { no_lines_flag = true; /*}*/
+ insert_after(0, "</PYACC_Section1_Lines>");
+ insert_before(0, "<PYACC_Section1_Lines value=\"false\">");
+ }
+| "%nondeterministic-parser" { nondeterministic_parser = true; /*}*/
+ insert_after(0, "</PYACC_Section1_NonDeterministicParser>");
+ insert_before(0, "<PYACC_Section1_NonDeterministicParser>");
+ }
+| "%output" STRING { spec_outfile = $2; /*}*/
+ insert_after(1, "</PYACC_Section1_Output>");
+ insert_before(0, "<PYACC_Section1_Output>");
+ }
+| "%param" { current_param = $1; } params { current_param = param_none; /*}*/
+ insert_after(2, "</PYACC_Section1_Param>");
+ insert_before(0, "<PYACC_Section1_Param>");
+ }
+| "%require" STRING { version_check (&@2, $2); /*}*/
+ insert_after(1, "</PYACC_Section1_Require>");
+ insert_before(0, "<PYACC_Section1_Require>");
+ }
| "%skeleton" STRING
{
char const *skeleton_user = $2;
free (skeleton_build);
}
skeleton_arg (skeleton_user, grammar_prio, @1);
+ insert_after(1, "</PYACC_Section1_Skeleton>");
+ insert_before(0, "<PYACC_Section1_Skeleton>");
}
-| "%token-table" { token_table_flag = true; }
-| "%verbose" { report_flag |= report_states; }
-| "%yacc" { yacc_flag = true; }
+| "%token-table" { token_table_flag = true; /*}*/
+ insert_after(0, "</PYACC_Section1_TokenTable>");
+ insert_before(0, "<PYACC_Section1_TokenTable>");
+ }
+| "%verbose" { report_flag |= report_states; /*}*/
+ insert_after(0, "</PYACC_Section1_Verbose>");
+ insert_before(0, "<PYACC_Section1_Verbose>");
+ }
+| "%yacc" { yacc_flag = true; /*}*/
+ insert_after(0, "</PYACC_Section1_YACC>");
+ insert_before(0, "<PYACC_Section1_YACC>");
+ }
| /*FIXME: Err? What is this horror doing here? */ ";"
;
| "%start" symbol
{
grammar_start_symbol_set ($2, @2);
+ insert_after(1, "</PYACC_Section1Or2_Start>");
+ insert_before(0, "<PYACC_Section1Or2_Start>");
}
| code_props_type "{...}" generic_symlist
{
symbol_list_code_props_set (list, $1, &code);
symbol_list_free ($3);
}
+ insert_after(2, "</PYACC_Section1Or2_CodeProps>");
+ insert_after(2, "</PYACC_Section1Or2_CodeProps_GenericSymList>");
+ insert_before(2, "<PYACC_Section1Or2_CodeProps_GenericSymList>");
+ sprintf(piece_temp, "<PYACC_Section1Or2_CodeProps type=\"%d\">", $1);
+ insert_before(0, piece_temp);
}
| "%default-prec"
{
default_prec = true;
- }
+ insert_after(0, "</PYACC_Section1Or2_DefaultPrec>");
+ insert_before(0, "<PYACC_Section1Or2_DefaultPrec value=\"true\">");
+ }
| "%no-default-prec"
{
default_prec = false;
+ insert_after(0, "</PYACC_Section1Or2_DefaultPrec>");
+ insert_before(0, "<PYACC_Section1Or2_DefaultPrec>");
}
| "%code" "{...}"
{
muscle_code_grow ("percent_code()",
translate_code_braceless ($2, @2), @2);
code_scanner_last_string_free ();
+ insert_after(1, "</PYACC_Section1Or2_Code>");
+ insert_before(0, "<PYACC_Section1Or2_Code><PYACC_IDNone />");
}
| "%code" ID "{...}"
{
muscle_percent_code_grow ($2, @2, translate_code_braceless ($3, @3), @3);
code_scanner_last_string_free ();
+ insert_after(2, "</PYACC_Section1Or2_Code>");
+ insert_before(0, "<PYACC_Section1Or2_Code>");
}
;
%token PERCENT_UNION "%union";
union_name:
- %empty { insert_before(0, "<NoId />"); }
+ %empty { insert_before(0, "<PYACC_IDNone />"); }
| ID { muscle_percent_define_insert ("api.value.union.name",
@1, muscle_keyword, $1,
MUSCLE_PERCENT_DEFINE_GRAMMAR_FILE); }
union_seen = true;
muscle_code_grow ("union_members", translate_code_braceless ($3, @3), @3);
code_scanner_last_string_free ();
- insert_after(2, "</PercentUnion>");
- insert_before(0, "<PercentUnion>");
+ insert_after(2, "</PYACC_Section1Or2_Union>");
+ insert_before(0, "<PYACC_Section1Or2_Union>");
}
;
{
current_class = unknown_sym;
current_type = NULL;
- insert_after(2, "</PercentNTerm>");
- /*insert_after(2, "</SymbolDefs>");*/
- /*insert_before(2, "<SymbolDefs>");*/
- insert_before(0, "<PercentNTerm>");
+ insert_after(2, "</PYACC_Section1Or2_NTerm>");
+ insert_before(0, "<PYACC_Section1Or2_NTerm>");
}
| "%token" { current_class = token_sym; } symbol_defs.1
{
current_class = unknown_sym;
current_type = NULL;
- insert_after(2, "</PercentToken>");
- /*insert_after(2, "</SymbolDefs>");*/
- /*insert_before(2, "<SymbolDefs>");*/
- insert_before(0, "<PercentToken>");
+ insert_after(2, "</PYACC_Section1Or2_Token>");
+ insert_before(0, "<PYACC_Section1Or2_Token>");
}
| "%type" TAG symbols.1
{
for (list = $3; list; list = list->next)
symbol_type_set (list->content.sym, $2, @2);
symbol_list_free ($3);
- insert_after(2, "</PercentType>");
- insert_after(2, "</Symbols>");
- insert_before(2, "<Symbols>");
- insert_before(0, "<PercentType>");
+ insert_after(2, "</PYACC_Section1Or2_Type>");
+ insert_after(2, "</PYACC_Section1Or2_Type_Symbols>");
+ insert_before(2, "<PYACC_Section1Or2_Type_Symbols>");
+ insert_before(0, "<PYACC_Section1Or2_Type>");
}
;
}
symbol_list_free ($3);
current_type = NULL;
- insert_after(2, "</PrecedenceDeclaration>");
- insert_after(2, "</SymbolsPrec>");
- insert_before(2, "<SymbolsPrec>");
- insert_before(0, "<PrecedenceDeclaration>");
+ insert_after(2, "</PYACC_Section1Or2_Precedence>");
+ insert_after(2, "</PYACC_Section1Or2_Precedence_Symbols>");
+ insert_before(2, "<PYACC_Section1Or2_Precedence_Symbols>");
+ sprintf(piece_temp, "<PYACC_Section1Or2_Precedence type=\"%d\">", $1);
+ insert_before(0, piece_temp);
}
;
precedence_declarator:
- "%left" { $$ = left_assoc; insert_after(0, "</PrecedenceDeclaration_Left>"); insert_before(0, "<PrecedenceDeclaration_Left>"); }
-| "%right" { $$ = right_assoc; insert_after(0, "</PrecedenceDeclaration_Right>"); insert_before(0, "<PrecedenceDeclaration_Right>"); }
-| "%nonassoc" { $$ = non_assoc; insert_after(0, "</PrecedenceDeclaration_Non>"); insert_before(0, "<PrecedenceDeclaration_Non>"); }
-| "%precedence" { $$ = precedence_assoc; insert_after(0, "</PrecedenceDeclaration_Precedence>"); insert_before(0, "<PrecedenceDeclaration_Precedence>"); }
+ "%left" { $$ = left_assoc; }
+| "%right" { $$ = right_assoc; }
+| "%nonassoc" { $$ = non_assoc; }
+| "%precedence" { $$ = precedence_assoc; }
;
tag.opt:
- %empty { current_type = NULL; insert_before(0, "<NoTag />"); }
+ %empty { current_type = NULL; /*}*/
+ insert_before(0, "<PYACC_TagNone />");
+ }
| TAG { current_type = $1; tag_seen = true; }
;
$$ = $1;
symbol_user_token_number_set ($1, $2, @2);
symbol_class_set ($1, token_sym, @1, false);
- insert_after(1, "</SymbolInt>");
- insert_before(0, "<SymbolInt>");
+ insert_after(1, "<PYACC_Section1Or2_Precedence_Symbols_Symbol>");
+ insert_before(0, "<PYACC_Sectino1Or2_Precedence_Symbols_Symbol>");
}
;
tag:
TAG
-| "<*>" { $$ = uniqstr_new ("*"); }
-| "<>" { $$ = uniqstr_new (""); }
+ {
+ insert_after(0, "</PYACC_Tag");
+ insert_before(0, "<PYACC_Tag type=\"0\">");
+ }
+| "<*>" { $$ = uniqstr_new ("*"); /*}*/
+ insert_after(0, "</PYACC_Tag");
+ insert_before(0, "<PYACC_Tag type=\"1\">");
+ }
+| "<>" { $$ = uniqstr_new (""); /*}*/
+ insert_after(0, "</PYACC_Tag");
+ insert_before(0, "<PYACC_Tag type=\"2\">");
+ }
;
/* One token definition. */
symbol_class_set ($1, current_class, @1, true);
symbol_type_set ($1, current_type, @1);
symbol_user_token_number_set ($1, $2, @2);
- insert_after(1, "</IdInt>");
- insert_before(0, "<IdInt>");
+ insert_after(1, "</PYACC_Section1Or2_SymbolDef>");
+ insert_before(0, "<PYACC_Section1Or2_SymbolDef>");
}
| id string_as_id
{
symbol_class_set ($1, current_class, @1, true);
symbol_type_set ($1, current_type, @1);
symbol_make_alias ($1, $2, @$);
- insert_after(1, "</IdString>");
- insert_before(0, "<IdString>");
+ insert_after(1, "</PYACC_Section1Or2_SymbolDef>");
+ insert_after(0, "<PYACC_IntNone />");
+ insert_before(0, "<PYACC_Section1Or2_SymbolDef>");
}
| id INT string_as_id
{
symbol_type_set ($1, current_type, @1);
symbol_user_token_number_set ($1, $2, @2);
symbol_make_alias ($1, $3, @$);
- insert_after(1, "</IdIntString>");
- insert_before(0, "<IdIntString>");
+ insert_after(2, "</PYACC_Section1Or2_SymbolDef>");
+ insert_before(0, "<PYACC_Section1Or2_SymbolDef>");
}
;
rules_or_grammar_declaration:
rules
| grammar_declaration ";"
- {
- /* this should be done inside the rule with a more descriptive tag */
- insert_after(0, "</GrammarDeclaration>");
- insert_before(0, "<GrammarDeclaration>");
- }
| error ";"
{
yyerrok;
{
/* Free the current lhs. */
current_lhs (0, @1, 0);
- insert_after(3, "</Rules>");
- insert_after(3, "</RHSes>");
- insert_before(3, "<RHSes>");
- insert_before(0, "<Rules>");
+ insert_after(3, "</PYACC_Section2_Rules>");
+ insert_after(3, "</PYACC_Section2_Rules_RHSes>");
+ insert_before(3, "<PYACC_Section2_Rules_RHSes>");
+ insert_before(0, "<PYACC_Section2_Rules>");
}
;
rhses.1:
rhs { grammar_current_rule_end (@1); /*}*/
- insert_after(0, "</RHS>");
- insert_before(0, "<RHS>");
+ insert_after(0, "</PYACC_Section2_Rules_RHSes_RHS>");
+ insert_before(0, "<PYACC_Section2_Rules_RHSes_RHS>");
}
| rhses.1 "|" rhs { grammar_current_rule_end (@3); /*}*/
- insert_after(2, "</RHS>");
- insert_before(2, "<RHS>");
+ insert_after(2, "</PYACC_Section2_Rules_RHSes_RHS>");
+ insert_before(2, "<PYACC_Section2_Rules_RHSes_RHS>");
}
| rhses.1 ";"
;
{ grammar_current_rule_begin (current_lhs_symbol, current_lhs_location,
current_lhs_named_ref); }
| rhs symbol named_ref.opt
- { grammar_current_rule_symbol_append ($2, @2, $3); insert_after(2, "</RHSSymbol>"); insert_before(1, "<RHSSymbol>"); }
+ { grammar_current_rule_symbol_append ($2, @2, $3); /*}*/
+ insert_after(2, "</PYACC_Section2_Rules_RHSes_RHS_Symbol>");
+ insert_before(1, "<PYACC_Section2_Rules_RHSes_RHS_Symbol>");
+ }
| rhs "{...}" named_ref.opt
- { grammar_current_rule_action_append ($2, @2, $3, false); insert_after(2, "</RHSAction>"); insert_after(0, "<RHSAction>"); }
+ { grammar_current_rule_action_append ($2, @2, $3, false); /*}*/
+ insert_after(2, "</PYACC_Section2_Rules_RHSes_RHS_Action>");
+ insert_after(0, "<PYACC_Section2_Rules_RHSes_RHS_Action>");
+ }
| rhs "%?{...}"
{ grammar_current_rule_action_append ($2, @2, NULL, true); }
| rhs "%empty"
- { grammar_current_rule_empty_set (@2); insert_after(1, "</RHSEmpty>"); insert_before(1, "<RHSEmpty>"); }
+ { grammar_current_rule_empty_set (@2); /*}*/
+ insert_after(1, "</PYACC_Section2_Rules_RHSes_RHS_Empty>");
+ insert_before(1, "<PYACC_Section2_Rules_RHSes_RHS_Empty>");
+ }
| rhs "%prec" symbol
- { grammar_current_rule_prec_set ($3, @3); insert_after(2, "</RHSPrec>"); insert_before(1, "<RHSPrec>"); }
+ { grammar_current_rule_prec_set ($3, @3); /*}*/
+ insert_after(2, "</PYACC_Section2_Rules_RHSes_RHS_Prec>");
+ insert_before(1, "<PYACC_Section2_Rules_RHSes_RHS_Prec>");
+ }
| rhs "%dprec" INT
- { grammar_current_rule_dprec_set ($3, @3); insert_after(2, "</RHSDPrec>"); insert_before(1, "<RHSDPrec>"); }
+ { grammar_current_rule_dprec_set ($3, @3); /*}*/
+ insert_after(2, "</PYACC_Section2_Rules_RHSes_RHS_DPrec>");
+ insert_before(1, "<PYACC_Section2_Rules_RHSes_RHS_DPrec>");
+ }
| rhs "%merge" TAG
- { grammar_current_rule_merge_set ($3, @3); insert_after(2, "</RHSMerge>"); insert_before(1, "<RHSMerge>"); }
+ { grammar_current_rule_merge_set ($3, @3); /*}*/
+ insert_after(2, "</PYACC_Section2_Rules_RHSes_RHS_Merge>");
+ insert_before(1, "<PYACC_Section2_Rules_RHSes_RHS_Merge>");
+ }
;
named_ref.opt:
- %empty { $$ = 0; insert_before(0, "<NoNamedRef />"); }
+ %empty { $$ = 0; }
| BRACKETED_ID { $$ = named_ref_new ($1, @1); }
;
} <value>;
value:
- %empty { $$.kind = muscle_keyword; $$.chars = ""; insert_before(0, "<NoValue />"); }
+ %empty { $$.kind = muscle_keyword; $$.chars = ""; }
| ID { $$.kind = muscle_keyword; $$.chars = $1; }
| STRING { $$.kind = muscle_string; $$.chars = $1; }
| "{...}" { $$.kind = muscle_code; $$.chars = strip_braces ($1); }
{
muscle_code_grow ("epilogue", translate_code ($2, @2, true), @2);
code_scanner_last_string_free ();
- insert_after(1, "</Sect3>");
- insert_after(0, "<Sect3>");
+ insert_after(1, "</PYACC_Section3>");
+ insert_after(0, "<PYACC_Section3>");
}
;
gram_scanner_initialize ();
#if 1
void piece_append(const char *str);
- piece_append("<RefList><PYACCSpecification ref=\"0\"><Section1>");
+ piece_append("<RefList><PYACC ref=\"0\">");
#endif
gram_parse ();
#if 1
- piece_append("</PYACCSpecification></RefList>");
+ piece_append("</PYACC></RefList>");
extern char *piece[];
extern int piece1;
static yyconst flex_int16_t yy_rule_linenum[130] =
{ 0,
- 185, 188, 189, 190, 198, 216, 217, 218, 219, 220,
- 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
- 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
- 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
- 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
- 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
- 273, 275, 279, 280, 281, 283, 295, 309, 326, 331,
- 334, 337, 340, 350, 359, 360, 361, 369, 376, 383,
- 403, 413, 428, 438, 465, 478, 494, 509, 526, 527,
- 538, 549, 550, 562, 571, 581, 601, 613, 628, 629,
-
- 640, 655, 671, 672, 673, 674, 675, 676, 677, 680,
- 682, 696, 714, 719, 720, 726, 727, 738, 746, 754,
- 760, 776, 777, 781, 788, 806, 828, 862, 863
+ 189, 192, 193, 194, 202, 220, 221, 222, 223, 224,
+ 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
+ 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
+ 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
+ 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
+ 277, 279, 283, 284, 285, 287, 299, 313, 330, 335,
+ 338, 341, 344, 356, 367, 368, 369, 377, 384, 391,
+ 411, 421, 436, 446, 473, 486, 502, 517, 534, 535,
+ 546, 557, 558, 570, 586, 596, 623, 635, 656, 657,
+
+ 668, 684, 701, 702, 703, 704, 705, 706, 707, 710,
+ 712, 727, 749, 754, 755, 761, 762, 773, 779, 785,
+ 791, 807, 808, 812, 819, 844, 873, 914, 915
} ;
/* The intent behind this definition is that it'll catch
static void unexpected_eof (boundary, char const *);
static void unexpected_newline (boundary, char const *);
+/* Nick */
+static int in_text;
+static void flush_text(void);
+
/* A C-like comment in directives/rules. */
/* Strings and characters in directives/rules. */
white space between the backslash and the newline. */
/* An equal sign, with optional leading whitespaces. This is used in some
deprecated constructs. */
-#line 1141 "src/scan-gram.c"
+#line 1145 "src/scan-gram.c"
#define INITIAL 0
#define SC_YACC_COMMENT 1
register int yy_act;
/* %% [7.0] user's declarations go here */
-#line 146 "src/scan-gram.l"
+#line 150 "src/scan-gram.l"
/* Nesting level. Either for nested braces, or nested angle brackets
| Scanning white space. |
`-----------------------*/
-#line 1443 "src/scan-gram.c"
+#line 1447 "src/scan-gram.c"
if ( !(yy_init) )
{
/* Comments and white space. */
case 1:
YY_RULE_SETUP
-#line 185 "src/scan-gram.l"
+#line 189 "src/scan-gram.l"
{
complain (loc, Wother, _("stray ',' treated as white space"));
}
YY_BREAK
case 2:
/* rule 2 can match eol */
-#line 189 "src/scan-gram.l"
+#line 193 "src/scan-gram.l"
case 3:
/* rule 3 can match eol */
YY_RULE_SETUP
-#line 189 "src/scan-gram.l"
+#line 193 "src/scan-gram.l"
continue;
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 190 "src/scan-gram.l"
+#line 194 "src/scan-gram.l"
{
token_start = loc->start;
context_state = YY_START;
case 5:
/* rule 5 can match eol */
YY_RULE_SETUP
-#line 198 "src/scan-gram.l"
+#line 202 "src/scan-gram.l"
{
handle_syncline (gram_text + sizeof "#line " - 1, *loc);
}
case 6:
YY_RULE_SETUP
-#line 216 "src/scan-gram.l"
+#line 220 "src/scan-gram.l"
return PERCENT_NONASSOC;
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 217 "src/scan-gram.l"
+#line 221 "src/scan-gram.l"
return PERCENT_CODE;
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 218 "src/scan-gram.l"
+#line 222 "src/scan-gram.l"
RETURN_PERCENT_FLAG("parse.trace");
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 219 "src/scan-gram.l"
+#line 223 "src/scan-gram.l"
return PERCENT_DEFAULT_PREC;
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 220 "src/scan-gram.l"
+#line 224 "src/scan-gram.l"
return PERCENT_DEFINE;
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 221 "src/scan-gram.l"
+#line 225 "src/scan-gram.l"
return PERCENT_DEFINES;
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 222 "src/scan-gram.l"
+#line 226 "src/scan-gram.l"
return PERCENT_DESTRUCTOR;
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 223 "src/scan-gram.l"
+#line 227 "src/scan-gram.l"
return PERCENT_DPREC;
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 224 "src/scan-gram.l"
+#line 228 "src/scan-gram.l"
return PERCENT_EMPTY;
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 225 "src/scan-gram.l"
+#line 229 "src/scan-gram.l"
return PERCENT_ERROR_VERBOSE;
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 226 "src/scan-gram.l"
+#line 230 "src/scan-gram.l"
return PERCENT_EXPECT;
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 227 "src/scan-gram.l"
+#line 231 "src/scan-gram.l"
return PERCENT_EXPECT_RR;
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 228 "src/scan-gram.l"
+#line 232 "src/scan-gram.l"
return PERCENT_FILE_PREFIX;
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 229 "src/scan-gram.l"
+#line 233 "src/scan-gram.l"
return PERCENT_YACC;
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 230 "src/scan-gram.l"
+#line 234 "src/scan-gram.l"
return PERCENT_INITIAL_ACTION;
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 231 "src/scan-gram.l"
+#line 235 "src/scan-gram.l"
return PERCENT_GLR_PARSER;
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 232 "src/scan-gram.l"
+#line 236 "src/scan-gram.l"
return PERCENT_LANGUAGE;
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 233 "src/scan-gram.l"
+#line 237 "src/scan-gram.l"
return PERCENT_LEFT;
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 234 "src/scan-gram.l"
+#line 238 "src/scan-gram.l"
RETURN_PERCENT_PARAM(lex);
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 235 "src/scan-gram.l"
+#line 239 "src/scan-gram.l"
RETURN_PERCENT_FLAG("locations");
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 236 "src/scan-gram.l"
+#line 240 "src/scan-gram.l"
return PERCENT_MERGE;
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 237 "src/scan-gram.l"
+#line 241 "src/scan-gram.l"
return PERCENT_NAME_PREFIX;
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 238 "src/scan-gram.l"
+#line 242 "src/scan-gram.l"
return PERCENT_NO_DEFAULT_PREC;
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 239 "src/scan-gram.l"
+#line 243 "src/scan-gram.l"
return PERCENT_NO_LINES;
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 240 "src/scan-gram.l"
+#line 244 "src/scan-gram.l"
return PERCENT_NONASSOC;
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 241 "src/scan-gram.l"
+#line 245 "src/scan-gram.l"
return PERCENT_NONDETERMINISTIC_PARSER;
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 242 "src/scan-gram.l"
+#line 246 "src/scan-gram.l"
return PERCENT_NTERM;
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 243 "src/scan-gram.l"
+#line 247 "src/scan-gram.l"
return PERCENT_OUTPUT;
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 244 "src/scan-gram.l"
+#line 248 "src/scan-gram.l"
RETURN_PERCENT_PARAM(both);
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 245 "src/scan-gram.l"
+#line 249 "src/scan-gram.l"
RETURN_PERCENT_PARAM(parse);
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 246 "src/scan-gram.l"
+#line 250 "src/scan-gram.l"
return PERCENT_PREC;
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 247 "src/scan-gram.l"
+#line 251 "src/scan-gram.l"
return PERCENT_PRECEDENCE;
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 248 "src/scan-gram.l"
+#line 252 "src/scan-gram.l"
return PERCENT_PRINTER;
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 249 "src/scan-gram.l"
+#line 253 "src/scan-gram.l"
RETURN_PERCENT_FLAG("api.pure");
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 250 "src/scan-gram.l"
+#line 254 "src/scan-gram.l"
return PERCENT_REQUIRE;
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 251 "src/scan-gram.l"
+#line 255 "src/scan-gram.l"
return PERCENT_RIGHT;
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 252 "src/scan-gram.l"
+#line 256 "src/scan-gram.l"
return PERCENT_SKELETON;
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 253 "src/scan-gram.l"
+#line 257 "src/scan-gram.l"
return PERCENT_START;
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 254 "src/scan-gram.l"
+#line 258 "src/scan-gram.l"
return PERCENT_TOKEN;
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 255 "src/scan-gram.l"
+#line 259 "src/scan-gram.l"
return PERCENT_TOKEN;
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 256 "src/scan-gram.l"
+#line 260 "src/scan-gram.l"
return PERCENT_TOKEN_TABLE;
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 257 "src/scan-gram.l"
+#line 261 "src/scan-gram.l"
return PERCENT_TYPE;
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 258 "src/scan-gram.l"
+#line 262 "src/scan-gram.l"
return PERCENT_UNION;
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 259 "src/scan-gram.l"
+#line 263 "src/scan-gram.l"
return PERCENT_VERBOSE;
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 260 "src/scan-gram.l"
+#line 264 "src/scan-gram.l"
return PERCENT_YACC;
YY_BREAK
/* deprecated */
case 51:
YY_RULE_SETUP
-#line 263 "src/scan-gram.l"
+#line 267 "src/scan-gram.l"
DEPRECATED("%default-prec");
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 264 "src/scan-gram.l"
+#line 268 "src/scan-gram.l"
DEPRECATED("%define parse.error verbose");
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 265 "src/scan-gram.l"
+#line 269 "src/scan-gram.l"
DEPRECATED("%expect-rr");
YY_BREAK
case 54:
/* rule 54 can match eol */
YY_RULE_SETUP
-#line 266 "src/scan-gram.l"
+#line 270 "src/scan-gram.l"
DEPRECATED("%file-prefix");
YY_BREAK
case 55:
YY_RULE_SETUP
-#line 267 "src/scan-gram.l"
+#line 271 "src/scan-gram.l"
DEPRECATED("%fixed-output-files");
YY_BREAK
case 56:
/* rule 56 can match eol */
YY_RULE_SETUP
-#line 268 "src/scan-gram.l"
+#line 272 "src/scan-gram.l"
DEPRECATED("%name-prefix");
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 269 "src/scan-gram.l"
+#line 273 "src/scan-gram.l"
DEPRECATED("%no-default-prec");
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 270 "src/scan-gram.l"
+#line 274 "src/scan-gram.l"
DEPRECATED("%no-lines");
YY_BREAK
case 59:
/* rule 59 can match eol */
YY_RULE_SETUP
-#line 271 "src/scan-gram.l"
+#line 275 "src/scan-gram.l"
DEPRECATED("%output");
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 272 "src/scan-gram.l"
+#line 276 "src/scan-gram.l"
DEPRECATED("%pure-parser");
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 273 "src/scan-gram.l"
+#line 277 "src/scan-gram.l"
DEPRECATED("%token-table");
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 275 "src/scan-gram.l"
+#line 279 "src/scan-gram.l"
{
complain (loc, complaint, _("invalid directive: %s"), quote (gram_text));
}
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 279 "src/scan-gram.l"
+#line 283 "src/scan-gram.l"
return EQUAL;
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 280 "src/scan-gram.l"
+#line 284 "src/scan-gram.l"
return PIPE;
YY_BREAK
case 65:
YY_RULE_SETUP
-#line 281 "src/scan-gram.l"
+#line 285 "src/scan-gram.l"
return SEMICOLON;
YY_BREAK
case 66:
YY_RULE_SETUP
-#line 283 "src/scan-gram.l"
+#line 287 "src/scan-gram.l"
{
val->uniqstr = uniqstr_new (gram_text);
id_loc = *loc;
bracketed_id_str = NULL;
BEGIN SC_AFTER_IDENTIFIER;
piece_pack();
- piece_append("<Id>");
+ piece_append("<PYACC_ID>");
flush();
- piece_append("</Id>");
+ piece_append("</PYACC_ID>");
piece_pack();
}
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 295 "src/scan-gram.l"
+#line 299 "src/scan-gram.l"
{
val->integer = scan_integer (gram_text, 10, *loc);
#if 1
piece_pack();
- sprintf(piece_temp, "<Int value=\"%d\">", val->integer);
+ sprintf(piece_temp, "<PYACC_Int value=\"%d\">", val->integer);
piece_append(piece_temp);
piece_esc(gram_text, yy_c_buf_p - gram_text);
- piece_append("</Int>");
+ piece_append("</PYACC_Int>");
piece_pack();
return ~INT;
#else
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 309 "src/scan-gram.l"
+#line 313 "src/scan-gram.l"
{
val->integer = scan_integer (gram_text, 16, *loc);
#if 1
piece_pack();
- sprintf(piece_temp, "<Int value=\"%d\">", val->integer);
+ sprintf(piece_temp, "<PYACC_Int value=\"%d\">", val->integer);
piece_append(piece_temp);
piece_esc(gram_text, yy_c_buf_p - gram_text);
- piece_append("</Integer>");
+ piece_append("</PYACC_Int>");
piece_pack();
return ~INT;
#else
accept "1FOO" as "1 FOO". */
case 69:
YY_RULE_SETUP
-#line 326 "src/scan-gram.l"
+#line 330 "src/scan-gram.l"
{
complain (loc, complaint, _("invalid identifier: %s"), quote (gram_text));
}
/* Characters. */
case 70:
YY_RULE_SETUP
-#line 331 "src/scan-gram.l"
-token_start = loc->start; BEGIN SC_ESCAPED_CHARACTER; flush(); piece_append("<EscapedCharacter>");
+#line 335 "src/scan-gram.l"
+token_start = loc->start; BEGIN SC_ESCAPED_CHARACTER; piece_pack(); piece_append("<PYACC_Char>"); in_text = 0;
YY_BREAK
/* Strings. */
case 71:
YY_RULE_SETUP
-#line 334 "src/scan-gram.l"
-token_start = loc->start; BEGIN SC_ESCAPED_STRING; flush(); piece_append("<EscapedString>");
+#line 338 "src/scan-gram.l"
+token_start = loc->start; BEGIN SC_ESCAPED_STRING; piece_pack(); piece_append("<PYACC_String>"); in_text = 0;
YY_BREAK
/* Prologue. */
case 72:
YY_RULE_SETUP
-#line 337 "src/scan-gram.l"
-code_start = loc->start; BEGIN SC_PROLOGUE; flush(); piece_append("<Prologue>");
+#line 341 "src/scan-gram.l"
+code_start = loc->start; BEGIN SC_PROLOGUE; piece_pack(); piece_append("<PYACC_Section1_Prologue>"); flush(); piece_append("<PYACC_Text>");
YY_BREAK
/* Code in between braces. */
case 73:
YY_RULE_SETUP
-#line 340 "src/scan-gram.l"
+#line 344 "src/scan-gram.l"
{
STRING_GROW;
nesting = 0;
code_start = loc->start;
BEGIN SC_BRACED_CODE;
+ piece_pack();
+ piece_append("<PYACC_BracedCode>");
flush();
- piece_append("<BracedCode>");
+ piece_append("<PYACC_Text>");
}
YY_BREAK
/* Semantic predicate. */
case 74:
/* rule 74 can match eol */
YY_RULE_SETUP
-#line 350 "src/scan-gram.l"
+#line 356 "src/scan-gram.l"
{
nesting = 0;
code_start = loc->start;
+ piece_pack();
+ piece_append("<PYACC_BracedPredicate>");
flush();
- piece_append("<Predicate>");
+ piece_append("<PYACC_Text>");
BEGIN SC_PREDICATE;
}
YY_BREAK
/* A type. */
case 75:
YY_RULE_SETUP
-#line 359 "src/scan-gram.l"
-piece_pack(); piece_append("<<TagAny>*</TagAny>>"); ++piece0; return ~TAG_ANY; /*return TAG_ANY;*/
+#line 367 "src/scan-gram.l"
+return TAG_ANY;
YY_BREAK
case 76:
YY_RULE_SETUP
-#line 360 "src/scan-gram.l"
-piece_pack(); piece_append("<<TagNone />>"); ++piece0; return ~TAG_NONE; /*return TAG_NONE;*/
+#line 368 "src/scan-gram.l"
+return TAG_NONE;
YY_BREAK
case 77:
YY_RULE_SETUP
-#line 361 "src/scan-gram.l"
+#line 369 "src/scan-gram.l"
{
nesting = 0;
token_start = loc->start;
BEGIN SC_TAG;
- flush();
+ piece_pack();
piece_append("<Tag>");
}
YY_BREAK
case 78:
YY_RULE_SETUP
-#line 369 "src/scan-gram.l"
+#line 377 "src/scan-gram.l"
{
static int percent_percent_count;
if (++percent_percent_count == 2)
YY_BREAK
case 79:
YY_RULE_SETUP
-#line 376 "src/scan-gram.l"
+#line 384 "src/scan-gram.l"
{
bracketed_id_str = NULL;
bracketed_id_start = loc->start;
YY_BREAK
case 80:
YY_RULE_SETUP
-#line 383 "src/scan-gram.l"
+#line 391 "src/scan-gram.l"
{
complain (loc, complaint, "%s: %s",
ngettext ("invalid character", "invalid characters", gram_leng),
}
YY_BREAK
case YY_STATE_EOF(INITIAL):
-#line 389 "src/scan-gram.l"
+#line 397 "src/scan-gram.l"
{
loc->start = loc->end = scanner_cursor;
yyterminate ();
case 81:
YY_RULE_SETUP
-#line 403 "src/scan-gram.l"
+#line 411 "src/scan-gram.l"
complain (loc, complaint, _("invalid null character"));
YY_BREAK
case 82:
YY_RULE_SETUP
-#line 413 "src/scan-gram.l"
+#line 421 "src/scan-gram.l"
{
if (bracketed_id_str) /* SHOULDN'T THIS BE if (!bracketed_id_str) ??? */
{
YY_BREAK
case 83:
YY_RULE_SETUP
-#line 428 "src/scan-gram.l"
+#line 436 "src/scan-gram.l"
{
BEGIN (bracketed_id_str ? SC_RETURN_BRACKETED_ID : INITIAL);
*loc = id_loc;
YY_BREAK
case 84:
YY_RULE_SETUP
-#line 438 "src/scan-gram.l"
+#line 446 "src/scan-gram.l"
{
ROLLBACK_CURRENT_TOKEN;
BEGIN (bracketed_id_str ? SC_RETURN_BRACKETED_ID : INITIAL);
}
YY_BREAK
case YY_STATE_EOF(SC_AFTER_IDENTIFIER):
-#line 448 "src/scan-gram.l"
+#line 456 "src/scan-gram.l"
{
BEGIN (bracketed_id_str ? SC_RETURN_BRACKETED_ID : INITIAL);
*loc = id_loc;
case 85:
YY_RULE_SETUP
-#line 465 "src/scan-gram.l"
+#line 473 "src/scan-gram.l"
{
if (bracketed_id_str)
{
YY_BREAK
case 86:
YY_RULE_SETUP
-#line 478 "src/scan-gram.l"
+#line 486 "src/scan-gram.l"
{
BEGIN bracketed_id_context_state;
if (bracketed_id_str)
YY_BREAK
case 87:
YY_RULE_SETUP
-#line 494 "src/scan-gram.l"
+#line 502 "src/scan-gram.l"
{
complain (loc, complaint, "%s: %s",
ngettext ("invalid character in bracketed name",
}
YY_BREAK
case YY_STATE_EOF(SC_BRACKETED_ID):
-#line 501 "src/scan-gram.l"
+#line 509 "src/scan-gram.l"
{
BEGIN bracketed_id_context_state;
unexpected_eof (bracketed_id_start, "]");
case 88:
YY_RULE_SETUP
-#line 509 "src/scan-gram.l"
+#line 517 "src/scan-gram.l"
{
ROLLBACK_CURRENT_TOKEN;
val->uniqstr = bracketed_id_str;
case 89:
YY_RULE_SETUP
-#line 526 "src/scan-gram.l"
+#line 534 "src/scan-gram.l"
BEGIN context_state;
YY_BREAK
case 90:
/* rule 90 can match eol */
YY_RULE_SETUP
-#line 527 "src/scan-gram.l"
+#line 535 "src/scan-gram.l"
continue;
YY_BREAK
case YY_STATE_EOF(SC_YACC_COMMENT):
-#line 528 "src/scan-gram.l"
+#line 536 "src/scan-gram.l"
unexpected_eof (token_start, "*/"); BEGIN context_state;
YY_BREAK
case 91:
/* rule 91 can match eol */
YY_RULE_SETUP
-#line 538 "src/scan-gram.l"
+#line 546 "src/scan-gram.l"
STRING_GROW; BEGIN context_state;
YY_BREAK
case YY_STATE_EOF(SC_COMMENT):
-#line 539 "src/scan-gram.l"
+#line 547 "src/scan-gram.l"
unexpected_eof (token_start, "*/"); BEGIN context_state;
YY_BREAK
case 92:
/* rule 92 can match eol */
YY_RULE_SETUP
-#line 549 "src/scan-gram.l"
+#line 557 "src/scan-gram.l"
STRING_GROW; BEGIN context_state;
YY_BREAK
case 93:
/* rule 93 can match eol */
YY_RULE_SETUP
-#line 550 "src/scan-gram.l"
+#line 558 "src/scan-gram.l"
STRING_GROW;
YY_BREAK
case YY_STATE_EOF(SC_LINE_COMMENT):
-#line 551 "src/scan-gram.l"
+#line 559 "src/scan-gram.l"
BEGIN context_state;
YY_BREAK
case 94:
YY_RULE_SETUP
-#line 562 "src/scan-gram.l"
+#line 570 "src/scan-gram.l"
{
STRING_FINISH;
loc->start = token_start;
val->code = last_string;
BEGIN INITIAL;
- piece_append("</EscapedString>");
+#if 1
+ flush_text();
+ piece_esc(gram_text, strlen(gram_text));
+ piece_append("</PYACC_String>");
+ piece_pack();
+ return ~STRING;
+#else
return STRING;
+#endif
}
YY_BREAK
case YY_STATE_EOF(SC_ESCAPED_STRING):
-#line 570 "src/scan-gram.l"
+#line 585 "src/scan-gram.l"
unexpected_eof (token_start, "\"");
YY_BREAK
case 95:
/* rule 95 can match eol */
YY_RULE_SETUP
-#line 571 "src/scan-gram.l"
+#line 586 "src/scan-gram.l"
unexpected_newline (token_start, "\"");
YY_BREAK
case 96:
YY_RULE_SETUP
-#line 581 "src/scan-gram.l"
+#line 596 "src/scan-gram.l"
{
STRING_FINISH;
loc->start = token_start;
_("extra characters in character literal"));
STRING_FREE;
BEGIN INITIAL;
- piece_append("</EscapedCharacter>");
+#if 1
+ flush_text();
+ piece_esc(gram_text, strlen(gram_text));
+ piece_append("</PYACC_Char>");
+ piece_pack();
+ return ~CHAR;
+#else
return CHAR;
+#endif
}
YY_BREAK
case 97:
/* rule 97 can match eol */
YY_RULE_SETUP
-#line 601 "src/scan-gram.l"
+#line 623 "src/scan-gram.l"
unexpected_newline (token_start, "'");
YY_BREAK
case YY_STATE_EOF(SC_ESCAPED_CHARACTER):
-#line 602 "src/scan-gram.l"
+#line 624 "src/scan-gram.l"
unexpected_eof (token_start, "'");
YY_BREAK
case 98:
YY_RULE_SETUP
-#line 613 "src/scan-gram.l"
+#line 635 "src/scan-gram.l"
{
--nesting;
if (nesting < 0)
val->uniqstr = uniqstr_new (last_string);
STRING_FREE;
BEGIN INITIAL;
+#if 1
+ piece_esc(gram_text, strlen(gram_text));
piece_append("</Tag>");
+ piece_pack();
+ return ~TAG;
+#else
return TAG;
+#endif
}
STRING_GROW;
}
case 99:
/* rule 99 can match eol */
YY_RULE_SETUP
-#line 628 "src/scan-gram.l"
+#line 656 "src/scan-gram.l"
STRING_GROW;
YY_BREAK
case 100:
YY_RULE_SETUP
-#line 629 "src/scan-gram.l"
+#line 657 "src/scan-gram.l"
STRING_GROW; nesting += gram_leng;
YY_BREAK
case YY_STATE_EOF(SC_TAG):
-#line 631 "src/scan-gram.l"
+#line 659 "src/scan-gram.l"
unexpected_eof (token_start, ">");
YY_BREAK
case 101:
YY_RULE_SETUP
-#line 640 "src/scan-gram.l"
+#line 668 "src/scan-gram.l"
{
unsigned long int c = strtoul (gram_text + 1, NULL, 8);
if (!c || UCHAR_MAX < c)
else
{
obstack_1grow (&obstack_for_string, c);
- sprintf(piece_temp, "<Escape char=\"%d\">", (int)c);
+ flush_text();
+ sprintf(piece_temp, "<PYACC_Escape char=\"%d\">", (int)c);
piece_append(piece_temp);
flush();
- piece_append("</Escape>");
+ piece_append("</PYACC_Escape>");
}
}
YY_BREAK
case 102:
YY_RULE_SETUP
-#line 655 "src/scan-gram.l"
+#line 684 "src/scan-gram.l"
{
verify (UCHAR_MAX < ULONG_MAX);
unsigned long int c = strtoul (gram_text + 2, NULL, 16);
else
{
obstack_1grow (&obstack_for_string, c);
- sprintf(piece_temp, "<Escape char=\"%d\">", (int)c);
+ flush_text();
+ sprintf(piece_temp, "<PYACC_Escape char=\"%d\">", (int)c);
piece_append(piece_temp);
flush();
- piece_append("</Escape>");
+ piece_append("</PYACC_Escape>");
}
}
YY_BREAK
case 103:
YY_RULE_SETUP
-#line 671 "src/scan-gram.l"
-obstack_1grow (&obstack_for_string, '\a'); piece_append("<Escape char=\"7\">"); flush(); piece_append("</Escape>");
+#line 701 "src/scan-gram.l"
+obstack_1grow (&obstack_for_string, '\a'); flush_text(); piece_append("<PYACC_Escape char=\"7\">"); flush(); piece_append("</PYACC_Escape>");
YY_BREAK
case 104:
YY_RULE_SETUP
-#line 672 "src/scan-gram.l"
-obstack_1grow (&obstack_for_string, '\b'); piece_append("<Escape char=\"8\">"); flush(); piece_append("</Escape>");
+#line 702 "src/scan-gram.l"
+obstack_1grow (&obstack_for_string, '\b'); flush_text(); piece_append("<PYACC_Escape char=\"8\">"); flush(); piece_append("</PYACC_Escape>");
YY_BREAK
case 105:
YY_RULE_SETUP
-#line 673 "src/scan-gram.l"
-obstack_1grow (&obstack_for_string, '\f'); piece_append("<Escape char=\"12\">"); flush(); piece_append("</Escape>");
+#line 703 "src/scan-gram.l"
+obstack_1grow (&obstack_for_string, '\f'); flush_text(); piece_append("<PYACC_Escape char=\"12\">"); flush(); piece_append("</PYACC_Escape>");
YY_BREAK
case 106:
YY_RULE_SETUP
-#line 674 "src/scan-gram.l"
-obstack_1grow (&obstack_for_string, '\n'); piece_append("<Escape char=\"10\">"); flush(); piece_append("</Escape>");
+#line 704 "src/scan-gram.l"
+obstack_1grow (&obstack_for_string, '\n'); flush_text(); piece_append("<PYACC_Escape char=\"10\">"); flush(); piece_append("</PYACC_Escape>");
YY_BREAK
case 107:
YY_RULE_SETUP
-#line 675 "src/scan-gram.l"
-obstack_1grow (&obstack_for_string, '\r'); piece_append("<Escape char=\"13\">"); flush(); piece_append("</Escape>");
+#line 705 "src/scan-gram.l"
+obstack_1grow (&obstack_for_string, '\r'); flush_text(); piece_append("<PYACC_Escape char=\"13\">"); flush(); piece_append("</PYACC_Escape>");
YY_BREAK
case 108:
YY_RULE_SETUP
-#line 676 "src/scan-gram.l"
-obstack_1grow (&obstack_for_string, '\t'); piece_append("<Escape char=\"9\">"); flush(); piece_append("</Escape>");
+#line 706 "src/scan-gram.l"
+obstack_1grow (&obstack_for_string, '\t'); flush_text(); piece_append("<PYACC_Escape char=\"9\">"); flush(); piece_append("</PYACC_Escape>");
YY_BREAK
case 109:
YY_RULE_SETUP
-#line 677 "src/scan-gram.l"
-obstack_1grow (&obstack_for_string, '\v'); piece_append("<Escape char=\"11\">"); flush(); piece_append("</Escape>");
+#line 707 "src/scan-gram.l"
+obstack_1grow (&obstack_for_string, '\v'); flush_text(); piece_append("<PYACC_Escape char=\"11\">"); flush(); piece_append("</PYACC_Escape>");
YY_BREAK
/* \\[\"\'?\\] would be shorter, but it confuses xgettext. */
case 110:
YY_RULE_SETUP
-#line 680 "src/scan-gram.l"
-obstack_1grow (&obstack_for_string, gram_text[1]); sprintf(piece_temp, "<Escape char=\"%d\">", gram_text[1]); piece_append(piece_temp); flush(); piece_append("</Escape>");
+#line 710 "src/scan-gram.l"
+obstack_1grow (&obstack_for_string, gram_text[1]); flush_text(); sprintf(piece_temp, "<PYACC_Escape char=\"%d\">", gram_text[1]); piece_append(piece_temp); flush(); piece_append("</PYACC_Escape>");
YY_BREAK
case 111:
YY_RULE_SETUP
-#line 682 "src/scan-gram.l"
+#line 712 "src/scan-gram.l"
{
int c = convert_ucn_to_byte (gram_text);
if (c <= 0)
else
{
obstack_1grow (&obstack_for_string, c);
- sprintf(piece_temp, "<Escape char=\"%d\">", c);
+ flush_text();
+ sprintf(piece_temp, "<PYACC_Escape char=\"%d\">", c);
piece_append(piece_temp);
flush();
- piece_append("</Escape>");
+ piece_append("</PYACC_Escape>");
}
}
YY_BREAK
case 112:
/* rule 112 can match eol */
YY_RULE_SETUP
-#line 696 "src/scan-gram.l"
+#line 727 "src/scan-gram.l"
{
char const *p = gram_text + 1;
/* Quote only if escaping won't make the character visible. */
p = quotearg_style_mem (escape_quoting_style, p, 1);
complain (loc, complaint, _("invalid character after \\-escape: %s"),
p);
+ if (in_text == 0) {
+ piece_append("<PYACC_Text>");
+ in_text = 1;
+ }
}
YY_BREAK
case 113:
/* rule 113 can match eol */
YY_RULE_SETUP
-#line 714 "src/scan-gram.l"
+#line 749 "src/scan-gram.l"
STRING_GROW;
YY_BREAK
case 114:
YY_RULE_SETUP
-#line 719 "src/scan-gram.l"
-STRING_GROW; BEGIN context_state; /*piece_append("</Character>");*/
+#line 754 "src/scan-gram.l"
+STRING_GROW; BEGIN context_state;
YY_BREAK
case 115:
/* rule 115 can match eol */
YY_RULE_SETUP
-#line 720 "src/scan-gram.l"
+#line 755 "src/scan-gram.l"
unexpected_newline (token_start, "'");
YY_BREAK
case YY_STATE_EOF(SC_CHARACTER):
-#line 721 "src/scan-gram.l"
+#line 756 "src/scan-gram.l"
unexpected_eof (token_start, "'");
YY_BREAK
case 116:
YY_RULE_SETUP
-#line 726 "src/scan-gram.l"
-STRING_GROW; BEGIN context_state; /*piece_append("</String>");*/
+#line 761 "src/scan-gram.l"
+STRING_GROW; BEGIN context_state;
YY_BREAK
case 117:
/* rule 117 can match eol */
YY_RULE_SETUP
-#line 727 "src/scan-gram.l"
+#line 762 "src/scan-gram.l"
unexpected_newline (token_start, "\"");
YY_BREAK
case YY_STATE_EOF(SC_STRING):
-#line 728 "src/scan-gram.l"
+#line 763 "src/scan-gram.l"
unexpected_eof (token_start, "\"");
YY_BREAK
case 118:
YY_RULE_SETUP
-#line 738 "src/scan-gram.l"
+#line 773 "src/scan-gram.l"
{
STRING_GROW;
context_state = YY_START;
token_start = loc->start;
- /*flush();
- piece_append("<Character>");*/
BEGIN SC_CHARACTER;
}
YY_BREAK
case 119:
YY_RULE_SETUP
-#line 746 "src/scan-gram.l"
+#line 779 "src/scan-gram.l"
{
STRING_GROW;
context_state = YY_START;
token_start = loc->start;
- /*flush();
- piece_append("<String>");*/
BEGIN SC_STRING;
}
YY_BREAK
case 120:
/* rule 120 can match eol */
YY_RULE_SETUP
-#line 754 "src/scan-gram.l"
+#line 785 "src/scan-gram.l"
{
STRING_GROW;
context_state = YY_START;
case 121:
/* rule 121 can match eol */
YY_RULE_SETUP
-#line 760 "src/scan-gram.l"
+#line 791 "src/scan-gram.l"
{
STRING_GROW;
context_state = YY_START;
case 122:
/* rule 122 can match eol */
YY_RULE_SETUP
-#line 776 "src/scan-gram.l"
+#line 807 "src/scan-gram.l"
STRING_GROW; nesting++;
YY_BREAK
case 123:
/* rule 123 can match eol */
YY_RULE_SETUP
-#line 777 "src/scan-gram.l"
+#line 808 "src/scan-gram.l"
STRING_GROW; nesting--;
YY_BREAK
/* Tokenize '<<%' correctly (as '<<' '%') rather than incorrrectly
case 124:
/* rule 124 can match eol */
YY_RULE_SETUP
-#line 781 "src/scan-gram.l"
+#line 812 "src/scan-gram.l"
STRING_GROW;
YY_BREAK
case YY_STATE_EOF(SC_BRACED_CODE):
case YY_STATE_EOF(SC_PREDICATE):
-#line 783 "src/scan-gram.l"
+#line 814 "src/scan-gram.l"
unexpected_eof (code_start, "}");
YY_BREAK
case 125:
YY_RULE_SETUP
-#line 788 "src/scan-gram.l"
+#line 819 "src/scan-gram.l"
{
obstack_1grow (&obstack_for_string, '}');
loc->start = code_start;
val->code = last_string;
BEGIN INITIAL;
- piece_append("</BracedCode>");
+#if 1
+ piece_append("</PYACC_Text>");
+ piece_esc(gram_text, strlen(gram_text));
+ piece_append("</PYACC_BracedCode>");
+ piece_pack();
+ return ~BRACED_CODE;
+#else
return BRACED_CODE;
+#endif
}
}
YY_BREAK
case 126:
YY_RULE_SETUP
-#line 806 "src/scan-gram.l"
+#line 844 "src/scan-gram.l"
{
--nesting;
if (nesting < 0)
loc->start = code_start;
val->code = last_string;
BEGIN INITIAL;
- piece_append("</Predicate>");
+#if 1
+ piece_append("</PYACC_Text>");
+ piece_esc(gram_text, strlen(gram_text));
+ piece_append("</PYACC_BracedPredicate>");
+ piece_pack();
+ return ~BRACED_PREDICATE;
+#else
return BRACED_PREDICATE;
+#endif
}
else
obstack_1grow (&obstack_for_string, '}');
case 127:
YY_RULE_SETUP
-#line 828 "src/scan-gram.l"
+#line 873 "src/scan-gram.l"
{
STRING_FINISH;
loc->start = code_start;
val->code = last_string;
BEGIN INITIAL;
- piece_append("</Prologue>");
+#if 1
+ piece_append("</PYACC_Text>");
+ piece_esc(gram_text, strlen(gram_text));
+ piece_append("</PYACC_Section1_Prologue>");
+ piece_pack();
+ return ~PROLOGUE;
+#else
return PROLOGUE;
+#endif
}
YY_BREAK
case YY_STATE_EOF(SC_PROLOGUE):
-#line 837 "src/scan-gram.l"
+#line 889 "src/scan-gram.l"
unexpected_eof (code_start, "%}");
YY_BREAK
case YY_STATE_EOF(SC_EPILOGUE):
-#line 848 "src/scan-gram.l"
+#line 900 "src/scan-gram.l"
{
STRING_FINISH;
loc->start = code_start;
| By default, grow the string obstack with the input. |
`-----------------------------------------------------*/
case 128:
-#line 863 "src/scan-gram.l"
+#line 915 "src/scan-gram.l"
case 129:
/* rule 129 can match eol */
YY_RULE_SETUP
-#line 863 "src/scan-gram.l"
+#line 915 "src/scan-gram.l"
STRING_GROW;
YY_BREAK
case 130:
YY_RULE_SETUP
-#line 865 "src/scan-gram.l"
+#line 917 "src/scan-gram.l"
YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK
-#line 2734 "src/scan-gram.c"
+#line 2786 "src/scan-gram.c"
case YY_STATE_EOF(SC_RETURN_BRACKETED_ID):
yyterminate();
/* %ok-for-header */
-#line 865 "src/scan-gram.l"
+#line 917 "src/scan-gram.l"
gram_lex_destroy ();
}
+/* Nick */
+static void flush_text(void) {
+ if (in_text) {
+ piece_append("</PYACC_Text>");
+ in_text = 0;
+ }
+}
+
static void unexpected_eof (boundary, char const *);
static void unexpected_newline (boundary, char const *);
+/* Nick */
+static int in_text;
+static void flush_text(void);
+
%}
/* A C-like comment in directives/rules. */
%x SC_YACC_COMMENT
bracketed_id_str = NULL;
BEGIN SC_AFTER_IDENTIFIER;
piece_pack();
- piece_append("<Id>");
+ piece_append("<PYACC_ID>");
flush();
- piece_append("</Id>");
+ piece_append("</PYACC_ID>");
piece_pack();
}
val->integer = scan_integer (yytext, 10, *loc);
#if 1
piece_pack();
- sprintf(piece_temp, "<Int value=\"%d\">", val->integer);
+ sprintf(piece_temp, "<PYACC_Int value=\"%d\">", val->integer);
piece_append(piece_temp);
piece_esc(yytext, yy_c_buf_p - yytext);
- piece_append("</Int>");
+ piece_append("</PYACC_Int>");
piece_pack();
return ~INT;
#else
val->integer = scan_integer (yytext, 16, *loc);
#if 1
piece_pack();
- sprintf(piece_temp, "<Int value=\"%d\">", val->integer);
+ sprintf(piece_temp, "<PYACC_Int value=\"%d\">", val->integer);
piece_append(piece_temp);
piece_esc(yytext, yy_c_buf_p - yytext);
- piece_append("</Integer>");
+ piece_append("</PYACC_Int>");
piece_pack();
return ~INT;
#else
}
/* Characters. */
- "'" token_start = loc->start; BEGIN SC_ESCAPED_CHARACTER; flush(); piece_append("<EscapedCharacter>");
+ "'" token_start = loc->start; BEGIN SC_ESCAPED_CHARACTER; piece_pack(); piece_append("<PYACC_Char>"); in_text = 0;
/* Strings. */
- "\"" token_start = loc->start; BEGIN SC_ESCAPED_STRING; flush(); piece_append("<EscapedString>");
+ "\"" token_start = loc->start; BEGIN SC_ESCAPED_STRING; piece_pack(); piece_append("<PYACC_String>"); in_text = 0;
/* Prologue. */
- "%{" code_start = loc->start; BEGIN SC_PROLOGUE; flush(); piece_append("<Prologue>");
+ "%{" code_start = loc->start; BEGIN SC_PROLOGUE; piece_pack(); piece_append("<PYACC_Section1_Prologue>"); flush(); piece_append("<PYACC_Text>");
/* Code in between braces. */
"{" {
nesting = 0;
code_start = loc->start;
BEGIN SC_BRACED_CODE;
+ piece_pack();
+ piece_append("<PYACC_BracedCode>");
flush();
- piece_append("<BracedCode>");
+ piece_append("<PYACC_Text>");
}
/* Semantic predicate. */
"%?"[ \f\n\t\v]*"{" {
nesting = 0;
code_start = loc->start;
+ piece_pack();
+ piece_append("<PYACC_BracedPredicate>");
flush();
- piece_append("<Predicate>");
+ piece_append("<PYACC_Text>");
BEGIN SC_PREDICATE;
}
/* A type. */
- "<*>" piece_pack(); piece_append("<<TagAny>*</TagAny>>"); ++piece0; return ~TAG_ANY; /*return TAG_ANY;*/
- "<>" piece_pack(); piece_append("<<TagNone />>"); ++piece0; return ~TAG_NONE; /*return TAG_NONE;*/
+ "<*>" return TAG_ANY;
+ "<>" return TAG_NONE;
"<" {
nesting = 0;
token_start = loc->start;
BEGIN SC_TAG;
- flush();
+ piece_pack();
piece_append("<Tag>");
}
loc->start = token_start;
val->code = last_string;
BEGIN INITIAL;
- piece_append("</EscapedString>");
+#if 1
+ flush_text();
+ piece_esc(yytext, strlen(yytext));
+ piece_append("</PYACC_String>");
+ piece_pack();
+ return ~STRING;
+#else
return STRING;
+#endif
}
<<EOF>> unexpected_eof (token_start, "\"");
"\n" unexpected_newline (token_start, "\"");
_("extra characters in character literal"));
STRING_FREE;
BEGIN INITIAL;
- piece_append("</EscapedCharacter>");
+#if 1
+ flush_text();
+ piece_esc(yytext, strlen(yytext));
+ piece_append("</PYACC_Char>");
+ piece_pack();
+ return ~CHAR;
+#else
return CHAR;
+#endif
}
"\n" unexpected_newline (token_start, "'");
<<EOF>> unexpected_eof (token_start, "'");
val->uniqstr = uniqstr_new (last_string);
STRING_FREE;
BEGIN INITIAL;
+#if 1
+ piece_esc(yytext, strlen(yytext));
piece_append("</Tag>");
+ piece_pack();
+ return ~TAG;
+#else
return TAG;
+#endif
}
STRING_GROW;
}
else
{
obstack_1grow (&obstack_for_string, c);
- sprintf(piece_temp, "<Escape char=\"%d\">", (int)c);
+ flush_text();
+ sprintf(piece_temp, "<PYACC_Escape char=\"%d\">", (int)c);
piece_append(piece_temp);
flush();
- piece_append("</Escape>");
+ piece_append("</PYACC_Escape>");
}
}
else
{
obstack_1grow (&obstack_for_string, c);
- sprintf(piece_temp, "<Escape char=\"%d\">", (int)c);
+ flush_text();
+ sprintf(piece_temp, "<PYACC_Escape char=\"%d\">", (int)c);
piece_append(piece_temp);
flush();
- piece_append("</Escape>");
+ piece_append("</PYACC_Escape>");
}
}
- \\a obstack_1grow (&obstack_for_string, '\a'); piece_append("<Escape char=\"7\">"); flush(); piece_append("</Escape>");
- \\b obstack_1grow (&obstack_for_string, '\b'); piece_append("<Escape char=\"8\">"); flush(); piece_append("</Escape>");
- \\f obstack_1grow (&obstack_for_string, '\f'); piece_append("<Escape char=\"12\">"); flush(); piece_append("</Escape>");
- \\n obstack_1grow (&obstack_for_string, '\n'); piece_append("<Escape char=\"10\">"); flush(); piece_append("</Escape>");
- \\r obstack_1grow (&obstack_for_string, '\r'); piece_append("<Escape char=\"13\">"); flush(); piece_append("</Escape>");
- \\t obstack_1grow (&obstack_for_string, '\t'); piece_append("<Escape char=\"9\">"); flush(); piece_append("</Escape>");
- \\v obstack_1grow (&obstack_for_string, '\v'); piece_append("<Escape char=\"11\">"); flush(); piece_append("</Escape>");
+ \\a obstack_1grow (&obstack_for_string, '\a'); flush_text(); piece_append("<PYACC_Escape char=\"7\">"); flush(); piece_append("</PYACC_Escape>");
+ \\b obstack_1grow (&obstack_for_string, '\b'); flush_text(); piece_append("<PYACC_Escape char=\"8\">"); flush(); piece_append("</PYACC_Escape>");
+ \\f obstack_1grow (&obstack_for_string, '\f'); flush_text(); piece_append("<PYACC_Escape char=\"12\">"); flush(); piece_append("</PYACC_Escape>");
+ \\n obstack_1grow (&obstack_for_string, '\n'); flush_text(); piece_append("<PYACC_Escape char=\"10\">"); flush(); piece_append("</PYACC_Escape>");
+ \\r obstack_1grow (&obstack_for_string, '\r'); flush_text(); piece_append("<PYACC_Escape char=\"13\">"); flush(); piece_append("</PYACC_Escape>");
+ \\t obstack_1grow (&obstack_for_string, '\t'); flush_text(); piece_append("<PYACC_Escape char=\"9\">"); flush(); piece_append("</PYACC_Escape>");
+ \\v obstack_1grow (&obstack_for_string, '\v'); flush_text(); piece_append("<PYACC_Escape char=\"11\">"); flush(); piece_append("</PYACC_Escape>");
/* \\[\"\'?\\] would be shorter, but it confuses xgettext. */
- \\("\""|"'"|"?"|"\\") obstack_1grow (&obstack_for_string, yytext[1]); sprintf(piece_temp, "<Escape char=\"%d\">", yytext[1]); piece_append(piece_temp); flush(); piece_append("</Escape>");
+ \\("\""|"'"|"?"|"\\") obstack_1grow (&obstack_for_string, yytext[1]); flush_text(); sprintf(piece_temp, "<PYACC_Escape char=\"%d\">", yytext[1]); piece_append(piece_temp); flush(); piece_append("</PYACC_Escape>");
\\(u|U[0-9abcdefABCDEF]{4})[0-9abcdefABCDEF]{4} {
int c = convert_ucn_to_byte (yytext);
else
{
obstack_1grow (&obstack_for_string, c);
- sprintf(piece_temp, "<Escape char=\"%d\">", c);
+ flush_text();
+ sprintf(piece_temp, "<PYACC_Escape char=\"%d\">", c);
piece_append(piece_temp);
flush();
- piece_append("</Escape>");
+ piece_append("</PYACC_Escape>");
}
}
\\(.|\n) {
p = quotearg_style_mem (escape_quoting_style, p, 1);
complain (loc, complaint, _("invalid character after \\-escape: %s"),
p);
+ if (in_text == 0) {
+ piece_append("<PYACC_Text>");
+ in_text = 1;
+ }
}
}
<SC_CHARACTER>
{
- "'" STRING_GROW; BEGIN context_state; /*piece_append("</Character>");*/
+ "'" STRING_GROW; BEGIN context_state;
\n unexpected_newline (token_start, "'");
<<EOF>> unexpected_eof (token_start, "'");
}
<SC_STRING>
{
- "\"" STRING_GROW; BEGIN context_state; /*piece_append("</String>");*/
+ "\"" STRING_GROW; BEGIN context_state;
\n unexpected_newline (token_start, "\"");
<<EOF>> unexpected_eof (token_start, "\"");
}
STRING_GROW;
context_state = YY_START;
token_start = loc->start;
- /*flush();
- piece_append("<Character>");*/
BEGIN SC_CHARACTER;
}
"\"" {
STRING_GROW;
context_state = YY_START;
token_start = loc->start;
- /*flush();
- piece_append("<String>");*/
BEGIN SC_STRING;
}
"/"{splice}"*" {
loc->start = code_start;
val->code = last_string;
BEGIN INITIAL;
- piece_append("</BracedCode>");
+#if 1
+ piece_append("</PYACC_Text>");
+ piece_esc(yytext, strlen(yytext));
+ piece_append("</PYACC_BracedCode>");
+ piece_pack();
+ return ~BRACED_CODE;
+#else
return BRACED_CODE;
+#endif
}
}
}
loc->start = code_start;
val->code = last_string;
BEGIN INITIAL;
- piece_append("</Predicate>");
+#if 1
+ piece_append("</PYACC_Text>");
+ piece_esc(yytext, strlen(yytext));
+ piece_append("</PYACC_BracedPredicate>");
+ piece_pack();
+ return ~BRACED_PREDICATE;
+#else
return BRACED_PREDICATE;
+#endif
}
else
obstack_1grow (&obstack_for_string, '}');
loc->start = code_start;
val->code = last_string;
BEGIN INITIAL;
- piece_append("</Prologue>");
+#if 1
+ piece_append("</PYACC_Text>");
+ piece_esc(yytext, strlen(yytext));
+ piece_append("</PYACC_Section1_Prologue>");
+ piece_pack();
+ return ~PROLOGUE;
+#else
return PROLOGUE;
+#endif
}
<<EOF>> unexpected_eof (code_start, "%}");
/* Reclaim Flex's buffers. */
yylex_destroy ();
}
+
+/* Nick */
+static void flush_text(void) {
+ if (in_text) {
+ piece_append("</PYACC_Text>");
+ in_text = 0;
+ }
+}