#include "symlist.h"
#include "symtab.h"
-#line 221 "src/parse-gram.y" /* yacc.c:355 */
+#line 227 "src/parse-gram.y" /* yacc.c:355 */
typedef enum
{
param_parse = 1 << 1,
param_both = param_lex | param_parse
} param_type;
-#line 805 "src/parse-gram.y" /* yacc.c:355 */
+#line 846 "src/parse-gram.y" /* yacc.c:355 */
#include "muscle-tab.h"
#line 136 "src/parse-gram.c" /* yacc.c:355 */
union GRAM_STYPE
{
-#line 182 "src/parse-gram.y" /* yacc.c:355 */
+#line 188 "src/parse-gram.y" /* yacc.c:355 */
unsigned char character;
-#line 186 "src/parse-gram.y" /* yacc.c:355 */
+#line 192 "src/parse-gram.y" /* yacc.c:355 */
char *code;
-#line 191 "src/parse-gram.y" /* yacc.c:355 */
+#line 197 "src/parse-gram.y" /* yacc.c:355 */
uniqstr uniqstr;
-#line 199 "src/parse-gram.y" /* yacc.c:355 */
+#line 205 "src/parse-gram.y" /* yacc.c:355 */
int integer;
-#line 203 "src/parse-gram.y" /* yacc.c:355 */
+#line 209 "src/parse-gram.y" /* yacc.c:355 */
symbol *symbol;
-#line 208 "src/parse-gram.y" /* yacc.c:355 */
+#line 214 "src/parse-gram.y" /* yacc.c:355 */
assoc assoc;
-#line 211 "src/parse-gram.y" /* yacc.c:355 */
+#line 217 "src/parse-gram.y" /* yacc.c:355 */
symbol_list *list;
-#line 214 "src/parse-gram.y" /* yacc.c:355 */
+#line 220 "src/parse-gram.y" /* yacc.c:355 */
named_ref *named_ref;
-#line 241 "src/parse-gram.y" /* yacc.c:355 */
+#line 247 "src/parse-gram.y" /* yacc.c:355 */
param_type param;
-#line 496 "src/parse-gram.y" /* yacc.c:355 */
+#line 528 "src/parse-gram.y" /* yacc.c:355 */
code_props_type code_type;
-#line 807 "src/parse-gram.y" /* yacc.c:355 */
+#line 848 "src/parse-gram.y" /* yacc.c:355 */
struct
{
#define YYTYPE_INT8 int_fast8_t
#define YYTYPE_UINT16 uint_fast16_t
#define YYTYPE_UINT8 uint_fast8_t
-#line 231 "src/parse-gram.y" /* yacc.c:359 */
+
+ /* Nick */
+ extern char *code_piece[];
+ extern int code_piece0;
+ void code_piece_append(const char *str);
+ void code_piece_pack();
+#line 237 "src/parse-gram.y" /* yacc.c:359 */
/** Add a lex-param and/or a parse-param.
*
static void add_param (param_type type, char *decl, location loc);
static param_type current_param = param_none;
-#line 341 "src/parse-gram.c" /* yacc.c:359 */
+#line 347 "src/parse-gram.c" /* yacc.c:359 */
#ifdef short
# undef short
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 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, 729, 733, 737, 742, 754, 759,
- 764, 766, 771, 776, 781, 789, 790, 800, 801, 826,
- 827, 828, 829, 841, 843, 852, 857, 858, 863, 871,
- 872
+ 0, 270, 270, 285, 296, 300, 301, 313, 319, 326,
+ 330, 337, 345, 349, 353, 357, 364, 376, 380, 384,
+ 388, 392, 396, 396, 400, 404, 430, 434, 438, 442,
+ 446, 447, 456, 457, 458, 464, 486, 492, 498, 513,
+ 531, 532, 542, 543, 549, 568, 568, 575, 575, 582,
+ 597, 617, 618, 619, 620, 624, 627, 632, 634, 639,
+ 644, 656, 658, 663, 664, 668, 669, 673, 678, 682,
+ 690, 695, 700, 708, 717, 730, 731, 740, 741, 747,
+ 748, 749, 756, 756, 766, 770, 774, 779, 791, 796,
+ 805, 807, 812, 817, 822, 830, 831, 841, 842, 867,
+ 868, 869, 870, 882, 884, 893, 898, 899, 904, 912,
+ 913
};
#endif
switch (yytype)
{
case 3: /* "string" */
-#line 188 "src/parse-gram.y" /* yacc.c:684 */
+#line 194 "src/parse-gram.y" /* yacc.c:684 */
{ fputs (quotearg_style (c_quoting_style, ((*yyvaluep).code)), yyo); }
-#line 1008 "src/parse-gram.c" /* yacc.c:684 */
+#line 1014 "src/parse-gram.c" /* yacc.c:684 */
break;
case 23: /* "%<flag>" */
-#line 196 "src/parse-gram.y" /* yacc.c:684 */
+#line 202 "src/parse-gram.y" /* yacc.c:684 */
{ fprintf (yyo, "%%%s", ((*yyvaluep).uniqstr)); }
-#line 1014 "src/parse-gram.c" /* yacc.c:684 */
+#line 1020 "src/parse-gram.c" /* yacc.c:684 */
break;
case 39: /* "{...}" */
-#line 189 "src/parse-gram.y" /* yacc.c:684 */
+#line 195 "src/parse-gram.y" /* yacc.c:684 */
{ fprintf (yyo, "{\n%s\n}", ((*yyvaluep).code)); }
-#line 1020 "src/parse-gram.c" /* yacc.c:684 */
+#line 1026 "src/parse-gram.c" /* yacc.c:684 */
break;
case 40: /* "%?{...}" */
-#line 189 "src/parse-gram.y" /* yacc.c:684 */
+#line 195 "src/parse-gram.y" /* yacc.c:684 */
{ fprintf (yyo, "{\n%s\n}", ((*yyvaluep).code)); }
-#line 1026 "src/parse-gram.c" /* yacc.c:684 */
+#line 1032 "src/parse-gram.c" /* yacc.c:684 */
break;
case 41: /* "[identifier]" */
-#line 194 "src/parse-gram.y" /* yacc.c:684 */
+#line 200 "src/parse-gram.y" /* yacc.c:684 */
{ fprintf (yyo, "[%s]", ((*yyvaluep).uniqstr)); }
-#line 1032 "src/parse-gram.c" /* yacc.c:684 */
+#line 1038 "src/parse-gram.c" /* yacc.c:684 */
break;
case 42: /* "char" */
-#line 184 "src/parse-gram.y" /* yacc.c:684 */
+#line 190 "src/parse-gram.y" /* yacc.c:684 */
{ fputs (char_name (((*yyvaluep).character)), yyo); }
-#line 1038 "src/parse-gram.c" /* yacc.c:684 */
+#line 1044 "src/parse-gram.c" /* yacc.c:684 */
break;
case 43: /* "epilogue" */
-#line 189 "src/parse-gram.y" /* yacc.c:684 */
+#line 195 "src/parse-gram.y" /* yacc.c:684 */
{ fprintf (yyo, "{\n%s\n}", ((*yyvaluep).code)); }
-#line 1044 "src/parse-gram.c" /* yacc.c:684 */
+#line 1050 "src/parse-gram.c" /* yacc.c:684 */
break;
case 45: /* "identifier" */
-#line 193 "src/parse-gram.y" /* yacc.c:684 */
+#line 199 "src/parse-gram.y" /* yacc.c:684 */
{ fputs (((*yyvaluep).uniqstr), yyo); }
-#line 1050 "src/parse-gram.c" /* yacc.c:684 */
+#line 1056 "src/parse-gram.c" /* yacc.c:684 */
break;
case 46: /* "identifier:" */
-#line 195 "src/parse-gram.y" /* yacc.c:684 */
+#line 201 "src/parse-gram.y" /* yacc.c:684 */
{ fprintf (yyo, "%s:", ((*yyvaluep).uniqstr)); }
-#line 1056 "src/parse-gram.c" /* yacc.c:684 */
+#line 1062 "src/parse-gram.c" /* yacc.c:684 */
break;
case 49: /* "%{...%}" */
-#line 189 "src/parse-gram.y" /* yacc.c:684 */
+#line 195 "src/parse-gram.y" /* yacc.c:684 */
{ fprintf (yyo, "{\n%s\n}", ((*yyvaluep).code)); }
-#line 1062 "src/parse-gram.c" /* yacc.c:684 */
+#line 1068 "src/parse-gram.c" /* yacc.c:684 */
break;
case 51: /* "<tag>" */
-#line 197 "src/parse-gram.y" /* yacc.c:684 */
+#line 203 "src/parse-gram.y" /* yacc.c:684 */
{ fprintf (yyo, "<%s>", ((*yyvaluep).uniqstr)); }
-#line 1068 "src/parse-gram.c" /* yacc.c:684 */
+#line 1074 "src/parse-gram.c" /* yacc.c:684 */
break;
case 54: /* "integer" */
-#line 201 "src/parse-gram.y" /* yacc.c:684 */
+#line 207 "src/parse-gram.y" /* yacc.c:684 */
{ fprintf (yyo, "%d", ((*yyvaluep).integer)); }
-#line 1074 "src/parse-gram.c" /* yacc.c:684 */
+#line 1080 "src/parse-gram.c" /* yacc.c:684 */
break;
case 55: /* "%param" */
-#line 244 "src/parse-gram.y" /* yacc.c:684 */
+#line 250 "src/parse-gram.y" /* yacc.c:684 */
{
switch (((*yyvaluep).param))
{
case param_none: aver (false); break;
}
}
-#line 1091 "src/parse-gram.c" /* yacc.c:684 */
+#line 1097 "src/parse-gram.c" /* yacc.c:684 */
break;
case 65: /* code_props_type */
-#line 497 "src/parse-gram.y" /* yacc.c:684 */
+#line 529 "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 */
+#line 1103 "src/parse-gram.c" /* yacc.c:684 */
break;
case 74: /* symbol.prec */
-#line 205 "src/parse-gram.y" /* yacc.c:684 */
+#line 211 "src/parse-gram.y" /* yacc.c:684 */
{ fprintf (yyo, "%s", ((*yyvaluep).symbol)->tag); }
-#line 1103 "src/parse-gram.c" /* yacc.c:684 */
+#line 1109 "src/parse-gram.c" /* yacc.c:684 */
break;
case 78: /* tag */
-#line 197 "src/parse-gram.y" /* yacc.c:684 */
+#line 203 "src/parse-gram.y" /* yacc.c:684 */
{ fprintf (yyo, "<%s>", ((*yyvaluep).uniqstr)); }
-#line 1109 "src/parse-gram.c" /* yacc.c:684 */
+#line 1115 "src/parse-gram.c" /* yacc.c:684 */
break;
case 88: /* variable */
-#line 193 "src/parse-gram.y" /* yacc.c:684 */
+#line 199 "src/parse-gram.y" /* yacc.c:684 */
{ fputs (((*yyvaluep).uniqstr), yyo); }
-#line 1115 "src/parse-gram.c" /* yacc.c:684 */
+#line 1121 "src/parse-gram.c" /* yacc.c:684 */
break;
case 89: /* value */
-#line 816 "src/parse-gram.y" /* yacc.c:684 */
+#line 857 "src/parse-gram.y" /* yacc.c:684 */
{
switch (((*yyvaluep).value).kind)
{
case muscle_string: fprintf (yyo, "\"%s\"", ((*yyvaluep).value).chars); break;
}
}
-#line 1128 "src/parse-gram.c" /* yacc.c:684 */
+#line 1134 "src/parse-gram.c" /* yacc.c:684 */
break;
case 90: /* id */
-#line 205 "src/parse-gram.y" /* yacc.c:684 */
+#line 211 "src/parse-gram.y" /* yacc.c:684 */
{ fprintf (yyo, "%s", ((*yyvaluep).symbol)->tag); }
-#line 1134 "src/parse-gram.c" /* yacc.c:684 */
+#line 1140 "src/parse-gram.c" /* yacc.c:684 */
break;
case 91: /* id_colon */
-#line 206 "src/parse-gram.y" /* yacc.c:684 */
+#line 212 "src/parse-gram.y" /* yacc.c:684 */
{ fprintf (yyo, "%s:", ((*yyvaluep).symbol)->tag); }
-#line 1140 "src/parse-gram.c" /* yacc.c:684 */
+#line 1146 "src/parse-gram.c" /* yacc.c:684 */
break;
case 92: /* symbol */
-#line 205 "src/parse-gram.y" /* yacc.c:684 */
+#line 211 "src/parse-gram.y" /* yacc.c:684 */
{ fprintf (yyo, "%s", ((*yyvaluep).symbol)->tag); }
-#line 1146 "src/parse-gram.c" /* yacc.c:684 */
+#line 1152 "src/parse-gram.c" /* yacc.c:684 */
break;
case 93: /* string_as_id */
-#line 205 "src/parse-gram.y" /* yacc.c:684 */
+#line 211 "src/parse-gram.y" /* yacc.c:684 */
{ fprintf (yyo, "%s", ((*yyvaluep).symbol)->tag); }
-#line 1152 "src/parse-gram.c" /* yacc.c:684 */
+#line 1158 "src/parse-gram.c" /* yacc.c:684 */
break;
| yyparse. |
`----------*/
-extern char piece_temp[];
-extern char *piece[];
-extern int piece0, piece1;
-void piece_insert(int n, const void *str);
-int piece2, piece3;
+extern char gram_piece_temp[];
+extern char *gram_piece[];
+extern int gram_piece0, gram_piece1;
+void gram_piece_append(const char *str);
+void gram_piece_insert(int n, const char *str);
+void gram_piece_esc(const char *p, size_t n);
+void gram_piece_pack();
+int gram_piece2, gram_piece3;
static void peek(int *yychar_p, YYSTYPE *yylval_p, YYLTYPE *yylloc_p) {
if (*yychar_p == YYEMPTY)
*yychar_p = yylex(yylval_p, yylloc_p);
- memmove(piece + piece3 + 3, piece + piece3 + 1, (piece1 - piece3 - 1) * sizeof(char *));
- piece[piece3 + 1] = strdup("");
- piece[piece3 + 2] = strdup("");
- piece3 += 2;
- piece0 += 2;
- piece1 += 2;
+ memmove(gram_piece + gram_piece3 + 3, gram_piece + gram_piece3 + 1, (gram_piece1 - gram_piece3 - 1) * sizeof(char *));
+ gram_piece[gram_piece3 + 1] = strdup("");
+ gram_piece[gram_piece3 + 2] = strdup("");
+ gram_piece3 += 2;
+ gram_piece0 += 2;
+ gram_piece1 += 2;
}
#define insert_before(n, str) \
- do { piece_insert(piece2 + (n) * 2, (str)); ++piece0; ++piece3; } while (0)
+ do { gram_piece_insert(gram_piece2 + (n) * 2, (str)); ++gram_piece0; ++gram_piece3; } while (0)
#define insert_after(n, str) \
- do { piece_insert(piece2 + (n) * 2 + 1, (str)); ++piece0; ++piece3; } while (0)
+ do { gram_piece_insert(gram_piece2 + (n) * 2 + 1, (str)); ++gram_piece0; ++gram_piece3; } while (0)
int
yyparse (void)
{
yychar = YYEMPTY; /* Cause a token to be read. */
/* User initialization code. */
-#line 108 "src/parse-gram.y" /* yacc.c:1430 */
+#line 114 "src/parse-gram.y" /* yacc.c:1430 */
{
/* Bison's grammar can initial empty locations, hence a default
location is needed. */
boundary_set (&yylloc.end, current_file, 1, 1);
}
-#line 1855 "src/parse-gram.c" /* yacc.c:1430 */
+#line 1861 "src/parse-gram.c" /* yacc.c:1430 */
yylsp[0] = yylloc;
goto yysetstate;
/* yyn is the number of a rule to reduce with. */
yylen = yyr2[yyn];
int n = ((int)(yyvsp - yyvsa) - yylen) * 2;
- piece2 = n + 1;
- piece3 = n + yylen * 2;
+ gram_piece2 = n + 1;
+ gram_piece3 = n + yylen * 2;
if (yylen == 0) {
- memmove(piece + n + 2, piece + n, (piece1 - n) * sizeof(char *));
- piece[n] = strdup("");
- piece[n + 1] = strdup("");
- piece3 = n + 2;
- piece0 += 2;
- piece1 += 2;
+ memmove(gram_piece + n + 2, gram_piece + n, (gram_piece1 - n) * sizeof(char *));
+ gram_piece[n] = strdup("");
+ gram_piece[n + 1] = strdup("");
+ gram_piece3 = n + 2;
+ gram_piece0 += 2;
+ gram_piece1 += 2;
}
/* If YYLEN is nonzero, implement the default value of the action:
switch (yyn)
{
case 2:
-#line 265 "src/parse-gram.y" /* yacc.c:1648 */
+#line 271 "src/parse-gram.y" /* yacc.c:1648 */
{
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 */
+#line 2063 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 3:
-#line 280 "src/parse-gram.y" /* yacc.c:1648 */
+#line 286 "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;
+ char *temp = gram_piece[gram_piece2 + 1];
+ gram_piece[gram_piece2 + 1] = gram_piece[gram_piece2]; /* empty */
+ gram_piece[gram_piece2] = gram_piece[gram_piece2 - 1]; /* empty */
+ gram_piece[gram_piece2 - 1] = temp;
}
-#line 2072 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2078 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 6:
-#line 296 "src/parse-gram.y" /* yacc.c:1648 */
+#line 302 "src/parse-gram.y" /* yacc.c:1648 */
{
+ /* inserting %{...%} below is a hack as we may lose some whitespace near it */
+ code_piece_append("<PYACC_Section1_Prologue>%{");
muscle_code_grow (union_seen ? "post_prologue" : "pre_prologue",
translate_code ((yyvsp[0].code), (yylsp[0]), true), (yylsp[0]));
code_scanner_last_string_free ();
+ code_piece_append("%}</PYACC_Section1_Prologue>");
+ code_piece_pack();
+ free(gram_piece[gram_piece2]);
+ gram_piece[gram_piece2] = strdup(code_piece[code_piece0 - 1]);
}
-#line 2082 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2094 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 7:
-#line 302 "src/parse-gram.y" /* yacc.c:1648 */
+#line 314 "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 2092 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2104 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 8:
-#line 308 "src/parse-gram.y" /* yacc.c:1648 */
+#line 320 "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 2103 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2115 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 9:
-#line 314 "src/parse-gram.y" /* yacc.c:1648 */
+#line 326 "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 */
+#line 2124 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 10:
-#line 319 "src/parse-gram.y" /* yacc.c:1648 */
+#line 331 "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 2123 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2135 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 11:
-#line 326 "src/parse-gram.y" /* yacc.c:1648 */
+#line 338 "src/parse-gram.y" /* yacc.c:1648 */
{
muscle_percent_define_insert ("parse.error", (yylsp[0]), muscle_keyword,
"verbose",
insert_after(0, "</PYACC_Section1_ErrorVerbose>");
insert_before(0, "<PYACC_Section1_ErrorVerbose>");
}
-#line 2135 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2147 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 12:
-#line 333 "src/parse-gram.y" /* yacc.c:1648 */
+#line 345 "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 */
+#line 2156 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 13:
-#line 337 "src/parse-gram.y" /* yacc.c:1648 */
+#line 349 "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 */
+#line 2165 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 14:
-#line 341 "src/parse-gram.y" /* yacc.c:1648 */
+#line 353 "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 */
+#line 2174 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 15:
-#line 346 "src/parse-gram.y" /* yacc.c:1648 */
+#line 358 "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 2173 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2185 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 16:
-#line 353 "src/parse-gram.y" /* yacc.c:1648 */
+#line 365 "src/parse-gram.y" /* yacc.c:1648 */
{
+ code_piece_append("<PYACC_BracedCode>");
muscle_code_grow ("initial_action", translate_code ((yyvsp[0].code), (yylsp[0]), false), (yylsp[0]));
code_scanner_last_string_free ();
+ code_piece_append("</PYACC_BracedCode>");
+ code_piece_pack();
+ free(gram_piece[gram_piece2 + 2]);
+ gram_piece[gram_piece2 + 2] = strdup(code_piece[code_piece0 - 1]);
insert_after(1, "</PYACC_Section1_InitialAction>");
insert_before(0, "<PYACC_Section1_InitialAction>");
}
-#line 2184 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2201 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 17:
-#line 359 "src/parse-gram.y" /* yacc.c:1648 */
+#line 376 "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 */
+#line 2210 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 18:
-#line 363 "src/parse-gram.y" /* yacc.c:1648 */
+#line 380 "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 */
+#line 2219 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 19:
-#line 367 "src/parse-gram.y" /* yacc.c:1648 */
+#line 384 "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 */
+#line 2228 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 20:
-#line 371 "src/parse-gram.y" /* yacc.c:1648 */
+#line 388 "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 */
+#line 2237 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 21:
-#line 375 "src/parse-gram.y" /* yacc.c:1648 */
+#line 392 "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 */
+#line 2246 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 22:
-#line 379 "src/parse-gram.y" /* yacc.c:1648 */
+#line 396 "src/parse-gram.y" /* yacc.c:1648 */
{ current_param = (yyvsp[0].param); }
-#line 2235 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2252 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 23:
-#line 379 "src/parse-gram.y" /* yacc.c:1648 */
+#line 396 "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 */
+#line 2261 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 24:
-#line 383 "src/parse-gram.y" /* yacc.c:1648 */
+#line 400 "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 */
+#line 2270 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 25:
-#line 388 "src/parse-gram.y" /* yacc.c:1648 */
+#line 405 "src/parse-gram.y" /* yacc.c:1648 */
{
char const *skeleton_user = (yyvsp[0].code);
if (strchr (skeleton_user, '/'))
insert_after(1, "</PYACC_Section1_Skeleton>");
insert_before(0, "<PYACC_Section1_Skeleton>");
}
-#line 2283 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2300 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 26:
-#line 413 "src/parse-gram.y" /* yacc.c:1648 */
+#line 430 "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 */
+#line 2309 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 27:
-#line 417 "src/parse-gram.y" /* yacc.c:1648 */
+#line 434 "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 */
+#line 2318 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 28:
-#line 421 "src/parse-gram.y" /* yacc.c:1648 */
+#line 438 "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 */
+#line 2327 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 30:
-#line 429 "src/parse-gram.y" /* yacc.c:1648 */
+#line 446 "src/parse-gram.y" /* yacc.c:1648 */
{ add_param (current_param, (yyvsp[0].code), (yylsp[0])); }
-#line 2316 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2333 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 31:
-#line 430 "src/parse-gram.y" /* yacc.c:1648 */
+#line 447 "src/parse-gram.y" /* yacc.c:1648 */
{ add_param (current_param, (yyvsp[0].code), (yylsp[0])); }
-#line 2322 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2339 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 34:
-#line 442 "src/parse-gram.y" /* yacc.c:1648 */
+#line 459 "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 2332 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2349 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 35:
-#line 448 "src/parse-gram.y" /* yacc.c:1648 */
+#line 465 "src/parse-gram.y" /* yacc.c:1648 */
{
code_props code;
code_props_symbol_action_init (&code, (yyvsp[-1].code), (yylsp[-1]));
+ code_piece_append("<PYACC_BracedCode>");
code_props_translate_code (&code);
+ code_piece_append("</PYACC_BracedCode>");
+ code_piece_pack();
+ free(gram_piece[gram_piece2 + 2]);
+ gram_piece[gram_piece2 + 2] = strdup(code_piece[code_piece0 - 1]);
{
symbol_list *list;
for (list = (yyvsp[0].list); list; list = list->next)
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);
+ sprintf(gram_piece_temp, "<PYACC_Section1Or2_CodeProps type=\"%d\">", (yyvsp[-2].code_type));
+ insert_before(0, gram_piece_temp);
}
-#line 2353 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2375 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 36:
-#line 465 "src/parse-gram.y" /* yacc.c:1648 */
+#line 487 "src/parse-gram.y" /* yacc.c:1648 */
{
default_prec = true;
insert_after(0, "</PYACC_Section1Or2_DefaultPrec>");
insert_before(0, "<PYACC_Section1Or2_DefaultPrec value=\"true\">");
}
-#line 2363 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2385 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 37:
-#line 471 "src/parse-gram.y" /* yacc.c:1648 */
+#line 493 "src/parse-gram.y" /* yacc.c:1648 */
{
default_prec = false;
insert_after(0, "</PYACC_Section1Or2_DefaultPrec>");
insert_before(0, "<PYACC_Section1Or2_DefaultPrec>");
}
-#line 2373 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2395 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 38:
-#line 477 "src/parse-gram.y" /* yacc.c:1648 */
+#line 499 "src/parse-gram.y" /* yacc.c:1648 */
{
/* Do not invoke muscle_percent_code_grow here since it invokes
muscle_user_name_list_grow. */
+ code_piece_append("<PYACC_BracedCode>");
muscle_code_grow ("percent_code()",
translate_code_braceless ((yyvsp[0].code), (yylsp[0])), (yylsp[0]));
code_scanner_last_string_free ();
+ code_piece_append("</PYACC_BracedCode>");
+ code_piece_pack();
+ free(gram_piece[gram_piece2 + 2]);
+ gram_piece[gram_piece2 + 2] = strdup(code_piece[code_piece0 - 1]);
insert_after(1, "</PYACC_Section1Or2_Code>");
insert_before(0, "<PYACC_Section1Or2_Code><PYACC_IDNone />");
}
-#line 2387 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2414 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 39:
-#line 487 "src/parse-gram.y" /* yacc.c:1648 */
+#line 514 "src/parse-gram.y" /* yacc.c:1648 */
{
+ code_piece_append("<PYACC_BracedCode>");
muscle_percent_code_grow ((yyvsp[-1].uniqstr), (yylsp[-1]), translate_code_braceless ((yyvsp[0].code), (yylsp[0])), (yylsp[0]));
code_scanner_last_string_free ();
+ code_piece_append("</PYACC_BracedCode>");
+ code_piece_pack();
+ free(gram_piece[gram_piece2 + 4]);
+ gram_piece[gram_piece2 + 4] = strdup(code_piece[code_piece0 - 1]);
insert_after(2, "</PYACC_Section1Or2_Code>");
insert_before(0, "<PYACC_Section1Or2_Code>");
}
-#line 2398 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2430 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 40:
-#line 499 "src/parse-gram.y" /* yacc.c:1648 */
+#line 531 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.code_type) = destructor; }
-#line 2404 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2436 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 41:
-#line 500 "src/parse-gram.y" /* yacc.c:1648 */
+#line 532 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.code_type) = printer; }
-#line 2410 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2442 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 42:
-#line 510 "src/parse-gram.y" /* yacc.c:1648 */
+#line 542 "src/parse-gram.y" /* yacc.c:1648 */
{ insert_before(0, "<PYACC_IDNone />"); }
-#line 2416 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2448 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 43:
-#line 511 "src/parse-gram.y" /* yacc.c:1648 */
+#line 543 "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 2424 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2456 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 44:
-#line 518 "src/parse-gram.y" /* yacc.c:1648 */
+#line 550 "src/parse-gram.y" /* yacc.c:1648 */
{
union_seen = true;
+ code_piece_append("<PYACC_BracedCode>");
muscle_code_grow ("union_members", translate_code_braceless ((yyvsp[0].code), (yylsp[0])), (yylsp[0]));
code_scanner_last_string_free ();
+ code_piece_append("</PYACC_BracedCode>");
+ code_piece_pack();
+ free(gram_piece[gram_piece2 + 4]);
+ gram_piece[gram_piece2 + 4] = strdup(code_piece[code_piece0 - 1]);
insert_after(2, "</PYACC_Section1Or2_Union>");
insert_before(0, "<PYACC_Section1Or2_Union>");
}
-#line 2436 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2473 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 45:
-#line 531 "src/parse-gram.y" /* yacc.c:1648 */
+#line 568 "src/parse-gram.y" /* yacc.c:1648 */
{ current_class = nterm_sym; }
-#line 2442 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2479 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 46:
-#line 532 "src/parse-gram.y" /* yacc.c:1648 */
+#line 569 "src/parse-gram.y" /* yacc.c:1648 */
{
current_class = unknown_sym;
current_type = NULL;
insert_after(2, "</PYACC_Section1Or2_NTerm>");
insert_before(0, "<PYACC_Section1Or2_NTerm>");
}
-#line 2453 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2490 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 47:
-#line 538 "src/parse-gram.y" /* yacc.c:1648 */
+#line 575 "src/parse-gram.y" /* yacc.c:1648 */
{ current_class = token_sym; }
-#line 2459 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2496 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 48:
-#line 539 "src/parse-gram.y" /* yacc.c:1648 */
+#line 576 "src/parse-gram.y" /* yacc.c:1648 */
{
current_class = unknown_sym;
current_type = NULL;
insert_after(2, "</PYACC_Section1Or2_Token>");
insert_before(0, "<PYACC_Section1Or2_Token>");
}
-#line 2470 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2507 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 49:
-#line 546 "src/parse-gram.y" /* yacc.c:1648 */
+#line 583 "src/parse-gram.y" /* yacc.c:1648 */
{
symbol_list *list;
tag_seen = true;
insert_before(2, "<PYACC_Section1Or2_Type_Symbols>");
insert_before(0, "<PYACC_Section1Or2_Type>");
}
-#line 2486 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2523 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 50:
-#line 561 "src/parse-gram.y" /* yacc.c:1648 */
+#line 598 "src/parse-gram.y" /* yacc.c:1648 */
{
symbol_list *list;
++current_prec;
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);
+ sprintf(gram_piece_temp, "<PYACC_Section1Or2_Precedence type=\"%d\">", (yyvsp[-2].assoc));
+ insert_before(0, gram_piece_temp);
}
-#line 2507 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2544 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 51:
-#line 580 "src/parse-gram.y" /* yacc.c:1648 */
+#line 617 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.assoc) = left_assoc; }
-#line 2513 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2550 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 52:
-#line 581 "src/parse-gram.y" /* yacc.c:1648 */
+#line 618 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.assoc) = right_assoc; }
-#line 2519 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2556 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 53:
-#line 582 "src/parse-gram.y" /* yacc.c:1648 */
+#line 619 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.assoc) = non_assoc; }
-#line 2525 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2562 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 54:
-#line 583 "src/parse-gram.y" /* yacc.c:1648 */
+#line 620 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.assoc) = precedence_assoc; }
-#line 2531 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2568 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 55:
-#line 587 "src/parse-gram.y" /* yacc.c:1648 */
+#line 624 "src/parse-gram.y" /* yacc.c:1648 */
{ current_type = NULL; /*}*/
insert_before(0, "<PYACC_TagNone />");
}
-#line 2539 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2576 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 56:
-#line 590 "src/parse-gram.y" /* yacc.c:1648 */
+#line 627 "src/parse-gram.y" /* yacc.c:1648 */
{ current_type = (yyvsp[0].uniqstr); tag_seen = true; }
-#line 2545 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2582 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 57:
-#line 596 "src/parse-gram.y" /* yacc.c:1648 */
+#line 633 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.list) = symbol_list_sym_new ((yyvsp[0].symbol), (yylsp[0])); }
-#line 2551 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2588 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 58:
-#line 598 "src/parse-gram.y" /* yacc.c:1648 */
+#line 635 "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 2557 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2594 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 59:
-#line 603 "src/parse-gram.y" /* yacc.c:1648 */
+#line 640 "src/parse-gram.y" /* yacc.c:1648 */
{
(yyval.symbol) = (yyvsp[0].symbol);
symbol_class_set ((yyvsp[0].symbol), token_sym, (yylsp[0]), false);
}
-#line 2566 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2603 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 60:
-#line 608 "src/parse-gram.y" /* yacc.c:1648 */
+#line 645 "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]));
insert_after(1, "<PYACC_Section1Or2_Precedence_Symbols_Symbol>");
insert_before(0, "<PYACC_Sectino1Or2_Precedence_Symbols_Symbol>");
}
-#line 2578 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2615 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 61:
-#line 620 "src/parse-gram.y" /* yacc.c:1648 */
+#line 657 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.list) = symbol_list_sym_new ((yyvsp[0].symbol), (yylsp[0])); }
-#line 2584 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2621 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 62:
-#line 622 "src/parse-gram.y" /* yacc.c:1648 */
+#line 659 "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 2590 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2627 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 63:
-#line 626 "src/parse-gram.y" /* yacc.c:1648 */
+#line 663 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.list) = (yyvsp[0].list); }
-#line 2596 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2633 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 64:
-#line 627 "src/parse-gram.y" /* yacc.c:1648 */
+#line 664 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.list) = symbol_list_append ((yyvsp[-1].list), (yyvsp[0].list)); }
-#line 2602 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2639 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 65:
-#line 631 "src/parse-gram.y" /* yacc.c:1648 */
+#line 668 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.list) = symbol_list_sym_new ((yyvsp[0].symbol), (yylsp[0])); }
-#line 2608 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2645 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 66:
-#line 632 "src/parse-gram.y" /* yacc.c:1648 */
+#line 669 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.list) = symbol_list_type_new ((yyvsp[0].uniqstr), (yylsp[0])); }
-#line 2614 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2651 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 67:
-#line 637 "src/parse-gram.y" /* yacc.c:1648 */
+#line 674 "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 */
+#line 2660 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 68:
-#line 641 "src/parse-gram.y" /* yacc.c:1648 */
+#line 678 "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 */
+#line 2669 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 69:
-#line 645 "src/parse-gram.y" /* yacc.c:1648 */
+#line 682 "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 */
+#line 2678 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 70:
-#line 654 "src/parse-gram.y" /* yacc.c:1648 */
+#line 691 "src/parse-gram.y" /* yacc.c:1648 */
{
current_type = (yyvsp[0].uniqstr);
tag_seen = true;
}
-#line 2650 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2687 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 71:
-#line 659 "src/parse-gram.y" /* yacc.c:1648 */
+#line 696 "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 2659 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2696 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 72:
-#line 664 "src/parse-gram.y" /* yacc.c:1648 */
+#line 701 "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]));
insert_after(1, "</PYACC_Section1Or2_SymbolDef>");
insert_before(0, "<PYACC_Section1Or2_SymbolDef>");
}
-#line 2671 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2708 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 73:
-#line 672 "src/parse-gram.y" /* yacc.c:1648 */
+#line 709 "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]));
insert_after(0, "<PYACC_IntNone />");
insert_before(0, "<PYACC_Section1Or2_SymbolDef>");
}
-#line 2684 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2721 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 74:
-#line 681 "src/parse-gram.y" /* yacc.c:1648 */
+#line 718 "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]));
insert_after(2, "</PYACC_Section1Or2_SymbolDef>");
insert_before(0, "<PYACC_Section1Or2_SymbolDef>");
}
-#line 2697 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2734 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 81:
-#line 713 "src/parse-gram.y" /* yacc.c:1648 */
+#line 750 "src/parse-gram.y" /* yacc.c:1648 */
{
yyerrok;
}
-#line 2705 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2742 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 82:
-#line 719 "src/parse-gram.y" /* yacc.c:1648 */
+#line 756 "src/parse-gram.y" /* yacc.c:1648 */
{ current_lhs ((yyvsp[-1].symbol), (yylsp[-1]), (yyvsp[0].named_ref)); }
-#line 2711 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2748 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 83:
-#line 720 "src/parse-gram.y" /* yacc.c:1648 */
+#line 757 "src/parse-gram.y" /* yacc.c:1648 */
{
/* Free the current lhs. */
current_lhs (0, (yylsp[-3]), 0);
insert_after(3, "</PYACC_Section2_Rules>");
insert_before(0, "<PYACC_Section2_Rules>");
}
-#line 2722 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2759 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 84:
-#line 729 "src/parse-gram.y" /* yacc.c:1648 */
+#line 766 "src/parse-gram.y" /* yacc.c:1648 */
{ grammar_current_rule_end ((yylsp[0])); /*}*/
insert_after(0, "</PYACC_Section2_Rules_RHS>");
insert_before(0, "<PYACC_Section2_Rules_RHS>");
}
-#line 2731 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2768 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 85:
-#line 733 "src/parse-gram.y" /* yacc.c:1648 */
+#line 770 "src/parse-gram.y" /* yacc.c:1648 */
{ grammar_current_rule_end ((yylsp[0])); /*}*/
insert_after(2, "</PYACC_Section2_Rules_RHS>");
insert_before(2, "<PYACC_Section2_Rules_RHS>");
}
-#line 2740 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2777 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 87:
-#line 743 "src/parse-gram.y" /* yacc.c:1648 */
+#line 780 "src/parse-gram.y" /* yacc.c:1648 */
{ grammar_current_rule_begin (current_lhs_symbol, current_lhs_location,
current_lhs_named_ref); /*}*/
/* in this case, want empty rule associated with stuff on the right of us */
/* 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;
+ char *temp = gram_piece[gram_piece2 + 1];
+ gram_piece[gram_piece2 + 1] = gram_piece[gram_piece2]; /* empty */
+ gram_piece[gram_piece2] = gram_piece[gram_piece2 - 1]; /* empty */
+ gram_piece[gram_piece2 - 1] = temp;
}
-#line 2756 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2793 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 88:
-#line 755 "src/parse-gram.y" /* yacc.c:1648 */
+#line 792 "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_RHS_Symbol>");
insert_before(1, "<PYACC_Section2_Rules_RHS_Symbol>");
}
-#line 2765 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2802 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 89:
-#line 760 "src/parse-gram.y" /* yacc.c:1648 */
- { grammar_current_rule_action_append ((yyvsp[-1].code), (yylsp[-1]), (yyvsp[0].named_ref), false); /*}*/
+#line 797 "src/parse-gram.y" /* yacc.c:1648 */
+ { code_piece_append("<PYACC_BracedCode>"); grammar_current_rule_action_append ((yyvsp[-1].code), (yylsp[-1]), (yyvsp[0].named_ref), false); /*}*/
+ code_piece_append("</PYACC_BracedCode>");
+ code_piece_pack();
+ free(gram_piece[gram_piece2 + 2]);
+ gram_piece[gram_piece2 + 2] = strdup(code_piece[code_piece0 - 1]);
insert_after(2, "</PYACC_Section2_Rules_RHS_Action>");
insert_before(1, "<PYACC_Section2_Rules_RHS_Action>");
}
-#line 2774 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2815 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 90:
-#line 765 "src/parse-gram.y" /* yacc.c:1648 */
+#line 806 "src/parse-gram.y" /* yacc.c:1648 */
{ grammar_current_rule_action_append ((yyvsp[0].code), (yylsp[0]), NULL, true); }
-#line 2780 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2821 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 91:
-#line 767 "src/parse-gram.y" /* yacc.c:1648 */
+#line 808 "src/parse-gram.y" /* yacc.c:1648 */
{ grammar_current_rule_empty_set ((yylsp[0])); /*}*/
insert_after(1, "</PYACC_Section2_Rules_RHS_Empty>");
insert_before(1, "<PYACC_Section2_Rules_RHS_Empty>");
}
-#line 2789 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2830 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 92:
-#line 772 "src/parse-gram.y" /* yacc.c:1648 */
+#line 813 "src/parse-gram.y" /* yacc.c:1648 */
{ grammar_current_rule_prec_set ((yyvsp[0].symbol), (yylsp[0])); /*}*/
insert_after(2, "</PYACC_Section2_Rules_RHS_Prec>");
insert_before(1, "<PYACC_Section2_Rules_RHS_Prec>");
}
-#line 2798 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2839 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 93:
-#line 777 "src/parse-gram.y" /* yacc.c:1648 */
+#line 818 "src/parse-gram.y" /* yacc.c:1648 */
{ grammar_current_rule_dprec_set ((yyvsp[0].integer), (yylsp[0])); /*}*/
insert_after(2, "</PYACC_Section2_Rules_RHS_DPrec>");
insert_before(1, "<PYACC_Section2_Rules_RHS_DPrec>");
}
-#line 2807 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2848 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 94:
-#line 782 "src/parse-gram.y" /* yacc.c:1648 */
+#line 823 "src/parse-gram.y" /* yacc.c:1648 */
{ grammar_current_rule_merge_set ((yyvsp[0].uniqstr), (yylsp[0])); /*}*/
insert_after(2, "</PYACC_Section2_Rules_RHS_Merge>");
insert_before(1, "<PYACC_Section2_Rules_RHS_Merge>");
}
-#line 2816 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2857 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 95:
-#line 789 "src/parse-gram.y" /* yacc.c:1648 */
+#line 830 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.named_ref) = 0; }
-#line 2822 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2863 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 96:
-#line 790 "src/parse-gram.y" /* yacc.c:1648 */
+#line 831 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.named_ref) = named_ref_new ((yyvsp[0].uniqstr), (yylsp[0])); }
-#line 2828 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2869 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 98:
-#line 801 "src/parse-gram.y" /* yacc.c:1648 */
+#line 842 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.uniqstr) = uniqstr_new ((yyvsp[0].code)); }
-#line 2834 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2875 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 99:
-#line 826 "src/parse-gram.y" /* yacc.c:1648 */
+#line 867 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.value).kind = muscle_keyword; (yyval.value).chars = ""; }
-#line 2840 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2881 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 100:
-#line 827 "src/parse-gram.y" /* yacc.c:1648 */
+#line 868 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.value).kind = muscle_keyword; (yyval.value).chars = (yyvsp[0].uniqstr); }
-#line 2846 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2887 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 101:
-#line 828 "src/parse-gram.y" /* yacc.c:1648 */
+#line 869 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.value).kind = muscle_string; (yyval.value).chars = (yyvsp[0].code); }
-#line 2852 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2893 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 102:
-#line 829 "src/parse-gram.y" /* yacc.c:1648 */
+#line 870 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.value).kind = muscle_code; (yyval.value).chars = strip_braces ((yyvsp[0].code)); }
-#line 2858 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2899 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 103:
-#line 842 "src/parse-gram.y" /* yacc.c:1648 */
+#line 883 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.symbol) = symbol_from_uniqstr ((yyvsp[0].uniqstr), (yylsp[0])); }
-#line 2864 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2905 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 104:
-#line 844 "src/parse-gram.y" /* yacc.c:1648 */
+#line 885 "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 2874 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2915 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 105:
-#line 852 "src/parse-gram.y" /* yacc.c:1648 */
+#line 893 "src/parse-gram.y" /* yacc.c:1648 */
{ (yyval.symbol) = symbol_from_uniqstr ((yyvsp[0].uniqstr), (yylsp[0])); }
-#line 2880 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2921 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 108:
-#line 864 "src/parse-gram.y" /* yacc.c:1648 */
+#line 905 "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 2889 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2930 "src/parse-gram.c" /* yacc.c:1648 */
break;
case 110:
-#line 873 "src/parse-gram.y" /* yacc.c:1648 */
+#line 914 "src/parse-gram.y" /* yacc.c:1648 */
{
+#if 0
+ int gram_piece0_save = gram_piece0, gram_piece1_save = gram_piece1;
+ gram_piece0 = gram_piece1;
+ /*gram_piece_append("<PYACC_Epilogue>");*/
+#endif
muscle_code_grow ("epilogue", translate_code ((yyvsp[0].code), (yylsp[0]), true), (yylsp[0]));
code_scanner_last_string_free ();
+#if 0
+ /*gram_piece_append("</PYACC_Epilogue>");*/
+ gram_piece_pack();
+ /* delete marked up code from lexer and use that from translate_code() */
+ free(gram_piece[gram_piece2 + 2]);
+ gram_piece[gram_piece2 + 2] = gram_piece[gram_piece0 - 1];
+ gram_piece0 = gram_piece0_save;
+ gram_piece1 = gram_piece1_save;
+#endif
insert_after(1, "</PYACC_Section3>");
insert_after(0, "<PYACC_Section3>");
}
-#line 2900 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2955 "src/parse-gram.c" /* yacc.c:1648 */
break;
-#line 2904 "src/parse-gram.c" /* yacc.c:1648 */
+#line 2959 "src/parse-gram.c" /* yacc.c:1648 */
default: break;
}
if (yychar_backup != yychar)
}
int i;
size_t j = 0;
- for (i = piece2; i < piece3; ++i)
- j += strlen(piece[i]);
+ for (i = gram_piece2; i < gram_piece3; ++i)
+ j += strlen(gram_piece[i]);
char *q = malloc(j + 1);
j = 0;
- for (i = piece2; i < piece3; ++i) {
- size_t k = strlen(piece[i]);
- memcpy(q + j, piece[i], k);
- free(piece[i]);
+ for (i = gram_piece2; i < gram_piece3; ++i) {
+ size_t k = strlen(gram_piece[i]);
+ memcpy(q + j, gram_piece[i], k);
+ free(gram_piece[i]);
j += k;
}
q[j] = 0;
- memmove(piece + piece2 + 1, piece + piece3, (piece1 - piece3) * sizeof(char *));
- piece[piece2] = q;
- piece0 += piece2 + 1 - piece3;
- piece1 += piece2 + 1 - piece3;
+ memmove(gram_piece + gram_piece2 + 1, gram_piece + gram_piece3, (gram_piece1 - gram_piece3) * sizeof(char *));
+ gram_piece[gram_piece2] = q;
+ gram_piece0 += gram_piece2 + 1 - gram_piece3;
+ gram_piece1 += gram_piece2 + 1 - gram_piece3;
/* User semantic actions sometimes alter yychar, and that requires
that yytoken be updated with the new translation. We take the
approach of translating immediately before every use of yytoken.
#endif
return yyresult;
}
-#line 881 "src/parse-gram.y" /* yacc.c:1907 */
+#line 936 "src/parse-gram.y" /* yacc.c:1907 */
/* Return the location of the left-hand side of a rule whose
/* %endif */
/* end standard C headers. */
-char piece_temp[100];
-char *piece[10000];
-int piece0;
-int piece1;
-void piece_append(const char *str) {
- piece[piece1++] = strdup(str);
+char gram_piece_temp[100];
+char *gram_piece[10000];
+int gram_piece0, gram_piece1;
+void gram_piece_append(const char *str) {
+ gram_piece[gram_piece1++] = strdup(str);
}
-void piece_insert(int n, const char *str) {
- memmove(piece + n + 1, piece + n, (piece1 - n) * sizeof(char *));
- piece[n] = strdup(str);
- ++piece1;
+void gram_piece_insert(int n, const char *str) {
+ memmove(gram_piece + n + 1, gram_piece + n, (gram_piece1 - n) * sizeof(char *));
+ gram_piece[n] = strdup(str);
+ ++gram_piece1;
+}
+void gram_piece_esc(const char *p, size_t n) {
+ size_t i, j = 0;
+ for (i = 0; i < n; ++i)
+ switch (p[i]) {
+ case '<':
+ case '>':
+ j += 4;
+ break;
+ case '&':
+ j += 5;
+ break;
+ default:
+ ++j;
+ break;
+ }
+ char *q = malloc(j + 1);
+ j = 0;
+ for (i = 0; i < n; ++i)
+ switch (p[i]) {
+ case '<':
+ memcpy(q + j, "<", 4);
+ j += 4;
+ break;
+ case '>':
+ memcpy(q + j, ">", 4);
+ j += 4;
+ break;
+ case '&':
+ memcpy(q + j, "&", 5);
+ j += 5;
+ break;
+ default:
+ q[j++] = p[i];
+ break;
+ }
+ q[j] = 0;
+ gram_piece[gram_piece1++] = q;
+}
+void gram_piece_pack() {
+ int i;
+ size_t j = 0;
+ for (i = gram_piece0; i < gram_piece1; ++i)
+ j += strlen(gram_piece[i]);
+ char *q = malloc(j + 1);
+ j = 0;
+ for (i = gram_piece0; i < gram_piece1; ++i) {
+ int k = strlen(gram_piece[i]);
+ memcpy(q + j, gram_piece[i], k);
+ free(gram_piece[i]);
+ j += k;
+ }
+ q[j] = 0;
+ gram_piece[gram_piece0++] = q;
+ gram_piece1 = gram_piece0;
}
/* %if-c-or-c++ */
#if 1
#define flush() \
do { \
- piece_esc(yytext, yy_c_buf_p - yytext); \
+ gram_piece_esc(yytext, yy_c_buf_p - yytext); \
yytext = yy_c_buf_p; \
} while (0)
#define unput(c) \
do { \
- piece_esc(yytext, yy_c_buf_p - yytext); \
+ gram_piece_esc(yytext, yy_c_buf_p - yytext); \
yyunput(c, (yytext_ptr)); \
yytext = yy_c_buf_p; \
} while (0)
/** The main scanner function which does all the work.
*/
static int real_yylex(GRAM_STYPE *val, location *loc);
-static void piece_esc(const char *p, size_t n) {
- size_t i, j = 0;
- for (i = 0; i < n; ++i)
- switch (p[i]) {
- case '<':
- case '>':
- j += 4;
- break;
- case '&':
- j += 5;
- break;
- default:
- ++j;
- break;
- }
- char *q = malloc(j + 1);
- j = 0;
- for (i = 0; i < n; ++i)
- switch (p[i]) {
- case '<':
- memcpy(q + j, "<", 4);
- j += 4;
- break;
- case '>':
- memcpy(q + j, ">", 4);
- j += 4;
- break;
- case '&':
- memcpy(q + j, "&", 5);
- j += 5;
- break;
- default:
- q[j++] = p[i];
- break;
- }
- q[j] = 0;
- piece[piece1++] = q;
-}
-static void piece_pack() {
- int i;
- size_t j = 0;
- for (i = piece0; i < piece1; ++i)
- j += strlen(piece[i]);
- char *q = malloc(j + 1);
- j = 0;
- for (i = piece0; i < piece1; ++i) {
- int k = strlen(piece[i]);
- memcpy(q + j, piece[i], k);
- free(piece[i]);
- j += k;
- }
- q[j] = 0;
- piece[piece0++] = q;
- piece1 = piece0;
-}
YY_DECL
{
int result = real_yylex(val, loc);
if (result < 0)
return ~result;
- piece_pack();
+ gram_piece_pack();
#if 1
- piece_esc(yytext, strlen(yytext));
+ gram_piece_esc(yytext, strlen(yytext));
#else
size_t n = strlen(yytext);
if (n) {
- sprintf(piece_temp, "<token value=\"%d\">", result);
- piece_append(piece_temp);
- piece_esc(yytext, n);
- piece_append("</token>");
+ sprintf(gram_piece_temp, "<token value=\"%d\">", result);
+ gram_piece_append(gram_piece_temp);
+ gram_piece_esc(yytext, n);
+ gram_piece_append("</token>");
}
else {
- sprintf(piece_temp, "<token value=\"%d\" />", result);
- piece_append(piece_temp);
+ sprintf(gram_piece_temp, "<token value=\"%d\" />", result);
+ gram_piece_append(gram_piece_temp);
}
#endif
- piece_pack();
+ gram_piece_pack();
return result;
}
static int real_yylex(GRAM_STYPE *val, location *loc)
#if 1
/* we do this so that "continue;" in an action works correctly */
- for (; ; piece_esc(yytext, yy_c_buf_p - yytext))
+ for (; ; gram_piece_esc(yytext, yy_c_buf_p - yytext))
#else
while ( 1 ) /* loops until end-of-file is reached */
#endif
id_loc = *loc;
bracketed_id_str = NULL;
BEGIN SC_AFTER_IDENTIFIER;
- piece_pack();
- piece_append("<PYACC_ID>");
+ gram_piece_pack();
+ gram_piece_append("<PYACC_ID>");
flush();
- piece_append("</PYACC_ID>");
- piece_pack();
+ gram_piece_append("</PYACC_ID>");
+ gram_piece_pack();
}
YY_BREAK
case 67:
{
val->integer = scan_integer (gram_text, 10, *loc);
#if 1
- piece_pack();
- 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("</PYACC_Int>");
- piece_pack();
+ gram_piece_pack();
+ sprintf(gram_piece_temp, "<PYACC_Int value=\"%d\">", val->integer);
+ gram_piece_append(gram_piece_temp);
+ gram_piece_esc(gram_text, yy_c_buf_p - gram_text);
+ gram_piece_append("</PYACC_Int>");
+ gram_piece_pack();
return ~INT;
#else
return INT;
{
val->integer = scan_integer (gram_text, 16, *loc);
#if 1
- piece_pack();
- 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("</PYACC_Int>");
- piece_pack();
+ gram_piece_pack();
+ sprintf(gram_piece_temp, "<PYACC_Int value=\"%d\">", val->integer);
+ gram_piece_append(gram_piece_temp);
+ gram_piece_esc(gram_text, yy_c_buf_p - gram_text);
+ gram_piece_append("</PYACC_Int>");
+ gram_piece_pack();
return ~INT;
#else
return INT;
case 70:
YY_RULE_SETUP
#line 336 "src/scan-gram.l"
-token_start = loc->start; BEGIN SC_ESCAPED_CHARACTER; piece_pack(); piece_append("<PYACC_Char>");
+token_start = loc->start; BEGIN SC_ESCAPED_CHARACTER; gram_piece_pack(); gram_piece_append("<PYACC_Char>");
YY_BREAK
/* Strings. */
case 71:
YY_RULE_SETUP
#line 339 "src/scan-gram.l"
-token_start = loc->start; BEGIN SC_ESCAPED_STRING; piece_pack(); piece_append("<PYACC_String>");
+token_start = loc->start; BEGIN SC_ESCAPED_STRING; gram_piece_pack(); gram_piece_append("<PYACC_String>");
YY_BREAK
/* Prologue. */
case 72:
YY_RULE_SETUP
#line 342 "src/scan-gram.l"
-code_start = loc->start; BEGIN SC_PROLOGUE; piece_pack(); piece_append("<PYACC_Section1_Prologue>"); flush(); start_text();
+code_start = loc->start; BEGIN SC_PROLOGUE; gram_piece_pack(); gram_piece_append("<PYACC_Section1_Prologue>"); flush(); start_text();
YY_BREAK
/* Code in between braces. */
case 73:
nesting = 0;
code_start = loc->start;
BEGIN SC_BRACED_CODE;
- piece_pack();
- piece_append("<PYACC_BracedCode>");
+ gram_piece_pack();
+ gram_piece_append("<PYACC_BracedCode>");
#if 1 /* include the braces */
start_text();
flush();
{
nesting = 0;
code_start = loc->start;
- piece_pack();
- piece_append("<PYACC_BracedPredicate>");
+ gram_piece_pack();
+ gram_piece_append("<PYACC_BracedPredicate>");
BEGIN SC_PREDICATE;
}
YY_BREAK
nesting = 0;
token_start = loc->start;
BEGIN SC_TAG;
- piece_pack();
- piece_append("<Tag>");
+ gram_piece_pack();
+ gram_piece_append("<Tag>");
}
YY_BREAK
case 78:
if (++percent_percent_count == 2)
{
BEGIN SC_EPILOGUE;
- piece_pack();
- piece_esc(gram_text, strlen(gram_text));
- piece_pack();
- piece_pack();
+ gram_piece_pack();
+ gram_piece_esc(gram_text, strlen(gram_text));
+ gram_piece_pack();
+ gram_piece_pack();
start_text();
return ~PERCENT_PERCENT;
}
BEGIN (bracketed_id_str ? SC_RETURN_BRACKETED_ID : INITIAL);
*loc = id_loc;
#if 1
- piece_esc(gram_text, yy_c_buf_p - gram_text);
+ gram_piece_esc(gram_text, yy_c_buf_p - gram_text);
return ~ID_COLON;
#else
return ID_COLON;
BEGIN INITIAL;
#if 1
stop_text();
- piece_esc(gram_text, strlen(gram_text));
- piece_append("</PYACC_String>");
- piece_pack();
+ gram_piece_esc(gram_text, strlen(gram_text));
+ gram_piece_append("</PYACC_String>");
+ gram_piece_pack();
return ~STRING;
#else
return STRING;
BEGIN INITIAL;
#if 1
stop_text();
- piece_esc(gram_text, strlen(gram_text));
- piece_append("</PYACC_Char>");
- piece_pack();
+ gram_piece_esc(gram_text, strlen(gram_text));
+ gram_piece_append("</PYACC_Char>");
+ gram_piece_pack();
return ~CHAR;
#else
return CHAR;
STRING_FREE;
BEGIN INITIAL;
#if 1
- piece_esc(gram_text, strlen(gram_text));
- piece_append("</Tag>");
- piece_pack();
+ gram_piece_esc(gram_text, strlen(gram_text));
+ gram_piece_append("</Tag>");
+ gram_piece_pack();
return ~TAG;
#else
return TAG;
{
obstack_1grow (&obstack_for_string, c);
stop_text();
- sprintf(piece_temp, "<PYACC_Escape character=\"%d\">", (int)c);
- piece_append(piece_temp);
+ sprintf(gram_piece_temp, "<PYACC_Escape character=\"%d\">", (int)c);
+ gram_piece_append(gram_piece_temp);
flush();
- piece_append("</PYACC_Escape>");
+ gram_piece_append("</PYACC_Escape>");
}
}
YY_BREAK
{
obstack_1grow (&obstack_for_string, c);
stop_text();
- sprintf(piece_temp, "<PYACC_Escape character=\"%d\">", (int)c);
- piece_append(piece_temp);
+ sprintf(gram_piece_temp, "<PYACC_Escape character=\"%d\">", (int)c);
+ gram_piece_append(gram_piece_temp);
flush();
- piece_append("</PYACC_Escape>");
+ gram_piece_append("</PYACC_Escape>");
}
}
YY_BREAK
case 103:
YY_RULE_SETUP
#line 710 "src/scan-gram.l"
-obstack_1grow (&obstack_for_string, '\a'); stop_text(); piece_append("<PYACC_Escape character=\"7\">"); flush(); piece_append("</PYACC_Escape>");
+obstack_1grow (&obstack_for_string, '\a'); stop_text(); gram_piece_append("<PYACC_Escape character=\"7\">"); flush(); gram_piece_append("</PYACC_Escape>");
YY_BREAK
case 104:
YY_RULE_SETUP
#line 711 "src/scan-gram.l"
-obstack_1grow (&obstack_for_string, '\b'); stop_text(); piece_append("<PYACC_Escape character=\"8\">"); flush(); piece_append("</PYACC_Escape>");
+obstack_1grow (&obstack_for_string, '\b'); stop_text(); gram_piece_append("<PYACC_Escape character=\"8\">"); flush(); gram_piece_append("</PYACC_Escape>");
YY_BREAK
case 105:
YY_RULE_SETUP
#line 712 "src/scan-gram.l"
-obstack_1grow (&obstack_for_string, '\f'); stop_text(); piece_append("<PYACC_Escape character=\"12\">"); flush(); piece_append("</PYACC_Escape>");
+obstack_1grow (&obstack_for_string, '\f'); stop_text(); gram_piece_append("<PYACC_Escape character=\"12\">"); flush(); gram_piece_append("</PYACC_Escape>");
YY_BREAK
case 106:
YY_RULE_SETUP
#line 713 "src/scan-gram.l"
-obstack_1grow (&obstack_for_string, '\n'); stop_text(); piece_append("<PYACC_Escape character=\"10\">"); flush(); piece_append("</PYACC_Escape>");
+obstack_1grow (&obstack_for_string, '\n'); stop_text(); gram_piece_append("<PYACC_Escape character=\"10\">"); flush(); gram_piece_append("</PYACC_Escape>");
YY_BREAK
case 107:
YY_RULE_SETUP
#line 714 "src/scan-gram.l"
-obstack_1grow (&obstack_for_string, '\r'); stop_text(); piece_append("<PYACC_Escape character=\"13\">"); flush(); piece_append("</PYACC_Escape>");
+obstack_1grow (&obstack_for_string, '\r'); stop_text(); gram_piece_append("<PYACC_Escape character=\"13\">"); flush(); gram_piece_append("</PYACC_Escape>");
YY_BREAK
case 108:
YY_RULE_SETUP
#line 715 "src/scan-gram.l"
-obstack_1grow (&obstack_for_string, '\t'); stop_text(); piece_append("<PYACC_Escape character=\"9\">"); flush(); piece_append("</PYACC_Escape>");
+obstack_1grow (&obstack_for_string, '\t'); stop_text(); gram_piece_append("<PYACC_Escape character=\"9\">"); flush(); gram_piece_append("</PYACC_Escape>");
YY_BREAK
case 109:
YY_RULE_SETUP
#line 716 "src/scan-gram.l"
-obstack_1grow (&obstack_for_string, '\v'); stop_text(); piece_append("<PYACC_Escape character=\"11\">"); flush(); piece_append("</PYACC_Escape>");
+obstack_1grow (&obstack_for_string, '\v'); stop_text(); gram_piece_append("<PYACC_Escape character=\"11\">"); flush(); gram_piece_append("</PYACC_Escape>");
YY_BREAK
/* \\[\"\'?\\] would be shorter, but it confuses xgettext. */
case 110:
YY_RULE_SETUP
#line 719 "src/scan-gram.l"
-obstack_1grow (&obstack_for_string, gram_text[1]); stop_text(); sprintf(piece_temp, "<PYACC_Escape character=\"%d\">", gram_text[1]); piece_append(piece_temp); flush(); piece_append("</PYACC_Escape>");
+obstack_1grow (&obstack_for_string, gram_text[1]); stop_text(); sprintf(gram_piece_temp, "<PYACC_Escape character=\"%d\">", gram_text[1]); gram_piece_append(gram_piece_temp); flush(); gram_piece_append("</PYACC_Escape>");
YY_BREAK
case 111:
YY_RULE_SETUP
else
{
obstack_1grow (&obstack_for_string, c);
- sprintf(piece_temp, "<PYACC_Escape character=\"%d\">", c);
- piece_append(piece_temp);
+ sprintf(gram_piece_temp, "<PYACC_Escape character=\"%d\">", c);
+ gram_piece_append(gram_piece_temp);
flush();
- piece_append("</PYACC_Escape>");
+ gram_piece_append("</PYACC_Escape>");
}
}
YY_BREAK
#if 1
#if 1 /* include the braces */
start_text();
- piece_esc(gram_text, strlen(gram_text));
+ gram_piece_esc(gram_text, strlen(gram_text));
#endif
stop_text();
- piece_append("</PYACC_BracedCode>");
+ gram_piece_append("</PYACC_BracedCode>");
#if 0 /* don't include the braces */
- piece_esc(gram_text, strlen(gram_text));
-#endif
- piece_pack();
+ gram_piece_esc(gram_text, strlen(gram_text));
+#endif
+ gram_piece_pack();
return ~BRACED_CODE;
#else
return BRACED_CODE;
BEGIN INITIAL;
#if 1
stop_text();
- piece_esc(gram_text, strlen(gram_text));
- piece_append("</PYACC_BracedPredicate>");
- piece_pack();
+ gram_piece_esc(gram_text, strlen(gram_text));
+ gram_piece_append("</PYACC_BracedPredicate>");
+ gram_piece_pack();
return ~BRACED_PREDICATE;
#else
return BRACED_PREDICATE;
BEGIN INITIAL;
#if 1
stop_text();
- piece_esc(gram_text, strlen(gram_text));
- piece_append("</PYACC_Section1_Prologue>");
- piece_pack();
+ gram_piece_esc(gram_text, strlen(gram_text));
+ gram_piece_append("</PYACC_Section1_Prologue>");
+ gram_piece_pack();
return ~PROLOGUE;
#else
return PROLOGUE;
BEGIN INITIAL;
#if 1
stop_text();
- piece_pack();
+ gram_piece_pack();
return ~EPILOGUE;
#else
return EPILOGUE;
/* Nick */
static void start_text(void) {
if (in_text == 0) {
- piece_append("<PYACC_Text>");
+ gram_piece_append("<PYACC_Text>");
in_text = 1;
}
}
static void stop_text(void) {
if (in_text) {
- piece_append("</PYACC_Text>");
+ gram_piece_append("</PYACC_Text>");
in_text = 0;
}
}