]> git.saurik.com Git - bison.git/commitdiff
%define: accept unquoted values.
authorJoel E. Denny <jdenny@clemson.edu>
Fri, 28 Aug 2009 07:46:37 +0000 (03:46 -0400)
committerJoel E. Denny <jdenny@clemson.edu>
Fri, 28 Aug 2009 12:04:11 +0000 (08:04 -0400)
* NEWS (2.5): Group all %define changes together, and document
this one.  Remove quotes in IELR and canonical LR entry.
* doc/bison.texinfo: Remove quotes in most examples throughout.
(Decl Summary): Update %define documentation.
(Table of Symbols): Likewise.
* src/ielr.c (LrType): Update documentation.
* src/parse-gram.y (content.opt): Add production for ID.
* tests/calc.at: Likewise.
* tests/existing.at: Likewise.
* tests/input.at: Likewise.
* tests/local.at: Likewise.
* tests/push.at: Likewise.
* tests/reduce.at: Likewise.
* tests/torture.at: Likewise.
(cherry picked from commit cf499cff31eabd04e37107484647bdd453137d1d)

Conflicts:

doc/bison.texinfo
src/parse-gram.c
src/parse-gram.h
tests/actions.at
tests/calc.at

13 files changed:
ChangeLog
NEWS
doc/bison.texinfo
src/ielr.c
src/parse-gram.c
src/parse-gram.y
tests/calc.at
tests/existing.at
tests/input.at
tests/local.at
tests/push.at
tests/reduce.at
tests/torture.at

index 360854c17ed016977aa4cb817f9acfd84f94d11d..54db9976e5705aa258bba2c509cdcab611bf603a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2009-08-28  Joel E. Denny  <jdenny@clemson.edu>
+
+       %define: accept unquoted values.
+       * NEWS (2.5): Group all %define changes together, and document
+       this one.  Remove quotes in IELR and canonical LR entry.
+       * doc/bison.texinfo: Remove quotes in most examples throughout.
+       (Decl Summary): Update %define documentation.
+       (Table of Symbols): Likewise.
+       * src/ielr.c (LrType): Update documentation.
+       * src/parse-gram.y (content.opt): Add production for ID.
+       * tests/calc.at: Likewise.
+       * tests/existing.at: Likewise.
+       * tests/input.at: Likewise.
+       * tests/local.at: Likewise.
+       * tests/push.at: Likewise.
+       * tests/reduce.at: Likewise.
+       * tests/torture.at: Likewise.
+
 2009-08-28  Joel E. Denny  <jdenny@clemson.edu>
 
        %define lr.type: make values lowercase IDs.
diff --git a/NEWS b/NEWS
index 3dab543cf77fc4dbc05bea9f2df44462bfb08942..0086f414a78e30dc6235c58214116dcc5c9ebc35 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -20,9 +20,9 @@ Bison News
   default.  You can specify the type of parser tables in the grammar
   file with these directives:
 
-    %define lr.type "lalr"
-    %define lr.type "ielr"
-    %define lr.type "canonical-lr"
+    %define lr.type lalr
+    %define lr.type ielr
+    %define lr.type canonical-lr
 
   The default reduction optimization in the parser tables can also be
   adjusted using `%define lr.default-reductions'.  See the documentation
@@ -33,9 +33,11 @@ Bison News
   These features are experimental.  More user feedback will help to
   stabilize them.
 
-** Multiple %define's for any variable is now an error not a warning.
+** %define improvements.
 
-** %define can now be invoked via the command line.
+*** Multiple invocations for any variable is now an error not a warning.
+
+*** Can now be invoked via the command line.
 
   Each of these command-line options
 
@@ -54,7 +56,7 @@ Bison News
   quietly override %define, but -D and --define do not.  For further
   details, see the section "Bison Options" in the Bison manual.
 
-** %define variables renamed.
+*** Variables renamed.
 
   The following %define variables
 
@@ -69,7 +71,18 @@ Bison News
   The old names are now deprecated but will be maintained indefinitely
   for backward compatibility.
 
-** Symbols names
+*** Values no longer need to be quoted in grammar file.
+
+  If a %define value is an identifier, it no longer needs to be placed
+  within quotations marks.  For example,
+
+    %define api.push-pull "push"
+
+  can be rewritten as
+
+    %define api.push-pull push
+
+** Symbol names.
 
   Consistently with directives (such as %error-verbose) and variables
   (e.g. push-pull), symbol names may include dashes in any position,
index 8ed32e0cc764f1e86e2717d1da2bc88929aeb71e..3e50f5ac37a28346951a2bcf119b9ff7f70135f9 100644 (file)
@@ -4580,7 +4580,7 @@ The following Bison declaration says that you want the parser to be a push
 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
@@ -4591,7 +4591,7 @@ what you are doing, your declarations should look like this:
 
 @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
@@ -4640,14 +4640,14 @@ for use by the next invocation of the @code{yypush_parse} function.
 
 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 @code{%define api.push-pull "push"} declaration with the
-@code{%define api.push-pull "both"} declaration.  Doing this will create all of
+you should replace the @code{%define api.push-pull push} declaration with the
+@code{%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
-@code{%define api.push-pull "both"} declaration slower than the normal
+@code{%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
@@ -4664,8 +4664,8 @@ yypstate_delete (ps);
 @end example
 
 Adding the @code{%define api.pure} declaration does exactly the same thing to
-the generated parser with @code{%define api.push-pull "both"} as it did for
-@code{%define api.push-pull "push"}.
+the generated parser with @code{%define api.push-pull both} as it did for
+@code{%define api.push-pull push}.
 
 @node Decl Summary
 @subsection Bison Declaration Summary
@@ -4834,6 +4834,7 @@ already defined, so that the debugging facilities are compiled.
 @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
@@ -4843,7 +4844,11 @@ Summary,,%language}, @pxref{Decl Summary,,%skeleton}).
 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.
@@ -4851,12 +4856,12 @@ In this case, Bison will complain if the variable definition does not meet one
 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
@@ -4877,7 +4882,7 @@ Some of the accepted @var{variable}s are:
 
 @item Accepted Values: Boolean
 
-@item Default Value: @code{"false"}
+@item Default Value: @code{false}
 @end itemize
 
 @item api.push-pull
@@ -4891,9 +4896,9 @@ Some of the accepted @var{variable}s are:
 (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
 
 @item lr.default-reductions
@@ -4920,7 +4925,7 @@ More user feedback will help to stabilize it.)
 
 @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.
@@ -4932,7 +4937,7 @@ That is, unlike in a canonical @acronym{LR} state, the lookahead sets of
 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
@@ -4944,7 +4949,7 @@ states, then a canonical @acronym{LR} parser reports a syntax error as
 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
@@ -4956,8 +4961,8 @@ without performing any extra reductions.
 
 @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
 
@@ -4978,7 +4983,7 @@ are useless in the generated parser.
 
 @item Accepted Values: Boolean
 
-@item Default Value: @code{"false"}
+@item Default Value: @code{false}
 
 @item Caveats:
 
@@ -5020,7 +5025,7 @@ More user feedback will help to stabilize it.)
 
 @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.
@@ -5049,7 +5054,7 @@ investigate such problems while ignoring the more subtle differences
 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
@@ -5063,7 +5068,7 @@ grammars, the number of conflicts for @acronym{IELR} is often an order
 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
@@ -5079,7 +5084,7 @@ Even when canonical @acronym{LR} behavior is ultimately desired,
 facilitate the development of a grammar.
 @end itemize
 
-@item Default Value: @code{"lalr"}
+@item Default Value: @code{lalr}
 @end itemize
 
 @item namespace
@@ -5460,8 +5465,8 @@ exp: @dots{}    @{ @dots{}; *randomness += 1; @dots{} @}
 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 @code{%define api.push-pull "push"} or
-@code{%define api.push-pull "both"} declaration is used.
+function is available if either the @code{%define api.push-pull push} or
+@code{%define api.push-pull both} declaration is used.
 @xref{Push Decl, ,A Push Parser}.
 
 @deftypefun int yypush_parse (yypstate *yyps)
@@ -5478,7 +5483,7 @@ is required to finish parsing the grammar.
 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 @code{%define api.push-pull "both"}
+stream.  This function is available if the @code{%define api.push-pull both}
 declaration is used.
 @xref{Push Decl, ,A Push Parser}.
 
@@ -5494,8 +5499,8 @@ The value returned by @code{yypull_parse} is the same as for @code{yyparse}.
 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 @code{%define api.push-pull "push"} or
-@code{%define api.push-pull "both"} declaration is used.
+This function is available if either the @code{%define api.push-pull push} or
+@code{%define api.push-pull both} declaration is used.
 @xref{Push Decl, ,A Push Parser}.
 
 @deftypefun yypstate *yypstate_new (void)
@@ -5513,8 +5518,8 @@ allocated.
 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 @code{%define api.push-pull "push"} or
-@code{%define api.push-pull "both"} declaration is used.
+function is available if either the @code{%define api.push-pull push} or
+@code{%define api.push-pull both} declaration is used.
 @xref{Push Decl, ,A Push Parser}.
 
 @deftypefun void yypstate_delete (yypstate *yyps)
@@ -9022,7 +9027,7 @@ in a file; Bison itself defines a class representing a @dfn{location},
 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
-@code{%define location_type "@var{class-name}}.
+@code{%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
@@ -9965,6 +9970,7 @@ Precedence}.
 
 @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
index 399d53be9b8cf1d914aecf4d1122e24f7c0ac45c..657c3a1d942bad08e8c77c33a6d6a1393b15b4a9 100644 (file)
@@ -35,7 +35,7 @@
 #include "state.h"
 #include "symtab.h"
 
-/** Records the value of the \%define variable "lr.type".  */
+/** Records the value of the \%define variable lr.type.  */
 typedef enum { LR_TYPE__LALR, LR_TYPE__IELR, LR_TYPE__CANONICAL_LR } LrType;
 
 /**
index d6d3d537bbb472cda15808f2c10efa6e1db4cf4e..742e0fd73376768f163c37053a30dee26037d373 100644 (file)
@@ -560,16 +560,16 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  3
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   159
+#define YYLAST   160
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  58
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  34
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  107
+#define YYNRULES  108
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  147
+#define YYNSTATES  148
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
@@ -630,7 +630,7 @@ static const yytype_uint16 yyprhs[] =
      180,   182,   184,   187,   190,   194,   196,   199,   201,   204,
      206,   209,   212,   213,   218,   220,   224,   227,   228,   232,
      236,   240,   244,   248,   249,   251,   253,   255,   256,   258,
-     260,   262,   264,   266,   268,   270,   272,   273
+     260,   262,   264,   266,   268,   270,   272,   274,   275
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
@@ -661,9 +661,9 @@ static const yytype_int8 yyrhs[] =
       81,    50,    82,    -1,    81,    52,    -1,    -1,    82,    89,
       83,    -1,    82,    43,    83,    -1,    82,    13,    89,    -1,
       82,    14,     4,    -1,    82,    15,    53,    -1,    -1,    56,
-      -1,    47,    -1,     3,    -1,    -1,     3,    -1,    43,    -1,
-      47,    -1,    44,    -1,    48,    -1,    87,    -1,    90,    -1,
-       3,    -1,    -1,    49,    45,    -1
+      -1,    47,    -1,     3,    -1,    -1,    47,    -1,     3,    -1,
+      43,    -1,    47,    -1,    44,    -1,    48,    -1,    87,    -1,
+      90,    -1,     3,    -1,    -1,    49,    45,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
@@ -678,8 +678,8 @@ static const yytype_uint16 yyrline[] =
      442,   443,   448,   450,   455,   456,   460,   461,   462,   463,
      468,   473,   478,   484,   490,   501,   502,   511,   512,   518,
      519,   520,   527,   527,   532,   533,   534,   539,   541,   543,
-     545,   547,   549,   554,   556,   567,   568,   573,   574,   583,
-     603,   605,   614,   619,   620,   625,   632,   634
+     545,   547,   549,   554,   556,   567,   568,   573,   574,   575,
+     584,   604,   606,   615,   620,   621,   626,   633,   635
 };
 #endif
 
@@ -739,8 +739,8 @@ static const yytype_uint8 yyr1[] =
       71,    71,    72,    72,    73,    73,    74,    74,    74,    74,
       75,    75,    75,    75,    75,    76,    76,    77,    77,    78,
       78,    78,    80,    79,    81,    81,    81,    82,    82,    82,
-      82,    82,    82,    83,    83,    84,    84,    85,    85,    86,
-      87,    87,    88,    89,    89,    90,    91,    91
+      82,    82,    82,    83,    83,    84,    84,    85,    85,    85,
+      86,    87,    87,    88,    89,    89,    90,    91,    91
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -756,7 +756,7 @@ static const yytype_uint8 yyr2[] =
        1,     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,     1,     0,     2
 };
 
 /* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
@@ -769,25 +769,25 @@ static const yytype_uint8 yydefact[] =
        0,    16,     0,     0,     0,    20,     0,    41,    23,    24,
        0,     0,    28,     0,     0,     0,    31,    32,    33,     0,
        6,    34,    44,     4,     5,    36,    35,    56,     0,     0,
-       0,     0,     0,    99,     0,    42,    96,    95,    97,    10,
+       0,     0,     0,   100,     0,    42,    96,    95,    97,    10,
       12,    13,    14,     0,    17,    18,    19,    21,     0,    25,
-       0,    27,    29,    30,   105,   101,   100,   103,    37,   104,
-       0,   102,     0,     0,    77,    79,    93,    45,     0,    57,
+       0,    27,    29,    30,   106,   102,   101,   104,    37,   105,
+       0,   103,     0,     0,    77,    79,    93,    45,     0,    57,
        0,    70,    75,    50,    71,    48,    51,    62,    67,    68,
-      69,    38,    64,    66,    39,    43,    98,     8,    15,    22,
-      26,    81,    80,     0,    78,     2,    94,    82,    46,    52,
-      58,    60,    76,    72,    73,    63,    65,   107,    87,    59,
-      61,    74,    83,    84,    87,    86,     0,     0,     0,    93,
-      93,    85,    90,    91,    92,    89,    88
+      69,    38,    64,    66,    39,    43,    99,    98,     8,    15,
+      22,    26,    81,    80,     0,    78,     2,    94,    82,    46,
+      52,    58,    60,    76,    72,    73,    63,    65,   108,    87,
+      59,    61,    74,    83,    84,    87,    86,     0,     0,     0,
+      93,    93,    85,    90,    91,    92,    89,    88
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
       -1,     1,     2,    43,    82,    88,    45,    49,    48,    46,
-      47,    90,   119,   120,    96,   101,   102,    92,    93,    83,
-      84,    85,   128,   132,   133,   117,    58,   107,    55,    77,
-      86,   103,    79,   115
+      47,    90,   120,   121,    96,   101,   102,    92,    93,    83,
+      84,    85,   129,   133,   134,   118,    58,   108,    55,    77,
+      86,   103,    79,   116
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
@@ -795,54 +795,55 @@ static const yytype_int16 yydefgoto[] =
 #define YYPACT_NINF -60
 static const yytype_int16 yypact[] =
 {
-     -60,     4,   102,   -60,   -60,   -60,     7,    10,    22,   -60,
-     -60,   -60,    -6,   -60,   -60,    27,    40,   -60,    65,    72,
-       2,   -60,    35,    79,    47,   -60,    11,   -60,   -60,   -60,
-      25,    48,   -60,    89,    90,     0,   -60,   -60,   -60,    15,
-     -60,   -60,    52,   -60,   -60,   -60,   -60,    41,    -2,    -2,
-       0,    26,    26,   -60,    59,   -60,   -60,   -60,    92,   -60,
-     -60,   -60,   -60,   100,   -60,   -60,   -60,   -60,   101,   -60,
-     112,   -60,   -60,   -60,   -60,   -60,   -60,   -60,   -60,   -60,
-      64,   -60,    93,     1,   -60,   -60,    49,   -60,    59,   -60,
-       0,   -60,   -60,    -2,    83,    -2,     0,   -60,   -60,   -60,
+     -60,     4,   103,   -60,   -60,   -60,    -2,    -1,    10,   -60,
+     -60,   -60,    17,   -60,   -60,    27,    66,   -60,    72,    79,
+       2,   -60,    47,    88,    49,   -60,    11,   -60,   -60,   -60,
+      25,    50,   -60,    91,    92,     0,   -60,   -60,   -60,    15,
+     -60,   -60,    51,   -60,   -60,   -60,   -60,    48,    -8,    -8,
+       0,    26,    26,   -60,    60,   -60,   -60,   -60,    31,   -60,
+     -60,   -60,   -60,   101,   -60,   -60,   -60,   -60,   102,   -60,
+     113,   -60,   -60,   -60,   -60,   -60,   -60,   -60,   -60,   -60,
+      54,   -60,    65,     1,   -60,   -60,    62,   -60,    60,   -60,
+       0,   -60,   -60,    -8,    83,    -8,     0,   -60,   -60,   -60,
      -60,    26,   -60,   -60,    26,   -60,   -60,   -60,   -60,   -60,
-     -60,   -60,   -60,   103,   -60,   -60,   -60,   -60,   -60,     0,
-     -60,   113,   -60,   143,   -60,   -60,   -60,   -60,   -60,   -60,
-     -60,   -60,   -16,    53,   -60,   -60,     0,   145,    94,    49,
-      49,    53,   -60,   -60,   -60,   -60,   -60
+     -60,   -60,   -60,   -60,   104,   -60,   -60,   -60,   -60,   -60,
+       0,   -60,   142,   -60,   144,   -60,   -60,   -60,   -60,   -60,
+     -60,   -60,   -60,    -9,    53,   -60,   -60,     0,   146,    95,
+      62,    62,    53,   -60,   -60,   -60,   -60,   -60
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-     -60,   -60,   -60,   -60,   148,   -60,   -60,   -60,   -60,   -60,
-     -60,   -60,   -60,    33,   -60,   104,   -42,   -18,   106,   -60,
-      74,   -60,   -60,   -60,    24,   -51,   -60,   -60,   -36,   -10,
+     -60,   -60,   -60,   -60,   149,   -60,   -60,   -60,   -60,   -60,
+     -60,   -60,   -60,    33,   -60,   105,   -42,   -18,   107,   -60,
+      75,   -60,   -60,   -60,    24,   -52,   -60,   -60,   -36,   -11,
      -60,   -35,   -59,   -60
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    positive, shift that token.  If negative, reduce the rule which
    number is the opposite.  If YYTABLE_NINF, syntax error.  */
-#define YYTABLE_NINF -107
+#define YYTABLE_NINF -108
 static const yytype_int16 yytable[] =
 {
-      78,  -106,    80,    74,     3,    62,     4,     5,     6,     7,
+      78,  -107,    80,    74,     3,    62,     4,     5,     6,     7,
        8,     9,    10,    11,    67,    97,    80,    12,   105,    14,
        4,     5,     6,     7,     8,     9,    10,    11,    69,    74,
-      56,    12,    27,    14,   134,   124,   135,    53,    94,    94,
-      35,    54,    75,    59,    75,    76,    27,    76,    63,    81,
-     113,    91,   118,    51,    35,   121,    74,    68,    42,   126,
-      50,   125,   126,    81,   131,    52,   136,   137,   138,    60,
-      75,    70,    42,    76,    57,   122,    61,   122,    64,    98,
-      99,   100,    65,    94,   121,    94,    74,   123,   145,   146,
-      66,    71,    72,    73,    89,   106,   139,    75,   140,    87,
-      76,   142,    53,   108,   109,   116,   140,     4,     5,     6,
-       7,     8,     9,    10,    11,   110,   111,   130,    12,    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,    38,   112,    74,   144,   127,   143,
-      44,    39,   129,    40,    41,    95,   104,   114,   141,    42
+      56,    12,    27,    14,   106,   125,    75,    94,    94,    76,
+      35,   135,    51,   136,    75,    91,    27,    76,    63,    81,
+     114,    50,   119,    52,    35,   122,    74,    68,    42,   127,
+      53,   126,   127,    81,    54,   132,   137,   138,   139,    59,
+      75,    70,    42,    76,    57,   123,    60,   123,   107,    98,
+      99,   100,    94,    61,    94,   122,    74,   124,   146,   147,
+      64,    65,    66,    71,    72,    73,   140,    75,    87,   141,
+      76,    89,   143,    53,   109,   110,   112,   141,     4,     5,
+       6,     7,     8,     9,    10,    11,   111,   113,   117,    12,
+      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,    38,   131,    74,   145,   128,
+     144,    44,    39,   130,    40,    41,    95,   104,   115,   142,
+      42
 };
 
 #define yypact_value_is_default(yystate) \
@@ -856,19 +857,20 @@ static const yytype_uint8 yycheck[] =
       35,     0,     1,     3,     0,     3,     5,     6,     7,     8,
        9,    10,    11,    12,     3,    50,     1,    16,    54,    18,
        5,     6,     7,     8,     9,    10,    11,    12,     3,     3,
-       3,    16,    31,    18,    50,    94,    52,    43,    48,    49,
-      39,    47,    44,     3,    44,    47,    31,    47,    46,    48,
+       3,    16,    31,    18,     3,    94,    44,    48,    49,    47,
+      39,    50,    43,    52,    44,    53,    31,    47,    46,    48,
       49,    53,    88,    43,    39,    90,     3,    46,    57,   101,
-      53,    96,   104,    48,   123,    43,    13,    14,    15,     4,
-      44,    46,    57,    47,    47,    93,     4,    95,    43,    53,
-      54,    55,     3,    93,   119,    95,     3,     4,   139,   140,
-      43,    43,     3,     3,    53,     3,    43,    44,   133,    47,
-      47,   136,    43,     3,     3,    56,   141,     5,     6,     7,
-       8,     9,    10,    11,    12,     3,    52,     4,    16,    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,    42,    52,     3,    53,    45,     4,
-       2,    49,   119,    51,    52,    49,    52,    83,   134,    57
+      43,    96,   104,    48,    47,   124,    13,    14,    15,     3,
+      44,    46,    57,    47,    47,    93,     4,    95,    47,    53,
+      54,    55,    93,     4,    95,   120,     3,     4,   140,   141,
+      43,     3,    43,    43,     3,     3,    43,    44,    47,   134,
+      47,    53,   137,    43,     3,     3,    52,   142,     5,     6,
+       7,     8,     9,    10,    11,    12,     3,    52,    56,    16,
+      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,    42,     4,     3,    53,    45,
+       4,     2,    49,   120,    51,    52,    49,    52,    83,   135,
+      57
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -885,11 +887,11 @@ static const yytype_uint8 yystos[] =
       46,    43,     3,     3,     3,    44,    47,    87,    89,    90,
        1,    48,    62,    77,    78,    79,    88,    47,    63,    53,
       69,    53,    75,    76,    87,    76,    72,    89,    53,    54,
-      55,    73,    74,    89,    73,    86,     3,    85,     3,     3,
-       3,    52,    52,    49,    78,    91,    56,    83,    86,    70,
-      71,    89,    75,     4,    90,    89,    74,    45,    80,    71,
-       4,    90,    81,    82,    50,    52,    13,    14,    15,    43,
-      89,    82,    89,     4,    53,    83,    83
+      55,    73,    74,    89,    73,    86,     3,    47,    85,     3,
+       3,     3,    52,    52,    49,    78,    91,    56,    83,    86,
+      70,    71,    89,    75,     4,    90,    89,    74,    45,    80,
+      71,     4,    90,    81,    82,    50,    52,    13,    14,    15,
+      43,    89,    82,    89,     4,    53,    83,    83
 };
 
 #define yyerrok                (yyerrstatus = 0)
@@ -1044,7 +1046,7 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
        { fputs (quotearg_style (c_quoting_style, (yyvaluep->chars)), stderr); };
 
 /* Line 721 of yacc.c  */
-#line 1048 "parse-gram.c"
+#line 1050 "parse-gram.c"
        break;
       case 4: /* "\"integer\"" */
 
@@ -1053,7 +1055,7 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
        { fprintf (stderr, "%d", (yyvaluep->integer)); };
 
 /* Line 721 of yacc.c  */
-#line 1057 "parse-gram.c"
+#line 1059 "parse-gram.c"
        break;
       case 43: /* "\"{...}\"" */
 
@@ -1062,7 +1064,7 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
        { fprintf (stderr, "{\n%s\n}", (yyvaluep->code)); };
 
 /* Line 721 of yacc.c  */
-#line 1066 "parse-gram.c"
+#line 1068 "parse-gram.c"
        break;
       case 44: /* "\"char\"" */
 
@@ -1071,7 +1073,7 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
        { fputs (char_name ((yyvaluep->character)), stderr); };
 
 /* Line 721 of yacc.c  */
-#line 1075 "parse-gram.c"
+#line 1077 "parse-gram.c"
        break;
       case 45: /* "\"epilogue\"" */
 
@@ -1080,7 +1082,7 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
        { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
 
 /* Line 721 of yacc.c  */
-#line 1084 "parse-gram.c"
+#line 1086 "parse-gram.c"
        break;
       case 47: /* "\"identifier\"" */
 
@@ -1089,7 +1091,7 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
        { fputs ((yyvaluep->uniqstr), stderr); };
 
 /* Line 721 of yacc.c  */
-#line 1093 "parse-gram.c"
+#line 1095 "parse-gram.c"
        break;
       case 48: /* "\"identifier:\"" */
 
@@ -1098,7 +1100,7 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
        { fprintf (stderr, "%s:", (yyvaluep->uniqstr)); };
 
 /* Line 721 of yacc.c  */
-#line 1102 "parse-gram.c"
+#line 1104 "parse-gram.c"
        break;
       case 51: /* "\"%{...%}\"" */
 
@@ -1107,7 +1109,7 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
        { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
 
 /* Line 721 of yacc.c  */
-#line 1111 "parse-gram.c"
+#line 1113 "parse-gram.c"
        break;
       case 53: /* "\"type\"" */
 
@@ -1116,7 +1118,7 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
        { fprintf (stderr, "<%s>", (yyvaluep->uniqstr)); };
 
 /* Line 721 of yacc.c  */
-#line 1120 "parse-gram.c"
+#line 1122 "parse-gram.c"
        break;
       case 84: /* "variable" */
 
@@ -1125,7 +1127,7 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
        { fputs ((yyvaluep->uniqstr), stderr); };
 
 /* Line 721 of yacc.c  */
-#line 1129 "parse-gram.c"
+#line 1131 "parse-gram.c"
        break;
       case 85: /* "content.opt" */
 
@@ -1134,7 +1136,7 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
        { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
 
 /* Line 721 of yacc.c  */
-#line 1138 "parse-gram.c"
+#line 1140 "parse-gram.c"
        break;
       case 86: /* "braceless" */
 
@@ -1143,7 +1145,7 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
        { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
 
 /* Line 721 of yacc.c  */
-#line 1147 "parse-gram.c"
+#line 1149 "parse-gram.c"
        break;
       case 87: /* "id" */
 
@@ -1152,7 +1154,7 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
        { fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
 
 /* Line 721 of yacc.c  */
-#line 1156 "parse-gram.c"
+#line 1158 "parse-gram.c"
        break;
       case 88: /* "id_colon" */
 
@@ -1161,7 +1163,7 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
        { fprintf (stderr, "%s:", (yyvaluep->symbol)->tag); };
 
 /* Line 721 of yacc.c  */
-#line 1165 "parse-gram.c"
+#line 1167 "parse-gram.c"
        break;
       case 89: /* "symbol" */
 
@@ -1170,7 +1172,7 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
        { fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
 
 /* Line 721 of yacc.c  */
-#line 1174 "parse-gram.c"
+#line 1176 "parse-gram.c"
        break;
       case 90: /* "string_as_id" */
 
@@ -1179,7 +1181,7 @@ yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp)
        { fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
 
 /* Line 721 of yacc.c  */
-#line 1183 "parse-gram.c"
+#line 1185 "parse-gram.c"
        break;
       default:
        break;
@@ -1710,7 +1712,7 @@ YYLTYPE yylloc;
 }
 
 /* Line 1250 of yacc.c  */
-#line 1714 "parse-gram.c"
+#line 1716 "parse-gram.c"
   yylsp[0] = yylloc;
 
   goto yysetstate;
@@ -2587,10 +2589,17 @@ yyreduce:
     { (yyval.chars) = ""; }
     break;
 
-  case 99:
+  case 98:
+
+/* Line 1463 of yacc.c  */
+#line 574 "parse-gram.y"
+    { (yyval.chars) = (yyvsp[(1) - (1)].uniqstr); }
+    break;
+
+  case 100:
 
 /* Line 1463 of yacc.c  */
-#line 584 "parse-gram.y"
+#line 585 "parse-gram.y"
     {
       code_props plain_code;
       (yyvsp[(1) - (1)].code)[strlen ((yyvsp[(1) - (1)].code)) - 1] = '\n';
@@ -2601,17 +2610,17 @@ yyreduce:
     }
     break;
 
-  case 100:
+  case 101:
 
 /* Line 1463 of yacc.c  */
-#line 604 "parse-gram.y"
+#line 605 "parse-gram.y"
     { (yyval.symbol) = symbol_from_uniqstr ((yyvsp[(1) - (1)].uniqstr), (yylsp[(1) - (1)])); }
     break;
 
-  case 101:
+  case 102:
 
 /* Line 1463 of yacc.c  */
-#line 606 "parse-gram.y"
+#line 607 "parse-gram.y"
     {
       (yyval.symbol) = symbol_get (char_name ((yyvsp[(1) - (1)].character)), (yylsp[(1) - (1)]));
       symbol_class_set ((yyval.symbol), token_sym, (yylsp[(1) - (1)]), false);
@@ -2619,27 +2628,27 @@ yyreduce:
     }
     break;
 
-  case 102:
+  case 103:
 
 /* Line 1463 of yacc.c  */
-#line 614 "parse-gram.y"
+#line 615 "parse-gram.y"
     { (yyval.symbol) = symbol_from_uniqstr ((yyvsp[(1) - (1)].uniqstr), (yylsp[(1) - (1)])); }
     break;
 
-  case 105:
+  case 106:
 
 /* Line 1463 of yacc.c  */
-#line 626 "parse-gram.y"
+#line 627 "parse-gram.y"
     {
       (yyval.symbol) = symbol_get (quotearg_style (c_quoting_style, (yyvsp[(1) - (1)].chars)), (yylsp[(1) - (1)]));
       symbol_class_set ((yyval.symbol), token_sym, (yylsp[(1) - (1)]), false);
     }
     break;
 
-  case 107:
+  case 108:
 
 /* Line 1463 of yacc.c  */
-#line 635 "parse-gram.y"
+#line 636 "parse-gram.y"
     {
       code_props plain_code;
       code_props_plain_init (&plain_code, (yyvsp[(2) - (2)].chars), (yylsp[(2) - (2)]));
@@ -2653,7 +2662,7 @@ yyreduce:
 
 
 /* Line 1463 of yacc.c  */
-#line 2657 "parse-gram.c"
+#line 2666 "parse-gram.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -2872,7 +2881,7 @@ yyreturn:
 
 
 /* Line 1683 of yacc.c  */
-#line 645 "parse-gram.y"
+#line 646 "parse-gram.y"
 
 
 
index c90d14d80cd0098ffa279bb6d096c7f35a9332fb..b60446880ceb4c51e0c8e2d46f2ece513c9a9553 100644 (file)
@@ -571,6 +571,7 @@ variable:
 /* Some content or empty by default. */
 content.opt:
   /* Nothing. */   { $$ = ""; }
+| ID { $$ = $1; }
 | STRING
 ;
 
index 802d48302617fdb5a73340f599e6e80b81397d7c..d085e826857fec83358ea340af3e51817e4eea1e 100644 (file)
@@ -576,7 +576,7 @@ AT_CHECK_CALC_LALR([%yacc])
 AT_CHECK_CALC_LALR([%error-verbose])
 
 AT_CHECK_CALC_LALR([%define api.pure %locations])
-AT_CHECK_CALC_LALR([%define api.push-pull "both" %define api.pure %locations])
+AT_CHECK_CALC_LALR([%define api.push-pull both %define api.pure %locations])
 AT_CHECK_CALC_LALR([%error-verbose %locations])
 
 AT_CHECK_CALC_LALR([%error-verbose %locations %defines %name-prefix "calc" %verbose %yacc])
@@ -585,7 +585,7 @@ AT_CHECK_CALC_LALR([%debug])
 AT_CHECK_CALC_LALR([%error-verbose %debug %locations %defines %name-prefix "calc" %verbose %yacc])
 
 AT_CHECK_CALC_LALR([%define api.pure %error-verbose %debug %locations %defines %name-prefix "calc" %verbose %yacc])
-AT_CHECK_CALC_LALR([%define api.push-pull "both" %define api.pure %error-verbose %debug %locations %defines %name-prefix "calc" %verbose %yacc])
+AT_CHECK_CALC_LALR([%define api.push-pull both %define api.pure %error-verbose %debug %locations %defines %name-prefix "calc" %verbose %yacc])
 
 AT_CHECK_CALC_LALR([%define api.pure %error-verbose %debug %locations %defines %name-prefix "calc" %verbose %yacc %parse-param {semantic_value *result} %parse-param {int *count}])
 
index 5a89732457ad36456027fc66520f2d0bc7d00213..ba06626b2696a4c666d08dd433e1829cb78cd86f 100644 (file)
@@ -42,18 +42,18 @@ AT_CHECK([[diff -u input-lalr.output input.output \
          [[0]], [$1])])
 
 AT_TEST_TABLES_AND_PARSE([$2[: LALR(1)]], [[LALR]], [[last-state]],
-                         [[%define lr.type "lalr"
+                         [[%define lr.type lalr
 ]$3],
                          [$4], [$5], [$6], [$7],
                          [AT_LALR1_DIFF_CHECK([$8])$9], [$10], [$11], [$12])
 AT_TEST_TABLES_AND_PARSE([$2[: IELR(1)]], [[IELR]], [[last-state]],
-                         [[%define lr.type "ielr"
+                         [[%define lr.type ielr
 ]$3],
                          [$4], [$5], [$6], [$7],
                          [AT_LALR1_DIFF_CHECK([$8])$9], [$10], [$11], [$12])
 AT_TEST_TABLES_AND_PARSE([$2[: Canonical LR(1)]], [[canonical LR]],
                          [[last-state,no-xml]],
-                         [[%define lr.type "canonical-lr"
+                         [[%define lr.type canonical-lr
 ]$3],
                          [$4], [$5], [$6], [$7],
                          [$9], [$10], [$11], [$12])
index 3c04d580600abb316a6026c5c23e66f4a4991e86..8a38cd5def983d1e1683b98b70d25d6555a91d37 100644 (file)
@@ -1004,7 +1004,7 @@ AT_SETUP([[%define enum variables]])
 
 # Front-end.
 AT_DATA([[input.y]],
-[[%define lr.default-reductions "bogus"
+[[%define lr.default-reductions bogus
 %%
 start: ;
 ]])
@@ -1017,7 +1017,7 @@ input.y:1.9-29: accepted value: `accepting'
 
 # Back-end.
 AT_DATA([[input.y]],
-[[%define api.push-pull "neither"
+[[%define api.push-pull neither
 %%
 start: ;
 ]])
@@ -1052,7 +1052,7 @@ input.y:1.9-21: accepted value: `both'
 ]])
 
 AT_DATA([[input.y]],
-[[%define lr.keep_unreachable_states "maybe"
+[[%define lr.keep_unreachable_states maybe
 %%
 start: ;
 ]])
@@ -1096,11 +1096,11 @@ AT_BISON_CHECK([[input.y]], [0], [],
 ])
 
 AT_CHECK_API_PURE([[%language "c++" %defines]], [[]])
-AT_CHECK_API_PURE([[%language "c++" %defines]], [["false"]])
+AT_CHECK_API_PURE([[%language "c++" %defines]], [[false]])
 AT_CHECK_API_PURE([[%language "c++" %defines %glr-parser]], [[""]])
-AT_CHECK_API_PURE([[%language "c++" %defines %glr-parser]], [["false"]])
-AT_CHECK_API_PURE([[%language "java"]], [["true"]])
-AT_CHECK_API_PURE([[%language "java"]], [["false"]])
+AT_CHECK_API_PURE([[%language "c++" %defines %glr-parser]], [[false]])
+AT_CHECK_API_PURE([[%language "java"]], [[true]])
+AT_CHECK_API_PURE([[%language "java"]], [[false]])
 
 AT_CLEANUP
 
index 38cd295ad7368ba3ee71d92bccbc24746e7737a3..c71b12da1f0ef611a1a71c1d342489fa29cb4b30 100644 (file)
@@ -77,7 +77,7 @@ m4_pushdef([AT_LOCATION_IF],
 [m4_bmatch([$3], [%locations], [$1], [$2])])
 m4_pushdef([AT_PURE_IF],
 [m4_bmatch([$3], [%define  *api\.pure\|%pure-parser],
-           [m4_bmatch([$3], [%define  *api\.pure *"false"], [$2], [$1])],
+           [m4_bmatch([$3], [%define  *api\.pure *"?false"?], [$2], [$1])],
            [$2])])
 m4_pushdef([AT_PURE_AND_LOC_IF],
 [m4_bmatch([$3], [%locations], [AT_PURE_IF($@)], [$2])])
index bf48c682c6c65bb2bc18010726b9cc789f67895f..831be0c06311a660718e2520de038334b31ed4bc 100644 (file)
@@ -33,7 +33,7 @@ AT_DATA_GRAMMAR([[input.y]],
   void yyerror (char const *msg);
 %}
 
-%define api.pure %define api.push-pull "push"
+%define api.pure %define api.push-pull push
 
 %%
 
@@ -93,7 +93,7 @@ AT_DATA_GRAMMAR([[input.y]],
   int yylex (void);
 %}
 
-%define api.push-pull "]$1["
+%define api.push-pull ]$1[
 
 %%
 
@@ -156,7 +156,7 @@ AT_SETUP([[Push Parsing: Unsupported Skeletons]])
 
 AT_DATA([[input.y]],
 [[%glr-parser
-%define api.push-pull "push"
+%define api.push-pull push
 %%
 start: ;
 ]])
index 45a856a5277fc6206ad2b73c4aa6232f54eb5990..e1e336785a0351d09019e9a8081ae9ca4fb9d078 100644 (file)
@@ -375,19 +375,19 @@ m4_define([AT_TEST_LR_TYPE],
 AT_TEST_TABLES_AND_PARSE([[no %define lr.type: ]$1],
                          [[LALR]], [[]],
                          [$2], m4_shiftn(2, $@))
-AT_TEST_TABLES_AND_PARSE([[%define lr.type "lalr": ]$1],
+AT_TEST_TABLES_AND_PARSE([[%define lr.type lalr: ]$1],
                          [[LALR]], [[]],
-                         [[%define lr.type "lalr"
+                         [[%define lr.type lalr
 ]$2],
                          m4_shiftn(2, $@))
-AT_TEST_TABLES_AND_PARSE([[%define lr.type "ielr": ]$1],
+AT_TEST_TABLES_AND_PARSE([[%define lr.type ielr: ]$1],
                          [[IELR]], [[]],
-                         [[%define lr.type "ielr"
+                         [[%define lr.type ielr
 ]$2],
                          m4_shiftn(2, $@))
-AT_TEST_TABLES_AND_PARSE([[%define lr.type "canonical-lr": ]$1],
+AT_TEST_TABLES_AND_PARSE([[%define lr.type canonical-lr: ]$1],
                          [[canonical LR]], [[]],
-                         [[%define lr.type "canonical-lr"
+                         [[%define lr.type canonical-lr
 ]$2],
                          m4_shiftn(2, $@))
 ])
@@ -1454,17 +1454,17 @@ AT_TEST_TABLES_AND_PARSE([[no %define lr.default-reductions]],
                          [[all]], [[]],
                          [[]],
                          [$1], [$2], [[]], [$3])
-AT_TEST_TABLES_AND_PARSE([[%define lr.default-reductions "all"]],
+AT_TEST_TABLES_AND_PARSE([[%define lr.default-reductions all]],
                          [[all]], [[]],
-                         [[%define lr.default-reductions "all"]],
+                         [[%define lr.default-reductions all]],
                          [$1], [$2], [[]], [$3])
-AT_TEST_TABLES_AND_PARSE([[%define lr.default-reductions "consistent"]],
+AT_TEST_TABLES_AND_PARSE([[%define lr.default-reductions consistent]],
                          [[consistent]], [[]],
-                         [[%define lr.default-reductions "consistent"]],
+                         [[%define lr.default-reductions consistent]],
                          [$1], [$2], [[]], [$3])
-AT_TEST_TABLES_AND_PARSE([[%define lr.default-reductions "accepting"]],
+AT_TEST_TABLES_AND_PARSE([[%define lr.default-reductions accepting]],
                          [[accepting]], [[]],
-                         [[%define lr.default-reductions "accepting"]],
+                         [[%define lr.default-reductions accepting]],
                          [$1], [$2], [[]], [$3])
 ])
 
index 91b3b1b93e1183381b3a0002de9055ac6660577c..47435cbcbc6dae69ced8fc4e9236d7b7343440bd 100644 (file)
@@ -496,7 +496,7 @@ AT_PARSER_CHECK([./input 10000], 2, [], [ignore],
 # just helps guarantee we don't let the YYSTACK_USE_ALLOCA feature affect
 # push parsers.
 AT_DATA_STACK_TORTURE([AT_USE_ALLOCA],
-[[%define api.push-pull "both"
+[[%define api.push-pull both
 ]])
 AT_PARSER_CHECK([./input 20], 0, [], [ignore],
                 [[VALGRIND_OPTS="$VALGRIND_OPTS --log-fd=1"]])
@@ -534,7 +534,7 @@ AT_PARSER_CHECK([./input 10000], 2, [], [ignore],
                 [[VALGRIND_OPTS="$VALGRIND_OPTS --log-fd=1"]])
 
 AT_DATA_STACK_TORTURE([AT_USE_ALLOCA],
-[[%define api.push-pull "both"
+[[%define api.push-pull both
 ]])
 AT_PARSER_CHECK([./input 20], 0, [], [ignore],
                 [[VALGRIND_OPTS="$VALGRIND_OPTS --log-fd=1"]])