bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 11/13] regen


From: Akim Demaille
Subject: [PATCH 11/13] regen
Date: Sat, 18 Jan 2020 16:40:10 +0100

---
 src/parse-gram.c | 571 ++++++++++++++++++++++++-----------------------
 src/parse-gram.h | 131 +++++------
 2 files changed, 361 insertions(+), 341 deletions(-)

diff --git a/src/parse-gram.c b/src/parse-gram.c
index 37960d24..9cf5e68e 100644
--- a/src/parse-gram.c
+++ b/src/parse-gram.c
@@ -485,16 +485,16 @@ union yyalloc
 #define YYLAST   234
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  60
+#define YYNTOKENS  61
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  42
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  122
+#define YYNRULES  123
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  166
+#define YYNSTATES  167
 
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   314
+#define YYMAXUTOK   315
 
 
 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
@@ -505,19 +505,19 @@ union yyalloc
   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_int16 yyrline[] =
 {
-       0,   293,   293,   302,   303,   307,   308,   314,   318,   323,
-     324,   329,   330,   331,   332,   333,   338,   343,   344,   345,
-     346,   347,   348,   348,   349,   350,   351,   352,   353,   354,
-     355,   356,   360,   361,   370,   371,   375,   386,   390,   394,
-     402,   412,   413,   423,   424,   430,   443,   443,   448,   448,
-     453,   457,   467,   468,   469,   470,   474,   475,   480,   481,
-     485,   486,   490,   491,   492,   505,   514,   518,   522,   530,
-     531,   535,   548,   549,   561,   565,   569,   577,   579,   584,
-     591,   601,   605,   609,   617,   622,   634,   635,   641,   642,
-     643,   650,   650,   658,   659,   660,   665,   668,   670,   672,
-     674,   676,   678,   680,   682,   684,   689,   690,   699,   723,
-     724,   725,   726,   738,   740,   767,   772,   773,   778,   787,
-     788,   792,   793
+       0,   294,   294,   303,   304,   308,   309,   315,   319,   324,
+     325,   330,   331,   332,   333,   334,   339,   344,   345,   346,
+     347,   348,   349,   349,   350,   351,   352,   353,   354,   355,
+     356,   357,   361,   362,   371,   372,   376,   387,   391,   395,
+     403,   413,   414,   424,   425,   431,   444,   444,   449,   449,
+     454,   458,   468,   469,   470,   471,   475,   476,   481,   482,
+     486,   487,   491,   492,   493,   506,   515,   519,   523,   531,
+     532,   536,   549,   550,   555,   556,   557,   575,   579,   583,
+     591,   593,   598,   605,   615,   619,   623,   631,   636,   648,
+     649,   655,   656,   657,   664,   664,   672,   673,   674,   679,
+     682,   684,   686,   688,   690,   692,   694,   696,   698,   703,
+     704,   713,   737,   738,   739,   740,   752,   754,   781,   786,
+     787,   792,   800,   801
 };
 #endif
 
@@ -535,27 +535,27 @@ yysymbol_name (int yysymbol)
 {
   static const char *const yy_sname[] =
   {
-  "end of file", "error", "$undefined", "string", "%token", "%nterm",
-  "%type", "%destructor", "%printer", "%left", "%right", "%nonassoc",
-  "%precedence", "%prec", "%dprec", "%merge", "%code", "%default-prec",
-  "%define", "%defines", "%error-verbose", "%expect", "%expect-rr",
-  "%<flag>", "%file-prefix", "%glr-parser", "%initial-action", "%language",
-  "%name-prefix", "%no-default-prec", "%no-lines",
-  "%nondeterministic-parser", "%output", "%pure-parser", "%require",
-  "%skeleton", "%start", "%token-table", "%verbose", "%yacc", "{...}",
-  "%?{...}", "[identifier]", "character literal", ":", "epilogue", "=",
-  "identifier", "identifier:", "%%", "|", "%{...%}", ";", "<tag>", "<*>",
-  "<>", "integer", "%param", "%union", "%empty", "$accept", "input",
+  "end of file", "error", "$undefined", "string", "translatable string",
+  "%token", "%nterm", "%type", "%destructor", "%printer", "%left",
+  "%right", "%nonassoc", "%precedence", "%prec", "%dprec", "%merge",
+  "%code", "%default-prec", "%define", "%defines", "%error-verbose",
+  "%expect", "%expect-rr", "%<flag>", "%file-prefix", "%glr-parser",
+  "%initial-action", "%language", "%name-prefix", "%no-default-prec",
+  "%no-lines", "%nondeterministic-parser", "%output", "%pure-parser",
+  "%require", "%skeleton", "%start", "%token-table", "%verbose", "%yacc",
+  "{...}", "%?{...}", "[identifier]", "character literal", ":", "epilogue",
+  "=", "identifier", "identifier:", "%%", "|", "%{...%}", ";", "<tag>",
+  "<*>", "<>", "integer", "%param", "%union", "%empty", "$accept", "input",
   "prologue_declarations", "prologue_declaration", "$@1", "params",
   "grammar_declaration", "code_props_type", "union_name",
   "symbol_declaration", "$@2", "$@3", "precedence_declarator", "tag.opt",
   "generic_symlist", "generic_symlist_item", "tag", "nterm_decls",
-  "token_decls", "token_decl.1", "token_decl", "int.opt",
+  "token_decls", "token_decl.1", "token_decl", "int.opt", "alias",
   "token_decls_for_prec", "token_decl_for_prec.1", "token_decl_for_prec",
   "symbol_decls", "symbol_decl.1", "grammar",
   "rules_or_grammar_declaration", "rules", "$@4", "rhses.1", "rhs",
   "named_ref.opt", "variable", "value", "id", "id_colon", "symbol",
-  "string_as_id", "string_as_id.opt", "epilogue.opt", YY_NULLPTR
+  "string_as_id", "epilogue.opt", YY_NULLPTR
   };
   return yy_sname[yysymbol];
 }
@@ -571,16 +571,17 @@ static const yytype_int16 yytoknum[] =
      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
-     305,   306,   307,   308,   309,   310,   311,   312,   313,   314
+     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
+     315
 };
 # endif
 
-#define YYPACT_NINF (-130)
+#define YYPACT_NINF (-80)
 
 #define yypact_value_is_default(Yyn) \
   ((Yyn) == YYPACT_NINF)
 
-#define YYTABLE_NINF (-122)
+#define YYTABLE_NINF (-123)
 
 #define yytable_value_is_error(Yyn) \
   0
@@ -589,23 +590,23 @@ static const yytype_int16 yytoknum[] =
      STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
-    -130,    36,   110,  -130,   -22,  -130,  -130,     2,  -130,  -130,
-    -130,  -130,  -130,  -130,   -19,  -130,    -9,    40,  -130,   -17,
-      -2,  -130,    57,  -130,    21,    66,    77,  -130,  -130,  -130,
-      78,  -130,    87,    92,    44,  -130,  -130,  -130,   165,  -130,
-    -130,  -130,    50,  -130,  -130,    58,  -130,    29,  -130,    15,
-      15,  -130,  -130,  -130,    44,    47,    44,  -130,  -130,  -130,
-    -130,    61,  -130,    30,  -130,  -130,  -130,  -130,  -130,  -130,
-    -130,  -130,  -130,  -130,  -130,    51,  -130,    53,     8,  -130,
-    -130,    64,    67,  -130,    68,    20,    44,    56,    44,  -130,
-      69,  -130,   -37,    59,   -37,  -130,    69,  -130,    59,    44,
-      44,  -130,  -130,  -130,  -130,  -130,  -130,  -130,  -130,    79,
-    -130,  -130,  -130,  -130,  -130,   111,  -130,  -130,  -130,  -130,
-      20,  -130,  -130,  -130,    44,    44,  -130,  -130,  -130,   -37,
-     -37,  -130,   147,    44,  -130,   108,  -130,  -130,    44,   -37,
-    -130,  -130,  -130,   -21,   175,  -130,  -130,    44,    97,   101,
-      99,   100,  -130,  -130,  -130,   117,    64,   175,  -130,  -130,
-    -130,  -130,  -130,    64,  -130,  -130
+     -80,     5,   120,   -80,   -17,   -80,   -80,    23,   -80,   -80,
+     -80,   -80,   -80,   -80,    -7,   -80,    10,    58,   -80,     6,
+      34,   -80,    82,   -80,    54,    95,   101,   -80,   -80,   -80,
+     103,   -80,   105,   107,    24,   -80,   -80,   -80,   175,   -80,
+     -80,   -80,    64,   -80,   -80,    75,   -80,    61,   -80,   -15,
+     -15,   -80,   -80,   -80,    24,    63,    24,   -80,   -80,   -80,
+     -80,    77,   -80,    46,   -80,   -80,   -80,   -80,   -80,   -80,
+     -80,   -80,   -80,   -80,   -80,    67,   -80,    69,     7,   -80,
+     -80,    80,    93,   -80,    94,    -1,    24,   108,    24,   -80,
+      79,   -80,   -38,   109,   -38,   -80,    79,   -80,   109,    24,
+      24,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   -80,   115,
+     -80,   -80,   -80,   -80,   -80,   123,   -80,   -80,   -80,   -80,
+      -1,   -80,   -80,   -80,    24,    24,   -80,   -80,   -80,   -38,
+     -38,   -80,    28,    24,   -80,   121,   -80,   -80,    24,   -38,
+     -80,   -80,   -80,   -80,   -23,    59,   -80,   -80,    24,   110,
+     111,   112,   114,   -80,   -80,   -80,   127,    80,    59,   -80,
+     -80,   -80,   -80,   -80,    80,   -80,   -80
 };
 
   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -618,38 +619,38 @@ static const yytype_int8 yydefact[] =
        0,     7,     0,    15,     0,     0,     0,    38,    19,    20,
        0,    24,     0,     0,     0,    27,    28,    29,     0,     6,
       31,    22,    43,     4,     5,     0,    34,     0,    30,     0,
-       0,   118,   114,   113,     0,    50,    81,   116,    84,   117,
-      39,     0,   108,   109,    10,    12,    13,    14,    16,    17,
-      18,    21,    25,    26,    35,     0,   115,     0,     0,    86,
-      88,   106,     0,    44,     0,     0,     0,    51,    74,    77,
-      72,    80,     0,    49,    66,    69,    72,    47,    65,    82,
-       0,    85,    40,   111,   112,   110,     8,    90,    89,     0,
-      87,     2,   107,    91,    33,    23,    45,    62,    63,    64,
-      36,    58,    61,    60,    75,     0,    78,    73,    79,    67,
-       0,    70,   119,    83,   122,     0,    32,    59,    76,    68,
-     120,    71,    96,    92,    93,    96,    95,     0,     0,     0,
-       0,     0,    99,    57,   100,     0,   106,    94,   101,   102,
-     103,   104,   105,   106,    97,    98
+       0,   121,   117,   116,     0,    50,    84,   119,    87,   120,
+      39,     0,   111,   112,    10,    12,    13,    14,    16,    17,
+      18,    21,    25,    26,    35,     0,   118,     0,     0,    89,
+      91,   109,     0,    44,     0,     0,     0,    51,    77,    80,
+      72,    83,     0,    49,    66,    69,    72,    47,    65,    85,
+       0,    88,    40,   114,   115,   113,     8,    93,    92,     0,
+      90,     2,   110,    94,    33,    23,    45,    62,    63,    64,
+      36,    58,    61,    60,    78,     0,    81,    73,    82,    67,
+       0,    70,    74,    86,   123,     0,    32,    59,    79,    68,
+      76,    71,    75,    99,    95,    96,    99,    98,     0,     0,
+       0,     0,     0,   102,    57,   103,     0,   109,    97,   104,
+     105,   106,   107,   108,   109,   100,   101
 };
 
   /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -130,  -130,  -130,  -130,  -130,  -130,   156,  -130,  -130,  -130,
-    -130,  -130,  -130,  -130,  -130,    43,  -130,  -130,   114,   -66,
-     -35,    83,  -130,   -84,   -53,  -130,   -47,  -130,    82,  -130,
-    -130,  -130,    35,  -129,  -130,  -130,   -46,  -130,   -34,   -36,
-    -130,  -130
+     -80,   -80,   -80,   -80,   -80,   -80,   172,   -80,   -80,   -80,
+     -80,   -80,   -80,   -80,   -80,    55,   -80,   -80,   139,   -54,
+     -59,    81,   -80,   -80,   -65,   -79,   -80,   -31,   -80,   113,
+     -80,   -80,   -80,    44,   -67,   -80,   -80,   -46,   -80,   -34,
+     -36,   -80
 };
 
   /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
       -1,     1,     2,    43,    82,   115,    77,    45,    84,    46,
-      50,    49,    47,   155,   120,   121,   122,    97,    93,    94,
-      95,   128,    87,    88,    89,    55,    56,    78,    79,    80,
-     135,   143,   144,   113,    63,   106,    57,    81,    58,    59,
-     141,   111
+      50,    49,    47,   156,   120,   121,   122,    97,    93,    94,
+      95,   128,   141,    87,    88,    89,    55,    56,    78,    79,
+      80,   135,   144,   145,   113,    63,   106,    57,    81,    58,
+      59,   111
 };
 
   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
@@ -657,57 +658,57 @@ static const yytype_int16 yydefgoto[] =
      number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
-      74,    90,   124,    96,    96,    51,    52,    99,  -121,    75,
+      74,    90,    51,    96,    96,     3,    52,  -122,    75,   126,
       53,    91,     5,     6,     7,     8,     9,    10,    11,    12,
-      13,    60,   101,    51,    14,    15,   129,   164,    61,   145,
-      48,   146,    51,   103,   165,   126,     3,    27,    62,    65,
-      90,   138,    90,    64,    34,    52,    96,    51,    96,    53,
-      91,   123,    91,   133,    66,    54,    76,   109,    52,   131,
-      67,    68,    53,    52,   139,   101,    42,    53,    92,    69,
-     104,   126,    52,   117,   118,   119,    53,   105,    90,    90,
-      70,    71,    86,    96,    96,   126,   123,    52,    91,    91,
-      72,    53,    90,    96,   131,    73,   140,    83,    85,   101,
-     100,   102,    91,   107,   131,   108,   112,   114,   116,   125,
-     156,     4,   130,   158,     5,     6,     7,     8,     9,    10,
-      11,    12,    13,   156,   134,   127,    14,    15,    16,    17,
-      18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
-      51,   136,   142,   159,   160,   161,   162,   163,    44,    38,
-     110,    39,    40,   137,    98,     0,    75,    41,    42,     5,
-       6,     7,     8,     9,    10,    11,    12,    13,    51,   132,
-     157,    14,    15,     0,     0,     0,     0,     0,   147,   148,
-     149,     0,     0,     0,    27,     0,   150,   151,     0,     0,
-       0,    34,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    76,     0,   -56,   152,     0,    52,     0,
-       0,     0,    53,    42,     0,     0,     0,     0,   153,     0,
-       0,     0,     0,     0,   154
+      13,   124,   101,    99,    14,    15,    51,    51,   146,    52,
+     147,    51,   140,    53,    60,   131,    48,    27,   129,    92,
+      90,    61,    90,    52,    34,   126,    96,    53,    96,   103,
+      91,   123,    91,   117,   118,   119,    76,   109,    62,   126,
+     138,    64,    51,    65,    51,   101,    42,    52,    52,   133,
+     131,    53,    53,   148,   149,   150,   139,    54,    90,    90,
+     131,   151,   152,    96,    96,    67,   123,   104,    91,    91,
+     165,    66,    90,    96,   105,    68,   142,   166,    69,   101,
+     -56,   153,    91,    52,    70,    52,    71,    53,    72,    53,
+      73,   157,    83,   154,   159,    86,    85,   100,   102,   155,
+     107,     4,   108,   112,   157,     5,     6,     7,     8,     9,
+      10,    11,    12,    13,   114,   116,   127,    14,    15,    16,
+      17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
+      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
+      37,   134,   125,   130,   136,   161,   143,   160,   164,   162,
+      38,   163,    39,    40,    44,   137,    75,   132,    41,    42,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    98,
+     158,   110,    14,    15,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,    27,     0,     0,     0,     0,
+       0,     0,    34,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    76,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,    42
 };
 
 static const yytype_int16 yycheck[] =
 {
-      34,    47,    86,    49,    50,     3,    43,    54,     0,     1,
-      47,    47,     4,     5,     6,     7,     8,     9,    10,    11,
-      12,    40,    56,     3,    16,    17,    92,   156,    47,    50,
-      52,    52,     3,     3,   163,    88,     0,    29,    47,    56,
-      86,   125,    88,     3,    36,    43,    92,     3,    94,    47,
-      86,    85,    88,   100,    56,    53,    48,    49,    43,    94,
-       3,    40,    47,    43,   130,    99,    58,    47,    53,     3,
-      40,   124,    43,    53,    54,    55,    47,    47,   124,   125,
-       3,     3,    53,   129,   130,   138,   120,    43,   124,   125,
-       3,    47,   138,   139,   129,     3,   132,    47,    40,   133,
-      53,    40,   138,    52,   139,    52,    42,    40,    40,    53,
-     144,     1,    53,   147,     4,     5,     6,     7,     8,     9,
-      10,    11,    12,   157,    45,    56,    16,    17,    18,    19,
+      34,    47,     3,    49,    50,     0,    44,     0,     1,    88,
+      48,    47,     5,     6,     7,     8,     9,    10,    11,    12,
+      13,    86,    56,    54,    17,    18,     3,     3,    51,    44,
+      53,     3,     4,    48,    41,    94,    53,    30,    92,    54,
+      86,    48,    88,    44,    37,   124,    92,    48,    94,     3,
+      86,    85,    88,    54,    55,    56,    49,    50,    48,   138,
+     125,     3,     3,    57,     3,    99,    59,    44,    44,   100,
+     129,    48,    48,    14,    15,    16,   130,    54,   124,   125,
+     139,    22,    23,   129,   130,     3,   120,    41,   124,   125,
+     157,    57,   138,   139,    48,    41,   132,   164,     3,   133,
+      41,    42,   138,    44,     3,    44,     3,    48,     3,    48,
+       3,   145,    48,    54,   148,    54,    41,    54,    41,    60,
+      53,     1,    53,    43,   158,     5,     6,     7,     8,     9,
+      10,    11,    12,    13,    41,    41,    57,    17,    18,    19,
       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
       30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-       3,    40,    44,    56,    53,    56,    56,    40,     2,    49,
-      78,    51,    52,   120,    50,    -1,     1,    57,    58,     4,
-       5,     6,     7,     8,     9,    10,    11,    12,     3,    96,
-     145,    16,    17,    -1,    -1,    -1,    -1,    -1,    13,    14,
-      15,    -1,    -1,    -1,    29,    -1,    21,    22,    -1,    -1,
-      -1,    36,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    48,    -1,    40,    41,    -1,    43,    -1,
-      -1,    -1,    47,    58,    -1,    -1,    -1,    -1,    53,    -1,
+      40,    46,    54,    54,    41,    54,    45,    57,    41,    57,
+      50,    57,    52,    53,     2,   120,     1,    96,    58,    59,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    50,
+     146,    78,    17,    18,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    30,    -1,    -1,    -1,    -1,
+      -1,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    49,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    59
 };
 
@@ -715,41 +716,41 @@ static const yytype_int16 yycheck[] =
      symbol of state STATE-NUM.  */
 static const yytype_int8 yystos[] =
 {
-       0,    61,    62,     0,     1,     4,     5,     6,     7,     8,
-       9,    10,    11,    12,    16,    17,    18,    19,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
-      32,    33,    34,    35,    36,    37,    38,    39,    49,    51,
-      52,    57,    58,    63,    66,    67,    69,    72,    52,    71,
-      70,     3,    43,    47,    53,    85,    86,    96,    98,    99,
-      40,    47,    47,    94,     3,    56,    56,     3,    40,     3,
-       3,     3,     3,     3,    98,     1,    48,    66,    87,    88,
-      89,    97,    64,    47,    68,    40,    53,    82,    83,    84,
-      96,    99,    53,    78,    79,    80,    96,    77,    78,    86,
-      53,    98,    40,     3,    40,    47,    95,    52,    52,    49,
-      88,   101,    42,    93,    40,    65,    40,    53,    54,    55,
-      74,    75,    76,    98,    83,    53,    84,    56,    81,    79,
-      53,    80,    81,    86,    45,    90,    40,    75,    83,    79,
-      99,   100,    44,    91,    92,    50,    52,    13,    14,    15,
-      21,    22,    41,    53,    59,    73,    98,    92,    98,    56,
-      53,    56,    56,    40,    93,    93
+       0,    62,    63,     0,     1,     5,     6,     7,     8,     9,
+      10,    11,    12,    13,    17,    18,    19,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
+      33,    34,    35,    36,    37,    38,    39,    40,    50,    52,
+      53,    58,    59,    64,    67,    68,    70,    73,    53,    72,
+      71,     3,    44,    48,    54,    87,    88,    98,   100,   101,
+      41,    48,    48,    96,     3,    57,    57,     3,    41,     3,
+       3,     3,     3,     3,   100,     1,    49,    67,    89,    90,
+      91,    99,    65,    48,    69,    41,    54,    84,    85,    86,
+      98,   101,    54,    79,    80,    81,    98,    78,    79,    88,
+      54,   100,    41,     3,    41,    48,    97,    53,    53,    50,
+      90,   102,    43,    95,    41,    66,    41,    54,    55,    56,
+      75,    76,    77,   100,    85,    54,    86,    57,    82,    80,
+      54,    81,    82,    88,    46,    92,    41,    76,    85,    80,
+       4,    83,   101,    45,    93,    94,    51,    53,    14,    15,
+      16,    22,    23,    42,    54,    60,    74,   100,    94,   100,
+      57,    54,    57,    57,    41,    95,    95
 };
 
   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_int8 yyr1[] =
 {
-       0,    60,    61,    62,    62,    63,    63,    63,    63,    63,
-      63,    63,    63,    63,    63,    63,    63,    63,    63,    63,
-      63,    63,    64,    63,    63,    63,    63,    63,    63,    63,
-      63,    63,    65,    65,    66,    66,    66,    66,    66,    66,
-      66,    67,    67,    68,    68,    66,    70,    69,    71,    69,
-      69,    69,    72,    72,    72,    72,    73,    73,    74,    74,
-      75,    75,    76,    76,    76,    77,    78,    78,    78,    79,
-      79,    80,    81,    81,    82,    82,    82,    83,    83,    84,
-      84,    85,    85,    85,    86,    86,    87,    87,    88,    88,
-      88,    90,    89,    91,    91,    91,    92,    92,    92,    92,
-      92,    92,    92,    92,    92,    92,    93,    93,    94,    95,
-      95,    95,    95,    96,    96,    97,    98,    98,    99,   100,
-     100,   101,   101
+       0,    61,    62,    63,    63,    64,    64,    64,    64,    64,
+      64,    64,    64,    64,    64,    64,    64,    64,    64,    64,
+      64,    64,    65,    64,    64,    64,    64,    64,    64,    64,
+      64,    64,    66,    66,    67,    67,    67,    67,    67,    67,
+      67,    68,    68,    69,    69,    67,    71,    70,    72,    70,
+      70,    70,    73,    73,    73,    73,    74,    74,    75,    75,
+      76,    76,    77,    77,    77,    78,    79,    79,    79,    80,
+      80,    81,    82,    82,    83,    83,    83,    84,    84,    84,
+      85,    85,    86,    86,    87,    87,    87,    88,    88,    89,
+      89,    90,    90,    90,    92,    91,    93,    93,    93,    94,
+      94,    94,    94,    94,    94,    94,    94,    94,    94,    95,
+      95,    96,    97,    97,    97,    97,    98,    98,    99,   100,
+     100,   101,   102,   102
 };
 
   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
@@ -762,12 +763,12 @@ static const yytype_int8 yyr2[] =
        3,     1,     1,     0,     1,     3,     0,     3,     0,     3,
        2,     2,     1,     1,     1,     1,     0,     1,     1,     2,
        1,     1,     1,     1,     1,     1,     1,     2,     3,     1,
-       2,     3,     0,     1,     1,     2,     3,     1,     2,     2,
-       1,     1,     2,     3,     1,     2,     1,     2,     1,     2,
-       2,     0,     5,     1,     3,     2,     0,     3,     4,     2,
-       2,     3,     3,     3,     3,     3,     0,     1,     1,     0,
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
-       1,     0,     2
+       2,     3,     0,     1,     0,     1,     1,     1,     2,     3,
+       1,     2,     2,     1,     1,     2,     3,     1,     2,     1,
+       2,     1,     2,     2,     0,     5,     1,     3,     2,     0,
+       3,     4,     2,     2,     3,     3,     3,     3,     3,     0,
+       1,     1,     0,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     0,     2
 };
 
 
@@ -931,67 +932,71 @@ tron (yyo);
          { fputs (((*yyvaluep).STRING), yyo); }
         break;
 
-    case 20: /* "%error-verbose"  */
+    case 4: /* "translatable string"  */
+         { fputs (((*yyvaluep).TSTRING), yyo); }
+        break;
+
+    case 21: /* "%error-verbose"  */
          { fputs (((*yyvaluep).PERCENT_ERROR_VERBOSE), yyo); }
         break;
 
-    case 23: /* "%<flag>"  */
+    case 24: /* "%<flag>"  */
          { fprintf (yyo, "%%%s", ((*yyvaluep).PERCENT_FLAG)); }
         break;
 
-    case 24: /* "%file-prefix"  */
+    case 25: /* "%file-prefix"  */
          { fputs (((*yyvaluep).PERCENT_FILE_PREFIX), yyo); }
         break;
 
-    case 28: /* "%name-prefix"  */
+    case 29: /* "%name-prefix"  */
          { fputs (((*yyvaluep).PERCENT_NAME_PREFIX), yyo); }
         break;
 
-    case 33: /* "%pure-parser"  */
+    case 34: /* "%pure-parser"  */
          { fputs (((*yyvaluep).PERCENT_PURE_PARSER), yyo); }
         break;
 
-    case 40: /* "{...}"  */
+    case 41: /* "{...}"  */
          { fputs (((*yyvaluep).BRACED_CODE), yyo); }
         break;
 
-    case 41: /* "%?{...}"  */
+    case 42: /* "%?{...}"  */
          { fputs (((*yyvaluep).BRACED_PREDICATE), yyo); }
         break;
 
-    case 42: /* "[identifier]"  */
+    case 43: /* "[identifier]"  */
          { fprintf (yyo, "[%s]", ((*yyvaluep).BRACKETED_ID)); }
         break;
 
-    case 43: /* "character literal"  */
+    case 44: /* "character literal"  */
          { fputs (char_name (((*yyvaluep).CHAR)), yyo); }
         break;
 
-    case 45: /* "epilogue"  */
+    case 46: /* "epilogue"  */
          { fputs (((*yyvaluep).EPILOGUE), yyo); }
         break;
 
-    case 47: /* "identifier"  */
+    case 48: /* "identifier"  */
          { fputs (((*yyvaluep).ID), yyo); }
         break;
 
-    case 48: /* "identifier:"  */
+    case 49: /* "identifier:"  */
          { fprintf (yyo, "%s:", ((*yyvaluep).ID_COLON)); }
         break;
 
-    case 51: /* "%{...%}"  */
+    case 52: /* "%{...%}"  */
          { fputs (((*yyvaluep).PROLOGUE), yyo); }
         break;
 
-    case 53: /* "<tag>"  */
+    case 54: /* "<tag>"  */
          { fprintf (yyo, "<%s>", ((*yyvaluep).TAG)); }
         break;
 
-    case 56: /* "integer"  */
+    case 57: /* "integer"  */
          { fprintf (yyo, "%d", ((*yyvaluep).INT)); }
         break;
 
-    case 57: /* "%param"  */
+    case 58: /* "%param"  */
 {
   switch (((*yyvaluep).PERCENT_PARAM))
     {
@@ -1006,71 +1011,75 @@ tron (yyo);
 }
         break;
 
-    case 67: /* code_props_type  */
+    case 68: /* code_props_type  */
          { fprintf (yyo, "%s", code_props_type_string 
(((*yyvaluep).code_props_type))); }
         break;
 
-    case 73: /* tag.opt  */
-         { fputs (((*yyvaluep).yytype_73), yyo); }
+    case 74: /* tag.opt  */
+         { fputs (((*yyvaluep).yytype_74), yyo); }
         break;
 
-    case 74: /* generic_symlist  */
+    case 75: /* generic_symlist  */
          { symbol_list_syms_print (((*yyvaluep).generic_symlist), yyo); }
         break;
 
-    case 75: /* generic_symlist_item  */
+    case 76: /* generic_symlist_item  */
          { symbol_list_syms_print (((*yyvaluep).generic_symlist_item), yyo); }
         break;
 
-    case 76: /* tag  */
+    case 77: /* tag  */
          { fprintf (yyo, "<%s>", ((*yyvaluep).tag)); }
         break;
 
-    case 77: /* nterm_decls  */
+    case 78: /* nterm_decls  */
          { symbol_list_syms_print (((*yyvaluep).nterm_decls), yyo); }
         break;
 
-    case 78: /* token_decls  */
+    case 79: /* token_decls  */
          { symbol_list_syms_print (((*yyvaluep).token_decls), yyo); }
         break;
 
-    case 79: /* token_decl.1  */
-         { symbol_list_syms_print (((*yyvaluep).yytype_79), yyo); }
+    case 80: /* token_decl.1  */
+         { symbol_list_syms_print (((*yyvaluep).yytype_80), yyo); }
         break;
 
-    case 80: /* token_decl  */
+    case 81: /* token_decl  */
          { fprintf (yyo, "%s", ((*yyvaluep).token_decl) ? 
((*yyvaluep).token_decl)->tag : "<NULL>"); }
         break;
 
-    case 81: /* int.opt  */
-         { fprintf (yyo, "%d", ((*yyvaluep).yytype_81)); }
+    case 82: /* int.opt  */
+         { fprintf (yyo, "%d", ((*yyvaluep).yytype_82)); }
         break;
 
-    case 82: /* token_decls_for_prec  */
+    case 83: /* alias  */
+         { fprintf (yyo, "%s", ((*yyvaluep).alias) ? ((*yyvaluep).alias)->tag 
: "<NULL>"); }
+        break;
+
+    case 84: /* token_decls_for_prec  */
          { symbol_list_syms_print (((*yyvaluep).token_decls_for_prec), yyo); }
         break;
 
-    case 83: /* token_decl_for_prec.1  */
-         { symbol_list_syms_print (((*yyvaluep).yytype_83), yyo); }
+    case 85: /* token_decl_for_prec.1  */
+         { symbol_list_syms_print (((*yyvaluep).yytype_85), yyo); }
         break;
 
-    case 84: /* token_decl_for_prec  */
+    case 86: /* token_decl_for_prec  */
          { fprintf (yyo, "%s", ((*yyvaluep).token_decl_for_prec) ? 
((*yyvaluep).token_decl_for_prec)->tag : "<NULL>"); }
         break;
 
-    case 85: /* symbol_decls  */
+    case 87: /* symbol_decls  */
          { symbol_list_syms_print (((*yyvaluep).symbol_decls), yyo); }
         break;
 
-    case 86: /* symbol_decl.1  */
-         { symbol_list_syms_print (((*yyvaluep).yytype_86), yyo); }
+    case 88: /* symbol_decl.1  */
+         { symbol_list_syms_print (((*yyvaluep).yytype_88), yyo); }
         break;
 
-    case 94: /* variable  */
+    case 96: /* variable  */
          { fputs (((*yyvaluep).variable), yyo); }
         break;
 
-    case 95: /* value  */
+    case 97: /* value  */
 {
   switch (((*yyvaluep).value).kind)
     {
@@ -1081,26 +1090,22 @@ tron (yyo);
 }
         break;
 
-    case 96: /* id  */
+    case 98: /* id  */
          { fprintf (yyo, "%s", ((*yyvaluep).id) ? ((*yyvaluep).id)->tag : 
"<NULL>"); }
         break;
 
-    case 97: /* id_colon  */
+    case 99: /* id_colon  */
          { fprintf (yyo, "%s:", ((*yyvaluep).id_colon)->tag); }
         break;
 
-    case 98: /* symbol  */
+    case 100: /* symbol  */
          { fprintf (yyo, "%s", ((*yyvaluep).symbol) ? 
((*yyvaluep).symbol)->tag : "<NULL>"); }
         break;
 
-    case 99: /* string_as_id  */
+    case 101: /* string_as_id  */
          { fprintf (yyo, "%s", ((*yyvaluep).string_as_id) ? 
((*yyvaluep).string_as_id)->tag : "<NULL>"); }
         break;
 
-    case 100: /* string_as_id.opt  */
-         { fprintf (yyo, "%s", ((*yyvaluep).yytype_100) ? 
((*yyvaluep).yytype_100)->tag : "<NULL>"); }
-        break;
-
       default:
         break;
     }
@@ -1684,40 +1689,40 @@ yydestruct (const char *yymsg, int yytype, YYSTYPE 
*yyvaluep, YYLTYPE *yylocatio
   YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
   switch (yytype)
     {
-    case 74: /* generic_symlist  */
+    case 75: /* generic_symlist  */
             { symbol_list_free (((*yyvaluep).generic_symlist)); }
         break;
 
-    case 75: /* generic_symlist_item  */
+    case 76: /* generic_symlist_item  */
             { symbol_list_free (((*yyvaluep).generic_symlist_item)); }
         break;
 
-    case 77: /* nterm_decls  */
+    case 78: /* nterm_decls  */
             { symbol_list_free (((*yyvaluep).nterm_decls)); }
         break;
 
-    case 78: /* token_decls  */
+    case 79: /* token_decls  */
             { symbol_list_free (((*yyvaluep).token_decls)); }
         break;
 
-    case 79: /* token_decl.1  */
-            { symbol_list_free (((*yyvaluep).yytype_79)); }
+    case 80: /* token_decl.1  */
+            { symbol_list_free (((*yyvaluep).yytype_80)); }
         break;
 
-    case 82: /* token_decls_for_prec  */
+    case 84: /* token_decls_for_prec  */
             { symbol_list_free (((*yyvaluep).token_decls_for_prec)); }
         break;
 
-    case 83: /* token_decl_for_prec.1  */
-            { symbol_list_free (((*yyvaluep).yytype_83)); }
+    case 85: /* token_decl_for_prec.1  */
+            { symbol_list_free (((*yyvaluep).yytype_85)); }
         break;
 
-    case 85: /* symbol_decls  */
+    case 87: /* symbol_decls  */
             { symbol_list_free (((*yyvaluep).symbol_decls)); }
         break;
 
-    case 86: /* symbol_decl.1  */
-            { symbol_list_free (((*yyvaluep).yytype_86)); }
+    case 88: /* symbol_decl.1  */
+            { symbol_list_free (((*yyvaluep).yytype_88)); }
         break;
 
       default:
@@ -2297,11 +2302,11 @@ yyreduce:
     break;
 
   case 56:
-         { (yyval.yytype_73) = NULL; }
+         { (yyval.yytype_74) = NULL; }
     break;
 
   case 57:
-         { (yyval.yytype_73) = (yyvsp[0].TAG); }
+         { (yyval.yytype_74) = (yyvsp[0].TAG); }
     break;
 
   case 59:
@@ -2326,207 +2331,223 @@ yyreduce:
 
   case 66:
     {
-      (yyval.token_decls) = (yyvsp[0].yytype_79);
+      (yyval.token_decls) = (yyvsp[0].yytype_80);
     }
     break;
 
   case 67:
     {
-      (yyval.token_decls) = symbol_list_type_set ((yyvsp[0].yytype_79), 
(yyvsp[-1].TAG), (yylsp[-1]));
+      (yyval.token_decls) = symbol_list_type_set ((yyvsp[0].yytype_80), 
(yyvsp[-1].TAG), (yylsp[-1]));
     }
     break;
 
   case 68:
     {
-      (yyval.token_decls) = symbol_list_append ((yyvsp[-2].token_decls), 
symbol_list_type_set ((yyvsp[0].yytype_79), (yyvsp[-1].TAG), (yylsp[-1])));
+      (yyval.token_decls) = symbol_list_append ((yyvsp[-2].token_decls), 
symbol_list_type_set ((yyvsp[0].yytype_80), (yyvsp[-1].TAG), (yylsp[-1])));
     }
     break;
 
   case 69:
-                            { (yyval.yytype_79) = symbol_list_sym_new 
((yyvsp[0].token_decl), (yylsp[0])); }
+                            { (yyval.yytype_80) = symbol_list_sym_new 
((yyvsp[0].token_decl), (yylsp[0])); }
     break;
 
   case 70:
-                            { (yyval.yytype_79) = symbol_list_append 
((yyvsp[-1].yytype_79), symbol_list_sym_new ((yyvsp[0].token_decl), 
(yylsp[0]))); }
+                            { (yyval.yytype_80) = symbol_list_append 
((yyvsp[-1].yytype_80), symbol_list_sym_new ((yyvsp[0].token_decl), 
(yylsp[0]))); }
     break;
 
   case 71:
     {
       (yyval.token_decl) = (yyvsp[-2].id);
       symbol_class_set ((yyvsp[-2].id), current_class, (yylsp[-2]), true);
-      if (0 <= (yyvsp[-1].yytype_81))
-        symbol_user_token_number_set ((yyvsp[-2].id), (yyvsp[-1].yytype_81), 
(yylsp[-1]));
-      if ((yyvsp[0].yytype_100))
-        symbol_make_alias ((yyvsp[-2].id), (yyvsp[0].yytype_100), (yylsp[0]));
+      if (0 <= (yyvsp[-1].yytype_82))
+        symbol_user_token_number_set ((yyvsp[-2].id), (yyvsp[-1].yytype_82), 
(yylsp[-1]));
+      if ((yyvsp[0].alias))
+        symbol_make_alias ((yyvsp[-2].id), (yyvsp[0].alias), (yylsp[0]));
     }
     break;
 
   case 72:
-          { (yyval.yytype_81) = -1; }
+          { (yyval.yytype_82) = -1; }
     break;
 
   case 74:
-    {
-      (yyval.token_decls_for_prec) = (yyvsp[0].yytype_83);
-    }
+                 { (yyval.alias) = NULL; }
     break;
 
   case 75:
-    {
-      (yyval.token_decls_for_prec) = symbol_list_type_set 
((yyvsp[0].yytype_83), (yyvsp[-1].TAG), (yylsp[-1]));
-    }
+                 { (yyval.alias) = (yyvsp[0].string_as_id); }
     break;
 
   case 76:
     {
-      (yyval.token_decls_for_prec) = symbol_list_append 
((yyvsp[-2].token_decls_for_prec), symbol_list_type_set ((yyvsp[0].yytype_83), 
(yyvsp[-1].TAG), (yylsp[-1])));
+      (yyval.alias) = symbol_get (quotearg_style (c_quoting_style, 
(yyvsp[0].TSTRING)), (yylsp[0]));
+      symbol_class_set ((yyval.alias), token_sym, (yylsp[0]), false);
+      (yyval.alias)->translatable = true;
     }
     break;
 
   case 77:
-    { (yyval.yytype_83) = symbol_list_sym_new ((yyvsp[0].token_decl_for_prec), 
(yylsp[0])); }
+    {
+      (yyval.token_decls_for_prec) = (yyvsp[0].yytype_85);
+    }
     break;
 
   case 78:
-    { (yyval.yytype_83) = symbol_list_append ((yyvsp[-1].yytype_83), 
symbol_list_sym_new ((yyvsp[0].token_decl_for_prec), (yylsp[0]))); }
+    {
+      (yyval.token_decls_for_prec) = symbol_list_type_set 
((yyvsp[0].yytype_85), (yyvsp[-1].TAG), (yylsp[-1]));
+    }
     break;
 
   case 79:
+    {
+      (yyval.token_decls_for_prec) = symbol_list_append 
((yyvsp[-2].token_decls_for_prec), symbol_list_type_set ((yyvsp[0].yytype_85), 
(yyvsp[-1].TAG), (yylsp[-1])));
+    }
+    break;
+
+  case 80:
+    { (yyval.yytype_85) = symbol_list_sym_new ((yyvsp[0].token_decl_for_prec), 
(yylsp[0])); }
+    break;
+
+  case 81:
+    { (yyval.yytype_85) = symbol_list_append ((yyvsp[-1].yytype_85), 
symbol_list_sym_new ((yyvsp[0].token_decl_for_prec), (yylsp[0]))); }
+    break;
+
+  case 82:
     {
       (yyval.token_decl_for_prec) = (yyvsp[-1].id);
       symbol_class_set ((yyvsp[-1].id), token_sym, (yylsp[-1]), false);
-      if (0 <= (yyvsp[0].yytype_81))
-        symbol_user_token_number_set ((yyvsp[-1].id), (yyvsp[0].yytype_81), 
(yylsp[0]));
+      if (0 <= (yyvsp[0].yytype_82))
+        symbol_user_token_number_set ((yyvsp[-1].id), (yyvsp[0].yytype_82), 
(yylsp[0]));
     }
     break;
 
-  case 81:
+  case 84:
     {
-      (yyval.symbol_decls) = (yyvsp[0].yytype_86);
+      (yyval.symbol_decls) = (yyvsp[0].yytype_88);
     }
     break;
 
-  case 82:
+  case 85:
     {
-      (yyval.symbol_decls) = symbol_list_type_set ((yyvsp[0].yytype_86), 
(yyvsp[-1].TAG), (yylsp[-1]));
+      (yyval.symbol_decls) = symbol_list_type_set ((yyvsp[0].yytype_88), 
(yyvsp[-1].TAG), (yylsp[-1]));
     }
     break;
 
-  case 83:
+  case 86:
     {
-      (yyval.symbol_decls) = symbol_list_append ((yyvsp[-2].symbol_decls), 
symbol_list_type_set ((yyvsp[0].yytype_86), (yyvsp[-1].TAG), (yylsp[-1])));
+      (yyval.symbol_decls) = symbol_list_append ((yyvsp[-2].symbol_decls), 
symbol_list_type_set ((yyvsp[0].yytype_88), (yyvsp[-1].TAG), (yylsp[-1])));
     }
     break;
 
-  case 84:
+  case 87:
     {
       symbol_class_set ((yyvsp[0].symbol), pct_type_sym, (yylsp[0]), false);
-      (yyval.yytype_86) = symbol_list_sym_new ((yyvsp[0].symbol), (yylsp[0]));
+      (yyval.yytype_88) = symbol_list_sym_new ((yyvsp[0].symbol), (yylsp[0]));
     }
     break;
 
-  case 85:
+  case 88:
     {
       symbol_class_set ((yyvsp[0].symbol), pct_type_sym, (yylsp[0]), false);
-      (yyval.yytype_86) = symbol_list_append ((yyvsp[-1].yytype_86), 
symbol_list_sym_new ((yyvsp[0].symbol), (yylsp[0])));
+      (yyval.yytype_88) = symbol_list_append ((yyvsp[-1].yytype_88), 
symbol_list_sym_new ((yyvsp[0].symbol), (yylsp[0])));
     }
     break;
 
-  case 90:
+  case 93:
     {
       yyerrok;
     }
     break;
 
-  case 91:
-                         { current_lhs ((yyvsp[-1].id_colon), (yylsp[-1]), 
(yyvsp[0].yytype_93)); }
+  case 94:
+                         { current_lhs ((yyvsp[-1].id_colon), (yylsp[-1]), 
(yyvsp[0].yytype_95)); }
     break;
 
-  case 92:
+  case 95:
     {
       /* Free the current lhs. */
       current_lhs (0, (yylsp[-4]), 0);
     }
     break;
 
-  case 93:
+  case 96:
                      { grammar_current_rule_end ((yylsp[0])); }
     break;
 
-  case 94:
+  case 97:
                      { grammar_current_rule_end ((yylsp[0])); }
     break;
 
-  case 96:
+  case 99:
     { grammar_current_rule_begin (current_lhs_symbol, current_lhs_loc,
                                   current_lhs_named_ref); }
     break;
 
-  case 97:
-    { grammar_current_rule_symbol_append ((yyvsp[-1].symbol), (yylsp[-1]), 
(yyvsp[0].yytype_93)); }
+  case 100:
+    { grammar_current_rule_symbol_append ((yyvsp[-1].symbol), (yylsp[-1]), 
(yyvsp[0].yytype_95)); }
     break;
 
-  case 98:
-    { grammar_current_rule_action_append ((yyvsp[-1].BRACED_CODE), 
(yylsp[-1]), (yyvsp[0].yytype_93), (yyvsp[-2].yytype_73)); }
+  case 101:
+    { grammar_current_rule_action_append ((yyvsp[-1].BRACED_CODE), 
(yylsp[-1]), (yyvsp[0].yytype_95), (yyvsp[-2].yytype_74)); }
     break;
 
-  case 99:
+  case 102:
     { grammar_current_rule_predicate_append ((yyvsp[0].BRACED_PREDICATE), 
(yylsp[0])); }
     break;
 
-  case 100:
+  case 103:
     { grammar_current_rule_empty_set ((yylsp[0])); }
     break;
 
-  case 101:
+  case 104:
     { grammar_current_rule_prec_set ((yyvsp[0].symbol), (yylsp[0])); }
     break;
 
-  case 102:
+  case 105:
     { grammar_current_rule_dprec_set ((yyvsp[0].INT), (yylsp[0])); }
     break;
 
-  case 103:
+  case 106:
     { grammar_current_rule_merge_set ((yyvsp[0].TAG), (yylsp[0])); }
     break;
 
-  case 104:
+  case 107:
     { grammar_current_rule_expect_sr ((yyvsp[0].INT), (yylsp[0])); }
     break;
 
-  case 105:
+  case 108:
     { grammar_current_rule_expect_rr ((yyvsp[0].INT), (yylsp[0])); }
     break;
 
-  case 106:
-                 { (yyval.yytype_93) = NULL; }
+  case 109:
+                 { (yyval.yytype_95) = NULL; }
     break;
 
-  case 107:
-                 { (yyval.yytype_93) = named_ref_new ((yyvsp[0].BRACKETED_ID), 
(yylsp[0])); }
+  case 110:
+                 { (yyval.yytype_95) = named_ref_new ((yyvsp[0].BRACKETED_ID), 
(yylsp[0])); }
     break;
 
-  case 109:
+  case 112:
           { (yyval.value).kind = muscle_keyword; (yyval.value).chars = ""; }
     break;
 
-  case 110:
+  case 113:
           { (yyval.value).kind = muscle_keyword; (yyval.value).chars = 
(yyvsp[0].ID); }
     break;
 
-  case 111:
+  case 114:
           { (yyval.value).kind = muscle_string;  (yyval.value).chars = 
(yyvsp[0].STRING); }
     break;
 
-  case 112:
+  case 115:
           { (yyval.value).kind = muscle_code;    (yyval.value).chars = 
strip_braces ((yyvsp[0].BRACED_CODE)); }
     break;
 
-  case 113:
+  case 116:
     { (yyval.id) = symbol_from_uniqstr ((yyvsp[0].ID), (yylsp[0])); }
     break;
 
-  case 114:
+  case 117:
     {
       const char *var = "api.token.raw";
       if (current_class == nterm_sym)
@@ -2552,22 +2573,18 @@ yyreduce:
     }
     break;
 
-  case 115:
+  case 118:
            { (yyval.id_colon) = symbol_from_uniqstr ((yyvsp[0].ID_COLON), 
(yylsp[0])); }
     break;
 
-  case 118:
+  case 121:
     {
       (yyval.string_as_id) = symbol_get (quotearg_style (c_quoting_style, 
(yyvsp[0].STRING)), (yylsp[0]));
       symbol_class_set ((yyval.string_as_id), token_sym, (yylsp[0]), false);
     }
     break;
 
-  case 119:
-                     { (yyval.yytype_100) = NULL; }
-    break;
-
-  case 122:
+  case 123:
     {
       muscle_code_grow ("epilogue", translate_code ((yyvsp[0].EPILOGUE), 
(yylsp[0]), true), (yylsp[0]));
       code_scanner_last_string_free ();
diff --git a/src/parse-gram.h b/src/parse-gram.h
index 77c63d35..b976dc23 100644
--- a/src/parse-gram.h
+++ b/src/parse-gram.h
@@ -79,62 +79,63 @@ extern int gram_debug;
   {
     GRAM_EOF = 0,
     STRING = 3,
-    PERCENT_TOKEN = 4,
-    PERCENT_NTERM = 5,
-    PERCENT_TYPE = 6,
-    PERCENT_DESTRUCTOR = 7,
-    PERCENT_PRINTER = 8,
-    PERCENT_LEFT = 9,
-    PERCENT_RIGHT = 10,
-    PERCENT_NONASSOC = 11,
-    PERCENT_PRECEDENCE = 12,
-    PERCENT_PREC = 13,
-    PERCENT_DPREC = 14,
-    PERCENT_MERGE = 15,
-    PERCENT_CODE = 16,
-    PERCENT_DEFAULT_PREC = 17,
-    PERCENT_DEFINE = 18,
-    PERCENT_DEFINES = 19,
-    PERCENT_ERROR_VERBOSE = 20,
-    PERCENT_EXPECT = 21,
-    PERCENT_EXPECT_RR = 22,
-    PERCENT_FLAG = 23,
-    PERCENT_FILE_PREFIX = 24,
-    PERCENT_GLR_PARSER = 25,
-    PERCENT_INITIAL_ACTION = 26,
-    PERCENT_LANGUAGE = 27,
-    PERCENT_NAME_PREFIX = 28,
-    PERCENT_NO_DEFAULT_PREC = 29,
-    PERCENT_NO_LINES = 30,
-    PERCENT_NONDETERMINISTIC_PARSER = 31,
-    PERCENT_OUTPUT = 32,
-    PERCENT_PURE_PARSER = 33,
-    PERCENT_REQUIRE = 34,
-    PERCENT_SKELETON = 35,
-    PERCENT_START = 36,
-    PERCENT_TOKEN_TABLE = 37,
-    PERCENT_VERBOSE = 38,
-    PERCENT_YACC = 39,
-    BRACED_CODE = 40,
-    BRACED_PREDICATE = 41,
-    BRACKETED_ID = 42,
-    CHAR = 43,
-    COLON = 44,
-    EPILOGUE = 45,
-    EQUAL = 46,
-    ID = 47,
-    ID_COLON = 48,
-    PERCENT_PERCENT = 49,
-    PIPE = 50,
-    PROLOGUE = 51,
-    SEMICOLON = 52,
-    TAG = 53,
-    TAG_ANY = 54,
-    TAG_NONE = 55,
-    INT = 56,
-    PERCENT_PARAM = 57,
-    PERCENT_UNION = 58,
-    PERCENT_EMPTY = 59
+    TSTRING = 4,
+    PERCENT_TOKEN = 5,
+    PERCENT_NTERM = 6,
+    PERCENT_TYPE = 7,
+    PERCENT_DESTRUCTOR = 8,
+    PERCENT_PRINTER = 9,
+    PERCENT_LEFT = 10,
+    PERCENT_RIGHT = 11,
+    PERCENT_NONASSOC = 12,
+    PERCENT_PRECEDENCE = 13,
+    PERCENT_PREC = 14,
+    PERCENT_DPREC = 15,
+    PERCENT_MERGE = 16,
+    PERCENT_CODE = 17,
+    PERCENT_DEFAULT_PREC = 18,
+    PERCENT_DEFINE = 19,
+    PERCENT_DEFINES = 20,
+    PERCENT_ERROR_VERBOSE = 21,
+    PERCENT_EXPECT = 22,
+    PERCENT_EXPECT_RR = 23,
+    PERCENT_FLAG = 24,
+    PERCENT_FILE_PREFIX = 25,
+    PERCENT_GLR_PARSER = 26,
+    PERCENT_INITIAL_ACTION = 27,
+    PERCENT_LANGUAGE = 28,
+    PERCENT_NAME_PREFIX = 29,
+    PERCENT_NO_DEFAULT_PREC = 30,
+    PERCENT_NO_LINES = 31,
+    PERCENT_NONDETERMINISTIC_PARSER = 32,
+    PERCENT_OUTPUT = 33,
+    PERCENT_PURE_PARSER = 34,
+    PERCENT_REQUIRE = 35,
+    PERCENT_SKELETON = 36,
+    PERCENT_START = 37,
+    PERCENT_TOKEN_TABLE = 38,
+    PERCENT_VERBOSE = 39,
+    PERCENT_YACC = 40,
+    BRACED_CODE = 41,
+    BRACED_PREDICATE = 42,
+    BRACKETED_ID = 43,
+    CHAR = 44,
+    COLON = 45,
+    EPILOGUE = 46,
+    EQUAL = 47,
+    ID = 48,
+    ID_COLON = 49,
+    PERCENT_PERCENT = 50,
+    PIPE = 51,
+    PROLOGUE = 52,
+    SEMICOLON = 53,
+    TAG = 54,
+    TAG_ANY = 55,
+    TAG_NONE = 56,
+    INT = 57,
+    PERCENT_PARAM = 58,
+    PERCENT_UNION = 59,
+    PERCENT_EMPTY = 60
   };
 #endif
 
@@ -147,6 +148,8 @@ union GRAM_STYPE
   assoc precedence_declarator;
   /* "string"  */
   char* STRING;
+  /* "translatable string"  */
+  char* TSTRING;
   /* "{...}"  */
   char* BRACED_CODE;
   /* "%?{...}"  */
@@ -160,13 +163,15 @@ union GRAM_STYPE
   /* "integer"  */
   int INT;
   /* int.opt  */
-  int yytype_81;
+  int yytype_82;
   /* named_ref.opt  */
-  named_ref* yytype_93;
+  named_ref* yytype_95;
   /* "%param"  */
   param_type PERCENT_PARAM;
   /* token_decl  */
   symbol* token_decl;
+  /* alias  */
+  symbol* alias;
   /* token_decl_for_prec  */
   symbol* token_decl_for_prec;
   /* id  */
@@ -177,8 +182,6 @@ union GRAM_STYPE
   symbol* symbol;
   /* string_as_id  */
   symbol* string_as_id;
-  /* string_as_id.opt  */
-  symbol* yytype_100;
   /* generic_symlist  */
   symbol_list* generic_symlist;
   /* generic_symlist_item  */
@@ -188,15 +191,15 @@ union GRAM_STYPE
   /* token_decls  */
   symbol_list* token_decls;
   /* token_decl.1  */
-  symbol_list* yytype_79;
+  symbol_list* yytype_80;
   /* token_decls_for_prec  */
   symbol_list* token_decls_for_prec;
   /* token_decl_for_prec.1  */
-  symbol_list* yytype_83;
+  symbol_list* yytype_85;
   /* symbol_decls  */
   symbol_list* symbol_decls;
   /* symbol_decl.1  */
-  symbol_list* yytype_86;
+  symbol_list* yytype_88;
   /* "%error-verbose"  */
   uniqstr PERCENT_ERROR_VERBOSE;
   /* "%<flag>"  */
@@ -216,7 +219,7 @@ union GRAM_STYPE
   /* "<tag>"  */
   uniqstr TAG;
   /* tag.opt  */
-  uniqstr yytype_73;
+  uniqstr yytype_74;
   /* tag  */
   uniqstr tag;
   /* variable  */
-- 
2.24.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]