parser (@pxref{Decl Summary,,%define api.push-pull}):
@example
-%define api.push-pull "push"
+%define api.push-pull push
@end example
In almost all cases, you want to ensure that your push parser is also
@example
%define api.pure
-%define api.push-pull "push"
+%define api.push-pull push
@end example
There is a major notable functional difference between the pure push parser
Bison also supports both the push parser interface along with the pull parser
interface in the same generated parser. In order to get this functionality,
-you should replace the @samp{%define api.push-pull "push"} declaration with the
-@samp{%define api.push-pull "both"} declaration. Doing this will create all of
+you should replace the @samp{%define api.push-pull push} declaration with the
+@samp{%define api.push-pull both} declaration. Doing this will create all of
the symbols mentioned earlier along with the two extra symbols, @code{yyparse}
and @code{yypull_parse}. @code{yyparse} can be used exactly as it normally
would be used. However, the user should note that it is implemented in the
generated parser by calling @code{yypull_parse}.
This makes the @code{yyparse} function that is generated with the
-@samp{%define api.push-pull "both"} declaration slower than the normal
+@samp{%define api.push-pull both} declaration slower than the normal
@code{yyparse} function. If the user
calls the @code{yypull_parse} function it will parse the rest of the input
stream. It is possible to @code{yypush_parse} tokens to select a subgrammar
@end example
Adding the @samp{%define api.pure} declaration does exactly the same thing to
-the generated parser with @samp{%define api.push-pull "both"} as it did for
-@samp{%define api.push-pull "push"}.
+the generated parser with @samp{%define api.push-pull both} as it did for
+@samp{%define api.push-pull push}.
@node Decl Summary
@subsection Bison Declaration Summary
@end deffn
@deffn {Directive} %define @var{variable}
+@deffnx {Directive} %define @var{variable} @var{value}
@deffnx {Directive} %define @var{variable} "@var{value}"
Define a variable to adjust Bison's behavior.
The possible choices for @var{variable}, as well as their meanings, depend on
It is an error if a @var{variable} is defined by @code{%define} multiple
times, but see @ref{Bison Options,,-D @var{name}[=@var{value}]}.
-Omitting @code{"@var{value}"} is always equivalent to specifying it as
+@var{value} must be placed in quotation marks if it contains any
+character other than a letter, underscore, period, dash, or non-initial
+digit.
+
+Omitting @code{"@var{value}"} entirely is always equivalent to specifying
@code{""}.
Some @var{variable}s may be used as Booleans.
of the following four conditions:
@enumerate
-@item @code{"@var{value}"} is @code{"true"}
+@item @code{@var{value}} is @code{true}
-@item @code{"@var{value}"} is omitted (or is @code{""}).
-This is equivalent to @code{"true"}.
+@item @code{@var{value}} is omitted (or @code{""} is specified).
+This is equivalent to @code{true}.
-@item @code{"@var{value}"} is @code{"false"}.
+@item @code{@var{value}} is @code{false}.
@item @var{variable} is never defined.
In this case, Bison selects a default value, which may depend on the selected
@item Accepted Values: Boolean
-@item Default Value: @code{"false"}
+@item Default Value: @code{false}
@end itemize
@c api.pure
(The current push parsing interface is experimental and may evolve.
More user feedback will help to stabilize it.)
-@item Accepted Values: @code{"pull"}, @code{"push"}, @code{"both"}
+@item Accepted Values: @code{pull}, @code{push}, @code{both}
-@item Default Value: @code{"pull"}
+@item Default Value: @code{pull}
@end itemize
@c api.push-pull
@item Accepted Values:
@itemize
-@item @code{"all"}.
+@item @code{all}.
For @acronym{LALR} and @acronym{IELR} parsers (@pxref{Decl
Summary,,lr.type}) by default, all states are permitted to contain
default reductions.
reductions in an @acronym{LALR} or @acronym{IELR} state can contain
tokens that are syntactically incorrect for some left contexts.
-@item @code{"consistent"}.
+@item @code{consistent}.
@cindex consistent states
A consistent state is a state that has only one possible action.
If that action is a reduction, then the parser does not need to request
soon as it @emph{needs} the syntactically unacceptable token from the
scanner.
-@item @code{"accepting"}.
+@item @code{accepting}.
@cindex accepting state
By default, the only default reduction permitted in a canonical
@acronym{LR} parser is the accept action in the accepting state, which
@item Default Value:
@itemize
-@item @code{"accepting"} if @code{lr.type} is @code{"canonical-lr"}.
-@item @code{"all"} otherwise.
+@item @code{accepting} if @code{lr.type} is @code{canonical-lr}.
+@item @code{all} otherwise.
@end itemize
@end itemize
@item Accepted Values: Boolean
-@item Default Value: @code{"false"}
+@item Default Value: @code{false}
@item Caveats:
@item Accepted Values:
@itemize
-@item @code{"lalr"}.
+@item @code{lalr}.
While Bison generates @acronym{LALR} parser tables by default for
historical reasons, @acronym{IELR} or canonical @acronym{LR} is almost
always preferable for deterministic parsers.
from @acronym{IELR} and canonical @acronym{LR}.
@end itemize
-@item @code{"ielr"}.
+@item @code{ielr}.
@acronym{IELR} is a minimal @acronym{LR} algorithm.
That is, given any grammar (@acronym{LR} or non-@acronym{LR}),
@acronym{IELR} and canonical @acronym{LR} always accept exactly the same
of magnitude less as well.
This can significantly reduce the complexity of developing of a grammar.
-@item @code{"canonical-lr"}.
+@item @code{canonical-lr}.
@cindex delayed syntax errors
@cindex syntax errors delayed
The only advantage of canonical @acronym{LR} over @acronym{IELR} is
facilitate the development of a grammar.
@end itemize
-@item Default Value: @code{"lalr"}
+@item Default Value: @code{lalr}
@end itemize
@code{yyerror}}.
@item Accepted Values:
@itemize
-@item @code{"simple"}
+@item @code{simple}
Error messages passed to @code{yyerror} are simply @w{@code{"syntax
error"}}.
-@item @code{"verbose"}
+@item @code{verbose}
Error messages report the unexpected token, and possibly the expected
ones.
@end itemize
More user feedback will help to stabilize it.)
You call the function @code{yypush_parse} to parse a single token. This
-function is available if either the @samp{%define api.push-pull "push"} or
-@samp{%define api.push-pull "both"} declaration is used.
+function is available if either the @samp{%define api.push-pull push} or
+@samp{%define api.push-pull both} declaration is used.
@xref{Push Decl, ,A Push Parser}.
@deftypefun int yypush_parse (yypstate *yyps)
More user feedback will help to stabilize it.)
You call the function @code{yypull_parse} to parse the rest of the input
-stream. This function is available if the @samp{%define api.push-pull "both"}
+stream. This function is available if the @samp{%define api.push-pull both}
declaration is used.
@xref{Push Decl, ,A Push Parser}.
More user feedback will help to stabilize it.)
You call the function @code{yypstate_new} to create a new parser instance.
-This function is available if either the @samp{%define api.push-pull "push"} or
-@samp{%define api.push-pull "both"} declaration is used.
+This function is available if either the @samp{%define api.push-pull push} or
+@samp{%define api.push-pull both} declaration is used.
@xref{Push Decl, ,A Push Parser}.
@deftypefun yypstate *yypstate_new (void)
More user feedback will help to stabilize it.)
You call the function @code{yypstate_delete} to delete a parser instance.
-function is available if either the @samp{%define api.push-pull "push"} or
-@samp{%define api.push-pull "both"} declaration is used.
+function is available if either the @samp{%define api.push-pull push} or
+@samp{%define api.push-pull both} declaration is used.
@xref{Push Decl, ,A Push Parser}.
@deftypefun void yypstate_delete (yypstate *yyps)
@w{@code{"syntax error"}}.
@findex %define parse.error
-If you invoke @samp{%define parse.error "verbose"} in the Bison
+If you invoke @samp{%define parse.error verbose} in the Bison
declarations section (@pxref{Bison Declarations, ,The Bison Declarations
Section}), then Bison provides a more verbose and specific error message
string instead of just plain @w{@code{"syntax error"}}.
@comment file: calc++-parser.yy
@example
%define parse.trace
-%define parse.error "verbose"
+%define parse.error verbose
@end example
@noindent
a range composed of a pair of positions (possibly spanning several
files). The location class is an inner class of the parser; the name
is @code{Location} by default, and may also be renamed using
-@samp{%define location_type "@var{class-name}}.
+@samp{%define location_type "@var{class-name}"}.
The location class treats the position as a completely opaque value.
By default, the class name is @code{Position}, but this can be changed
@deftypemethod {YYParser} {boolean} getErrorVerbose ()
@deftypemethodx {YYParser} {void} setErrorVerbose (boolean @var{verbose})
Get or set the option to produce verbose error messages. These are only
-available with @samp{%define parse.error "verbose"}, which also turns on
+available with @samp{%define parse.error verbose}, which also turns on
verbose error messages.
@end deftypemethod
@deffn {Directive} %define @var{define-variable}
@deffnx {Directive} %define @var{define-variable} @var{value}
+@deffnx {Directive} %define @var{define-variable} "@var{value}"
Define a variable to adjust Bison's behavior.
@xref{Decl Summary,,%define}.
@end deffn
@end deffn
@deffn {Directive} %error-verbose
-An obsolete directive standing for @samp{%define parse.error "verbose"}.
+An obsolete directive standing for @samp{%define parse.error verbose}.
@end deffn
@deffn {Directive} %file-prefix "@var{prefix}"
with @code{#define} in the prologue to request verbose, specific error
message strings when @code{yyerror} is called. It doesn't matter what
definition you use for @code{YYERROR_VERBOSE}, just whether you define
-it. Using @samp{%define parse.error "verbose"} is preferred
+it. Using @samp{%define parse.error verbose} is preferred
(@pxref{Error Reporting, ,The Error Reporting Function @code{yyerror}}).
@end deffn
-/* A Bison parser, made by GNU Bison 2.4.394-10e5b80-dirty. */
+/* A Bison parser, made by GNU Bison 2.4.395-7910-dirty. */
/* Implementation for Bison's Yacc-like parsers in C
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.4.394-10e5b80-dirty"
+#define YYBISON_VERSION "2.4.395-7910-dirty"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 3
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 160
+#define YYLAST 161
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 57
/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 34
/* YYNRULES -- Number of rules. */
-#define YYNRULES 106
+#define YYNRULES 107
/* YYNSTATES -- Number of states. */
-#define YYNSTATES 146
+#define YYNSTATES 147
/* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
by yylex, with out-of-bounds checking. */
435, 440, 442, 447, 448, 452, 453, 454, 455, 460,
465, 470, 476, 482, 493, 494, 503, 504, 510, 511,
512, 519, 519, 524, 525, 526, 531, 533, 535, 537,
- 539, 541, 546, 548, 559, 560, 565, 566, 575, 595,
- 597, 606, 611, 612, 617, 624, 626
+ 539, 541, 546, 548, 559, 560, 565, 566, 567, 576,
+ 596, 598, 607, 612, 613, 618, 625, 627
};
#endif
};
# endif
-#define YYPACT_NINF -53
+#define YYPACT_NINF -136
#define yypact_value_is_default(yystate) \
- ((yystate) == (-53))
+ ((yystate) == (-136))
-#define YYTABLE_NINF -106
+#define YYTABLE_NINF -107
#define yytable_value_is_error(yytable_value) \
YYID (0)
STATE-NUM. */
static const yytype_int16 yypact[] =
{
- -53, 5, 102, -53, -53, -53, -10, 8, 27, -53,
- -53, -53, -53, 18, -53, 32, 55, -53, 70, 77,
- -53, 17, -53, 43, 91, 53, 41, -53, -53, -53,
- 42, 54, 94, 96, 0, -53, -53, -53, 16, -53,
- -53, 56, -53, -53, -53, -53, 48, 30, 30, 0,
- 13, 13, -53, 61, -53, -53, -53, 101, -53, -53,
- -53, -53, 113, -53, -53, -53, -53, 114, -53, 115,
- -53, -53, -53, -53, -53, -53, -53, -53, -53, 93,
- -53, 95, 1, -53, -53, 50, -53, 61, -53, 0,
- -53, -53, 30, 33, 30, 0, -53, -53, -53, -53,
- 13, -53, -53, 13, -53, -53, -53, -53, -53, -53,
- -53, -53, 103, -53, -53, -53, -53, -53, 0, -53,
- 141, -53, 145, -53, -53, -53, -53, -53, -53, -53,
- -53, 39, 37, -53, -53, 0, 147, 97, 50, 50,
- 37, -53, -53, -53, -53, -53
+ -136, 36, 103, -136, -136, -136, -2, 18, 22, -136,
+ -136, -136, -136, -1, -136, 32, 66, -136, 70, 90,
+ -136, 17, -136, 53, 93, 55, 39, -136, -136, -136,
+ 41, 56, 97, 98, 0, -136, -136, -136, 16, -136,
+ -136, 57, -136, -136, -136, -136, 52, 30, 30, 0,
+ 13, 13, -136, 63, -136, -136, -136, 35, -136, -136,
+ -136, -136, 114, -136, -136, -136, -136, 115, -136, 116,
+ -136, -136, -136, -136, -136, -136, -136, -136, -136, 94,
+ -136, 95, 1, -136, -136, 51, -136, 63, -136, 0,
+ -136, -136, 30, 89, 30, 0, -136, -136, -136, -136,
+ 13, -136, -136, 13, -136, -136, -136, -136, -136, -136,
+ -136, -136, -136, 104, -136, -136, -136, -136, -136, 0,
+ -136, 143, -136, 146, -136, -136, -136, -136, -136, -136,
+ -136, -136, 19, 37, -136, -136, 0, 148, 105, 51,
+ 51, 37, -136, -136, -136, -136, -136
};
/* YYDEFACT[S] -- default reduction number in state S. Performed when
7, 0, 16, 0, 0, 0, 0, 39, 22, 23,
0, 0, 0, 0, 0, 29, 30, 31, 0, 6,
32, 42, 4, 5, 34, 33, 55, 0, 0, 0,
- 0, 0, 98, 0, 40, 95, 94, 96, 10, 12,
+ 0, 0, 99, 0, 40, 95, 94, 96, 10, 12,
13, 14, 0, 17, 18, 19, 20, 0, 24, 0,
- 26, 27, 28, 104, 100, 99, 102, 35, 103, 0,
- 101, 0, 0, 76, 78, 92, 43, 0, 56, 0,
+ 26, 27, 28, 105, 101, 100, 103, 35, 104, 0,
+ 102, 0, 0, 76, 78, 92, 43, 0, 56, 0,
69, 74, 48, 70, 46, 49, 61, 66, 67, 68,
- 36, 63, 65, 37, 41, 97, 8, 15, 21, 25,
- 80, 79, 0, 77, 2, 93, 81, 44, 50, 57,
- 59, 75, 71, 72, 62, 64, 106, 86, 58, 60,
- 73, 82, 83, 86, 85, 0, 0, 0, 92, 92,
- 84, 89, 90, 91, 88, 87
+ 36, 63, 65, 37, 41, 98, 97, 8, 15, 21,
+ 25, 80, 79, 0, 77, 2, 93, 81, 44, 50,
+ 57, 59, 75, 71, 72, 62, 64, 107, 86, 58,
+ 60, 73, 82, 83, 86, 85, 0, 0, 0, 92,
+ 92, 84, 89, 90, 91, 88, 87
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -53, -53, -53, -53, 152, -53, -53, -53, -53, -53,
- -53, -53, -53, 38, -53, 104, -32, -3, 109, -53,
- 78, -53, -53, -53, 26, -46, -53, -53, -49, -17,
- -53, -34, -52, -53
+ -136, -136, -136, -136, 153, -136, -136, -136, -136, -136,
+ -136, -136, -136, 31, -136, 107, -13, -3, 108, -136,
+ 78, -136, -136, -136, 27, -135, -136, -136, -16, -17,
+ -136, -34, -35, -136
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 1, 2, 42, 81, 87, 44, 48, 47, 45,
- 46, 89, 118, 119, 95, 100, 101, 91, 92, 82,
- 83, 84, 127, 131, 132, 116, 57, 106, 54, 76,
- 85, 102, 78, 114
+ 46, 89, 119, 120, 95, 100, 101, 91, 92, 82,
+ 83, 84, 128, 132, 133, 117, 57, 107, 54, 76,
+ 85, 102, 78, 115
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
number is the opposite. If YYTABLE_NINF, syntax error. */
static const yytype_int16 yytable[] =
{
- 77, -105, 79, 73, 104, 3, 4, 5, 6, 7,
+ 77, -106, 79, 73, 145, 146, 4, 5, 6, 7,
8, 9, 10, 11, 12, 96, 73, 79, 13, 14,
61, 4, 5, 6, 7, 8, 9, 10, 11, 12,
- 93, 93, 27, 13, 14, 55, 73, 122, 117, 34,
- 73, 123, 49, 74, 66, 68, 75, 27, 80, 112,
- 50, 135, 136, 137, 34, 120, 74, 41, 58, 75,
- 52, 124, 62, 80, 53, 97, 98, 99, 125, 51,
- 130, 125, 41, 74, 59, 93, 75, 93, 56, 138,
- 74, 60, 90, 75, 120, 63, 67, 69, 133, 121,
- 134, 121, 144, 145, 64, 65, 70, 71, 139, 72,
- 88, 141, 86, 52, 105, 115, 139, 4, 5, 6,
- 7, 8, 9, 10, 11, 12, 107, 108, 109, 13,
- 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
- 34, 35, 36, 37, 110, 129, 111, 126, 73, 143,
- 38, 142, 39, 40, 43, 103, 128, 94, 41, 140,
- 113
+ 93, 93, 27, 13, 14, 55, 3, 104, 105, 34,
+ 73, 52, 66, 74, 68, 53, 75, 27, 80, 113,
+ 49, 136, 137, 138, 34, 121, 74, 41, 124, 75,
+ 50, 125, 62, 80, 51, 97, 98, 99, 134, 58,
+ 135, 118, 41, 74, 59, 93, 75, 93, 56, 139,
+ 74, 106, 90, 75, 67, 121, 69, 126, 131, 122,
+ 126, 122, 73, 123, 60, 63, 64, 65, 70, 140,
+ 71, 72, 142, 86, 88, 52, 116, 140, 4, 5,
+ 6, 7, 8, 9, 10, 11, 12, 108, 109, 110,
+ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
+ 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
+ 33, 34, 35, 36, 37, 111, 112, 130, 127, 73,
+ 129, 38, 143, 39, 40, 43, 94, 144, 103, 41,
+ 114, 141
};
static const yytype_uint8 yycheck[] =
{
- 34, 0, 1, 3, 53, 0, 5, 6, 7, 8,
+ 34, 0, 1, 3, 139, 140, 5, 6, 7, 8,
9, 10, 11, 12, 13, 49, 3, 1, 17, 18,
3, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 47, 48, 31, 17, 18, 3, 3, 4, 87, 38,
- 3, 93, 52, 43, 3, 3, 46, 31, 47, 48,
- 42, 14, 15, 16, 38, 89, 43, 56, 3, 46,
- 42, 95, 45, 47, 46, 52, 53, 54, 100, 42,
- 122, 103, 56, 43, 4, 92, 46, 94, 46, 42,
- 43, 4, 52, 46, 118, 42, 45, 45, 49, 92,
- 51, 94, 138, 139, 3, 42, 42, 3, 132, 3,
- 52, 135, 46, 42, 3, 55, 140, 5, 6, 7,
- 8, 9, 10, 11, 12, 13, 3, 3, 3, 17,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
- 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 51, 4, 51, 44, 3, 52,
- 48, 4, 50, 51, 2, 51, 118, 48, 56, 133,
- 82
+ 47, 48, 31, 17, 18, 3, 0, 53, 3, 38,
+ 3, 42, 3, 43, 3, 46, 46, 31, 47, 48,
+ 52, 14, 15, 16, 38, 89, 43, 56, 93, 46,
+ 42, 95, 45, 47, 42, 52, 53, 54, 49, 3,
+ 51, 87, 56, 43, 4, 92, 46, 94, 46, 42,
+ 43, 46, 52, 46, 45, 119, 45, 100, 123, 92,
+ 103, 94, 3, 4, 4, 42, 3, 42, 42, 133,
+ 3, 3, 136, 46, 52, 42, 55, 141, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 3, 3, 3,
+ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, 51, 51, 4, 44, 3,
+ 119, 48, 4, 50, 51, 2, 48, 52, 51, 56,
+ 82, 134
};
/* STOS_[STATE-NUM] -- The (internal number of the) accessing
42, 3, 3, 3, 43, 46, 86, 88, 89, 1,
47, 61, 76, 77, 78, 87, 46, 62, 52, 68,
52, 74, 75, 86, 75, 71, 88, 52, 53, 54,
- 72, 73, 88, 72, 85, 3, 84, 3, 3, 3,
- 51, 51, 48, 77, 90, 55, 82, 85, 69, 70,
- 88, 74, 4, 89, 88, 73, 44, 79, 70, 4,
- 89, 80, 81, 49, 51, 14, 15, 16, 42, 88,
- 81, 88, 4, 52, 82, 82
+ 72, 73, 88, 72, 85, 3, 46, 84, 3, 3,
+ 3, 51, 51, 48, 77, 90, 55, 82, 85, 69,
+ 70, 88, 74, 4, 89, 88, 73, 44, 79, 70,
+ 4, 89, 80, 81, 49, 51, 14, 15, 16, 42,
+ 88, 81, 88, 4, 52, 82, 82
};
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
70, 71, 71, 72, 72, 73, 73, 73, 73, 74,
74, 74, 74, 74, 75, 75, 76, 76, 77, 77,
77, 79, 78, 80, 80, 80, 81, 81, 81, 81,
- 81, 81, 82, 82, 83, 83, 84, 84, 85, 86,
- 86, 87, 88, 88, 89, 90, 90
+ 81, 81, 82, 82, 83, 83, 84, 84, 84, 85,
+ 86, 86, 87, 88, 88, 89, 90, 90
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
1, 2, 2, 3, 1, 2, 1, 2, 1, 2,
2, 0, 4, 1, 3, 2, 0, 3, 3, 3,
3, 3, 0, 1, 1, 1, 0, 1, 1, 1,
- 1, 1, 1, 1, 1, 0, 2
+ 1, 1, 1, 1, 1, 1, 0, 2
};
#line 2603 "src/parse-gram.c"
break;
- case 98:
+ case 97:
+/* Line 1388 of yacc.c */
+#line 566 "parse-gram.y"
+ { (yyval.chars) = (yyvsp[0].uniqstr); }
+/* Line 1388 of yacc.c */
+#line 2611 "src/parse-gram.c"
+ break;
+
+ case 99:
/* Line 1388 of yacc.c */
-#line 576 "parse-gram.y"
+#line 577 "parse-gram.y"
{
code_props plain_code;
(yyvsp[0].code)[strlen ((yyvsp[0].code)) - 1] = '\n';
(yyval.chars) = plain_code.code;
}
/* Line 1388 of yacc.c */
-#line 2618 "src/parse-gram.c"
+#line 2626 "src/parse-gram.c"
break;
- case 99:
+ case 100:
/* Line 1388 of yacc.c */
-#line 596 "parse-gram.y"
+#line 597 "parse-gram.y"
{ (yyval.symbol) = symbol_from_uniqstr ((yyvsp[0].uniqstr), (yylsp[0])); }
/* Line 1388 of yacc.c */
-#line 2626 "src/parse-gram.c"
+#line 2634 "src/parse-gram.c"
break;
- case 100:
+ case 101:
/* Line 1388 of yacc.c */
-#line 598 "parse-gram.y"
+#line 599 "parse-gram.y"
{
(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 1388 of yacc.c */
-#line 2638 "src/parse-gram.c"
+#line 2646 "src/parse-gram.c"
break;
- case 101:
+ case 102:
/* Line 1388 of yacc.c */
-#line 606 "parse-gram.y"
+#line 607 "parse-gram.y"
{ (yyval.symbol) = symbol_from_uniqstr ((yyvsp[0].uniqstr), (yylsp[0])); }
/* Line 1388 of yacc.c */
-#line 2646 "src/parse-gram.c"
+#line 2654 "src/parse-gram.c"
break;
- case 104:
+ case 105:
/* Line 1388 of yacc.c */
-#line 618 "parse-gram.y"
+#line 619 "parse-gram.y"
{
(yyval.symbol) = symbol_get (quotearg_style (c_quoting_style, (yyvsp[0].chars)), (yylsp[0]));
symbol_class_set ((yyval.symbol), token_sym, (yylsp[0]), false);
}
/* Line 1388 of yacc.c */
-#line 2657 "src/parse-gram.c"
+#line 2665 "src/parse-gram.c"
break;
- case 106:
+ case 107:
/* Line 1388 of yacc.c */
-#line 627 "parse-gram.y"
+#line 628 "parse-gram.y"
{
code_props plain_code;
code_props_plain_init (&plain_code, (yyvsp[0].chars), (yylsp[0]));
code_scanner_last_string_free ();
}
/* Line 1388 of yacc.c */
-#line 2672 "src/parse-gram.c"
+#line 2680 "src/parse-gram.c"
break;
/* Line 1388 of yacc.c */
-#line 2677 "src/parse-gram.c"
+#line 2685 "src/parse-gram.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
}
/* Line 1607 of yacc.c */
-#line 637 "parse-gram.y"
+#line 638 "parse-gram.y"