]> git.saurik.com Git - bison.git/blobdiff - src/parse-gram.c
(po-check): Scan .l and .y files instead
[bison.git] / src / parse-gram.c
index 27596094b02ed0e563b37447e24d0f2b28178307..ab24546e1dcde2e6d2b50a1b295c39cd6a38b1d0 100644 (file)
@@ -207,7 +207,7 @@ do {                                                        \
 static void yyprint (FILE *file, int type, const yystype *value);
 
 symbol_class current_class = unknown_sym;
-char *current_type = 0;
+struniq_t current_type = 0;
 symbol_t *current_lhs;
 location_t current_lhs_location;
 assoc_t current_assoc;
@@ -236,9 +236,10 @@ typedef union {
   int integer;
   char *string;
   assoc_t assoc;
+  struniq_t struniq;
 } yystype;
-/* Line 212 of /tmp/prefix/share/bison/yacc.c.  */
-#line 241 "parse-gram.c"
+/* Line 195 of /usr/local/share/bison/yacc.c.  */
+#line 242 "parse-gram.c"
 # define YYSTYPE yystype
 # define YYSTYPE_IS_TRIVIAL 1
 #endif
@@ -258,8 +259,8 @@ typedef struct yyltype
 /* Copy the second part of user declarations.  */
 
 
-/* Line 232 of /tmp/prefix/share/bison/yacc.c.  */
-#line 262 "parse-gram.c"
+/* Line 215 of /usr/local/share/bison/yacc.c.  */
+#line 263 "parse-gram.c"
 
 #if ! defined (yyoverflow) || YYERROR_VERBOSE
 
@@ -374,8 +375,9 @@ union yyalloc
 #define YYUNDEFTOK  2
 #define YYMAXUTOK   301
 
-#define YYTRANSLATE(X) \
-  ((unsigned)(X) <= YYMAXUTOK ? yytranslate[X] : YYUNDEFTOK)
+#define YYTRANSLATE(YYX)                                               \
+  ((YYX <= 0) ? YYEOF :                                                        \
+   (unsigned)(YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
 
 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
 static const unsigned char yytranslate[] =
@@ -457,14 +459,14 @@ static const yysigned_char yyrhs[] =
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const unsigned short yyrline[] =
 {
-       0,   167,   167,   180,   182,   185,   187,   188,   189,   190,
-     191,   192,   193,   194,   195,   197,   198,   199,   200,   201,
-     203,   204,   205,   206,   207,   210,   212,   213,   217,   224,
-     223,   234,   233,   246,   245,   251,   251,   256,   265,   280,
-     282,   283,   286,   288,   293,   295,   299,   304,   309,   315,
-     321,   331,   334,   343,   345,   351,   353,   358,   365,   364,
-     369,   371,   374,   377,   379,   381,   383,   385,   389,   391,
-     394,   400,   409,   417,   422,   428,   430
+       0,   170,   170,   182,   184,   187,   189,   190,   191,   192,
+     193,   194,   195,   196,   197,   199,   200,   201,   202,   203,
+     205,   206,   207,   208,   209,   212,   214,   215,   219,   226,
+     225,   236,   235,   248,   247,   253,   253,   258,   267,   282,
+     284,   285,   288,   290,   295,   297,   301,   306,   311,   317,
+     323,   333,   336,   345,   347,   353,   355,   360,   367,   366,
+     371,   373,   376,   379,   381,   383,   385,   387,   391,   393,
+     396,   402,   411,   419,   421,   428,   430
 };
 #endif
 
@@ -660,7 +662,7 @@ static const unsigned char yystos[] =
 #endif
 
 #define yyerrok                (yyerrstatus = 0)
-#define yyclearin      (yychar = YYEMPTY)
+#define yyclearin      (yytoken = YYEMPTY)
 #define YYEMPTY                -2
 #define YYEOF          0
 
@@ -678,11 +680,11 @@ static const unsigned char yystos[] =
 
 #define YYBACKUP(Token, Value)                                 \
 do                                                             \
-  if (yychar == YYEMPTY && yylen == 1)                         \
+  if (yytoken == YYEMPTY && yylen == 1)                                \
     {                                                          \
       yychar = (Token);                                                \
       yylval = (Value);                                                \
-      yychar1 = YYTRANSLATE (yychar);                          \
+      yytoken = YYTRANSLATE (yychar);                          \
       YYPOPSTACK;                                              \
       goto yybackup;                                           \
     }                                                          \
@@ -825,25 +827,25 @@ yystpcpy (yydest, yysrc)
 
 #if defined (__STDC__) || defined (__cplusplus)
 static void
-yysymprint (FILE *yyout, int yytype, YYSTYPE yyvalue, YYLTYPE yylocation)
+yysymprint (FILE *yyout, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
 #else
 static void
-yysymprint (yyout, yytype, yyvalue, yylocation)
+yysymprint (yyout, yytype, yyvaluep, yylocationp)
     FILE *yyout;
     int yytype;
-    YYSTYPE yyvalue;
-    YYLTYPE yylocation;
+    YYSTYPE *yyvaluep;
+    YYLTYPE *yylocationp;
 #endif
 {
   /* Pacify ``unused variable'' warnings.  */
-  (void) yyvalue;
-  (void) yylocation;
+  (void) yyvaluep;
+  (void) yylocationp;
 
   if (yytype < YYNTOKENS)
     {
       YYFPRINTF (yyout, "token %s (", yytname[yytype]);
 # ifdef YYPRINT
-      YYPRINT (yyout, yytoknum[yytype], yyvalue);
+      YYPRINT (yyout, yytoknum[yytype], *yyvaluep);
 # endif
     }
   else
@@ -856,35 +858,34 @@ yysymprint (yyout, yytype, yyvalue, yylocation)
     }
   YYFPRINTF (yyout, ")");
 }
-#endif /* YYDEBUG. */
-
 
+#endif /* YYDEBUG. */
 /*-----------------------------------------------.
 | Release the memory associated to this symbol.  |
 `-----------------------------------------------*/
 
 #if defined (__STDC__) || defined (__cplusplus)
 static void
-yydestruct (int yytype, YYSTYPE yyvalue, YYLTYPE yylocation)
+yydestruct (int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp)
 #else
 static void
-yydestruct (yytype, yyvalue, yylocation)
+yydestruct (yytype, yyvaluep, yylocationp)
     int yytype;
-    YYSTYPE yyvalue;
-    YYLTYPE yylocation;
+    YYSTYPE *yyvaluep;
+    YYLTYPE *yylocationp;
 #endif
 {
   /* Pacify ``unused variable'' warnings.  */
-  (void) yyvalue;
-  (void) yylocation;
+  (void) yyvaluep;
+  (void) yylocationp;
 
   switch (yytype)
     {
+
       default:
         break;
     }
 }
-
 \f
 
 /* Prevent warnings from -Wmissing-prototypes.  */
@@ -947,7 +948,7 @@ YYLTYPE yylloc;
   /* Number of tokens to shift before error messages enabled.  */
   int yyerrstatus;
   /* Lookahead token as an internal (translated) token number.  */
-  int yychar1 = 0;
+  int yytoken = 0;
 
   /* Three stacks and their tools:
      `yyss': related to states,
@@ -990,7 +991,7 @@ YYLTYPE yylloc;
   yystate = 0;
   yyerrstatus = 0;
   yynerrs = 0;
-  yychar = YYEMPTY;            /* Cause a token to be read.  */
+  yychar = yytoken = YYEMPTY;          /* Cause a token to be read.  */
 
   /* Initialize stack pointers.
      Waste one element of value and location stack
@@ -1100,39 +1101,31 @@ yybackup:
 
   /* Not known => get a lookahead token if don't already have one.  */
 
-  /* yychar is either YYEMPTY or YYEOF
-     or a valid token in external form.  */
-
-  if (yychar == YYEMPTY)
+  /* YYTOKEN is either YYEMPTY or YYEOF or a valid token.  */
+  if (yytoken == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
       yychar = YYLEX;
+      yytoken = YYTRANSLATE (yychar);
     }
 
-  /* Convert token to internal form (in yychar1) for indexing tables with.  */
-
-  if (yychar <= 0)             /* This means end of input.  */
+  if (yytoken == YYEOF)
     {
-      yychar1 = 0;
-      yychar = YYEOF;          /* Don't call YYLEX any more.  */
-
       YYDPRINTF ((stderr, "Now at end of input.\n"));
     }
   else
     {
-      yychar1 = YYTRANSLATE (yychar);
-
       /* We have to keep this `#if YYDEBUG', since we use variables
         which are defined only if `YYDEBUG' is set.  */
       YYDPRINTF ((stderr, "Next token is "));
-      YYDSYMPRINT ((stderr, yychar1, yylval, yyloc));
+      YYDSYMPRINT ((stderr, yytoken, &yylval, &yyloc));
       YYDPRINTF ((stderr, "\n"));
     }
 
-  /* If the proper action on seeing token YYCHAR1 is to reduce or to
+  /* If the proper action on seeing token YYTOKEN is to reduce or to
      detect an error, take that action.  */
-  yyn += yychar1;
-  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yychar1)
+  yyn += yytoken;
+  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
     goto yydefault;
   yyn = yytable[yyn];
   if (yyn <= 0)
@@ -1148,11 +1141,11 @@ yybackup:
 
   /* Shift the lookahead token.  */
   YYDPRINTF ((stderr, "Shifting token %d (%s), ",
-             yychar, yytname[yychar1]));
+             yytoken, yytname[yytoken]));
 
   /* Discard the token being shifted unless it is eof.  */
-  if (yychar != YYEOF)
-    yychar = YYEMPTY;
+  if (yytoken != YYEOF)
+    yytoken = YYEMPTY;
 
   *++yyvsp = yylval;
   *++yylsp = yylloc;
@@ -1215,117 +1208,116 @@ yyreduce:
   switch (yyn)
     {
         case 2:
-#line 169 "parse-gram.y"
+#line 172 "parse-gram.y"
     {
       yycontrol->errcode = 0;
-      epilogue_set (yyvsp[0].string, yylsp[0]);
     }
     break;
 
   case 6:
-#line 187 "parse-gram.y"
+#line 189 "parse-gram.y"
     { prologue_augment (yyvsp[0].string, yylsp[0]); }
     break;
 
   case 7:
-#line 188 "parse-gram.y"
+#line 190 "parse-gram.y"
     { debug_flag = 1; }
     break;
 
   case 8:
-#line 189 "parse-gram.y"
+#line 191 "parse-gram.y"
     { muscle_insert (yyvsp[-1].string, yyvsp[0].string); }
     break;
 
   case 9:
-#line 190 "parse-gram.y"
+#line 192 "parse-gram.y"
     { defines_flag = 1; }
     break;
 
   case 10:
-#line 191 "parse-gram.y"
+#line 193 "parse-gram.y"
     { error_verbose = 1; }
     break;
 
   case 11:
-#line 192 "parse-gram.y"
+#line 194 "parse-gram.y"
     { expected_conflicts = yyvsp[0].integer; }
     break;
 
   case 12:
-#line 193 "parse-gram.y"
+#line 195 "parse-gram.y"
     { spec_file_prefix = yyvsp[0].string; }
     break;
 
   case 13:
-#line 194 "parse-gram.y"
+#line 196 "parse-gram.y"
     { glr_parser = 1; }
     break;
 
   case 14:
-#line 196 "parse-gram.y"
+#line 198 "parse-gram.y"
     { muscle_pair_list_grow ("lex_param", yyvsp[-2].string, yyvsp[0].string); }
     break;
 
   case 15:
-#line 197 "parse-gram.y"
+#line 199 "parse-gram.y"
     { locations_flag = 1; }
     break;
 
   case 16:
-#line 198 "parse-gram.y"
+#line 200 "parse-gram.y"
     { spec_name_prefix = yyvsp[0].string; }
     break;
 
   case 17:
-#line 199 "parse-gram.y"
+#line 201 "parse-gram.y"
     { no_lines_flag = 1; }
     break;
 
   case 18:
-#line 200 "parse-gram.y"
+#line 202 "parse-gram.y"
     { spec_outfile = yyvsp[0].string; }
     break;
 
   case 19:
-#line 202 "parse-gram.y"
+#line 204 "parse-gram.y"
     { muscle_pair_list_grow ("parse_param", yyvsp[-2].string, yyvsp[0].string); }
     break;
 
   case 20:
-#line 203 "parse-gram.y"
+#line 205 "parse-gram.y"
     { pure_parser = 1; }
     break;
 
   case 21:
-#line 204 "parse-gram.y"
+#line 206 "parse-gram.y"
     { skeleton = yyvsp[0].string; }
     break;
 
   case 22:
-#line 205 "parse-gram.y"
+#line 207 "parse-gram.y"
     { token_table_flag = 1; }
     break;
 
   case 23:
-#line 206 "parse-gram.y"
+#line 208 "parse-gram.y"
     { report_flag = 1; }
     break;
 
   case 24:
-#line 207 "parse-gram.y"
+#line 209 "parse-gram.y"
     { yacc_flag = 1; }
     break;
 
   case 27:
-#line 214 "parse-gram.y"
+#line 216 "parse-gram.y"
     {
       grammar_start_symbol_set (yyvsp[0].symbol, yylsp[0]);
     }
     break;
 
   case 28:
-#line 218 "parse-gram.y"
+#line 220 "parse-gram.y"
     {
       typed = 1;
       MUSCLE_INSERT_INT ("stype_line", yylsp[0].first_line);
@@ -1334,12 +1326,12 @@ yyreduce:
     break;
 
   case 29:
-#line 224 "parse-gram.y"
+#line 226 "parse-gram.y"
     { current_braced_code = destructor_braced_code; }
     break;
 
   case 30:
-#line 226 "parse-gram.y"
+#line 228 "parse-gram.y"
     {
       symbol_list_t *list;
       for (list = yyvsp[0].list; list; list = list->next)
@@ -1350,12 +1342,12 @@ yyreduce:
     break;
 
   case 31:
-#line 234 "parse-gram.y"
+#line 236 "parse-gram.y"
     { current_braced_code = printer_braced_code; }
     break;
 
   case 32:
-#line 236 "parse-gram.y"
+#line 238 "parse-gram.y"
     {
       symbol_list_t *list;
       for (list = yyvsp[0].list; list; list = list->next)
@@ -1366,12 +1358,12 @@ yyreduce:
     break;
 
   case 33:
-#line 246 "parse-gram.y"
+#line 248 "parse-gram.y"
     { current_class = nterm_sym; }
     break;
 
   case 34:
-#line 247 "parse-gram.y"
+#line 249 "parse-gram.y"
     {
       current_class = unknown_sym;
       current_type = NULL;
@@ -1379,12 +1371,12 @@ yyreduce:
     break;
 
   case 35:
-#line 251 "parse-gram.y"
+#line 253 "parse-gram.y"
     { current_class = token_sym; }
     break;
 
   case 36:
-#line 252 "parse-gram.y"
+#line 254 "parse-gram.y"
     {
       current_class = unknown_sym;
       current_type = NULL;
@@ -1392,17 +1384,17 @@ yyreduce:
     break;
 
   case 37:
-#line 257 "parse-gram.y"
+#line 259 "parse-gram.y"
     {
       symbol_list_t *list;
       for (list = yyvsp[0].list; list; list = list->next)
-       symbol_type_set (list->sym, yyvsp[-1].string, yylsp[-1]);
+       symbol_type_set (list->sym, yyvsp[-1].struniq, yylsp[-1]);
       symbol_list_free (yyvsp[0].list);
     }
     break;
 
   case 38:
-#line 267 "parse-gram.y"
+#line 269 "parse-gram.y"
     {
       symbol_list_t *list;
       ++current_prec;
@@ -1417,49 +1409,49 @@ yyreduce:
     break;
 
   case 39:
-#line 281 "parse-gram.y"
+#line 283 "parse-gram.y"
     { yyval.assoc = left_assoc; }
     break;
 
   case 40:
-#line 282 "parse-gram.y"
+#line 284 "parse-gram.y"
     { yyval.assoc = right_assoc; }
     break;
 
   case 41:
-#line 283 "parse-gram.y"
+#line 285 "parse-gram.y"
     { yyval.assoc = non_assoc; }
     break;
 
   case 42:
-#line 287 "parse-gram.y"
+#line 289 "parse-gram.y"
     { current_type = NULL; }
     break;
 
   case 43:
-#line 288 "parse-gram.y"
-    { current_type = yyvsp[0].string; }
+#line 290 "parse-gram.y"
+    { current_type = yyvsp[0].struniq; }
     break;
 
   case 44:
-#line 294 "parse-gram.y"
+#line 296 "parse-gram.y"
     { yyval.list = symbol_list_new (yyvsp[0].symbol, yylsp[0]); }
     break;
 
   case 45:
-#line 295 "parse-gram.y"
+#line 297 "parse-gram.y"
     { yyval.list = symbol_list_prepend (yyvsp[-1].list, yyvsp[0].symbol, yylsp[0]); }
     break;
 
   case 46:
-#line 301 "parse-gram.y"
+#line 303 "parse-gram.y"
     {
-       current_type = yyvsp[0].string;
+       current_type = yyvsp[0].struniq;
      }
     break;
 
   case 47:
-#line 305 "parse-gram.y"
+#line 307 "parse-gram.y"
     {
        symbol_class_set (yyvsp[0].symbol, current_class, yylsp[0]);
        symbol_type_set (yyvsp[0].symbol, current_type, yylsp[0]);
@@ -1467,7 +1459,7 @@ yyreduce:
     break;
 
   case 48:
-#line 310 "parse-gram.y"
+#line 312 "parse-gram.y"
     {
       symbol_class_set (yyvsp[-1].symbol, current_class, yylsp[-1]);
       symbol_type_set (yyvsp[-1].symbol, current_type, yylsp[-1]);
@@ -1476,7 +1468,7 @@ yyreduce:
     break;
 
   case 49:
-#line 316 "parse-gram.y"
+#line 318 "parse-gram.y"
     {
       symbol_class_set (yyvsp[-1].symbol, current_class, yylsp[-1]);
       symbol_type_set (yyvsp[-1].symbol, current_type, yylsp[-1]);
@@ -1485,7 +1477,7 @@ yyreduce:
     break;
 
   case 50:
-#line 322 "parse-gram.y"
+#line 324 "parse-gram.y"
     {
       symbol_class_set (yyvsp[-2].symbol, current_class, yylsp[-2]);
       symbol_type_set (yyvsp[-2].symbol, current_type, yylsp[-2]);
@@ -1495,17 +1487,17 @@ yyreduce:
     break;
 
   case 51:
-#line 333 "parse-gram.y"
+#line 335 "parse-gram.y"
     {;}
     break;
 
   case 52:
-#line 335 "parse-gram.y"
+#line 337 "parse-gram.y"
     {;}
     break;
 
   case 56:
-#line 354 "parse-gram.y"
+#line 356 "parse-gram.y"
     {
       if (yacc_flag)
        complain_at (yyloc, _("POSIX forbids declarations in the grammar"));
@@ -1513,79 +1505,79 @@ yyreduce:
     break;
 
   case 57:
-#line 359 "parse-gram.y"
+#line 361 "parse-gram.y"
     {
       yyerrok;
     }
     break;
 
   case 58:
-#line 365 "parse-gram.y"
+#line 367 "parse-gram.y"
     { current_lhs = yyvsp[-1].symbol; current_lhs_location = yylsp[-1]; }
     break;
 
   case 59:
-#line 366 "parse-gram.y"
+#line 368 "parse-gram.y"
     {;}
     break;
 
   case 60:
-#line 370 "parse-gram.y"
+#line 372 "parse-gram.y"
     { grammar_rule_end (yylsp[0]); }
     break;
 
   case 61:
-#line 371 "parse-gram.y"
+#line 373 "parse-gram.y"
     { grammar_rule_end (yylsp[0]); }
     break;
 
   case 62:
-#line 376 "parse-gram.y"
+#line 378 "parse-gram.y"
     { grammar_rule_begin (current_lhs, current_lhs_location); }
     break;
 
   case 63:
-#line 378 "parse-gram.y"
+#line 380 "parse-gram.y"
     { grammar_current_rule_symbol_append (yyvsp[0].symbol, yylsp[0]); }
     break;
 
   case 64:
-#line 380 "parse-gram.y"
+#line 382 "parse-gram.y"
     { grammar_current_rule_action_append (yyvsp[0].string, yylsp[0]); }
     break;
 
   case 65:
-#line 382 "parse-gram.y"
+#line 384 "parse-gram.y"
     { grammar_current_rule_prec_set (yyvsp[0].symbol, yylsp[0]); }
     break;
 
   case 66:
-#line 384 "parse-gram.y"
+#line 386 "parse-gram.y"
     { grammar_current_rule_dprec_set (yyvsp[0].integer, yylsp[0]); }
     break;
 
   case 67:
-#line 386 "parse-gram.y"
-    { grammar_current_rule_merge_set (yyvsp[0].string, yylsp[0]); }
+#line 388 "parse-gram.y"
+    { grammar_current_rule_merge_set (yyvsp[0].struniq, yylsp[0]); }
     break;
 
   case 68:
-#line 390 "parse-gram.y"
+#line 392 "parse-gram.y"
     { yyval.symbol = yyvsp[0].symbol; }
     break;
 
   case 69:
-#line 391 "parse-gram.y"
+#line 393 "parse-gram.y"
     { yyval.symbol = yyvsp[0].symbol; }
     break;
 
   case 70:
-#line 396 "parse-gram.y"
+#line 398 "parse-gram.y"
     { yyval.string = yyvsp[0].string; }
     break;
 
   case 71:
-#line 402 "parse-gram.y"
+#line 404 "parse-gram.y"
     {
       yyval.symbol = symbol_get (yyvsp[0].string, yylsp[0]);
       symbol_class_set (yyval.symbol, token_sym, yylsp[0]);
@@ -1593,32 +1585,26 @@ yyreduce:
     break;
 
   case 72:
-#line 411 "parse-gram.y"
+#line 413 "parse-gram.y"
     {
       yyval.string = yyvsp[0].string + 1;
       yyval.string[strlen (yyval.string) - 1] = '\0';
     }
     break;
 
-  case 73:
-#line 419 "parse-gram.y"
-    {
-      yyval.string = xstrdup ("");
-    }
-    break;
-
   case 74:
-#line 423 "parse-gram.y"
+#line 422 "parse-gram.y"
     {
-      yyval.string = yyvsp[0].string;
+      epilogue_augment (yyvsp[0].string, yylsp[0]);
+      scanner_last_string_free ();
     }
     break;
 
 
     }
 
-/* Line 1031 of /tmp/prefix/share/bison/yacc.c.  */
-#line 1621 "parse-gram.c"
+/* Line 950 of /usr/local/share/bison/yacc.c.  */
+#line 1607 "parse-gram.c"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -1723,7 +1709,7 @@ yyerrlab1:
         error, discard it.  */
 
       /* Return failure if at end of input.  */
-      if (yychar == YYEOF)
+      if (yytoken == YYEOF)
         {
          /* Pop the error token.  */
           YYPOPSTACK;
@@ -1733,18 +1719,18 @@ yyerrlab1:
              YYDPRINTF ((stderr, "Error: popping "));
              YYDSYMPRINT ((stderr,
                            yystos[*yyssp],
-                           *yyvsp, *yylsp));
+                           yyvsp, yylsp));
              YYDPRINTF ((stderr, "\n"));
-             yydestruct (yystos[*yyssp], *yyvsp, *yylsp);
+             yydestruct (yystos[*yyssp], yyvsp, yylsp);
              YYPOPSTACK;
            }
          YYABORT;
         }
 
       YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
-                 yychar, yytname[yychar1]));
-      yydestruct (yychar1, yylval, yylloc);
-      yychar = YYEMPTY;
+                 yytoken, yytname[yytoken]));
+      yydestruct (yytoken, &yylval, &yylloc);
+      yytoken = YYEMPTY;
     }
 
   /* Else will try to reuse lookahead token after shifting the error
@@ -1772,10 +1758,10 @@ yyerrlab1:
 
       YYDPRINTF ((stderr, "Error: popping "));
       YYDSYMPRINT ((stderr,
-                   yystos[*yyssp], *yyvsp, *yylsp));
+                   yystos[*yyssp], yyvsp, yylsp));
       YYDPRINTF ((stderr, "\n"));
 
-      yydestruct (yystos[yystate], *yyvsp, *yylsp);
+      yydestruct (yystos[yystate], yyvsp, yylsp);
       yyvsp--;
       yystate = *--yyssp;
       yylsp--;
@@ -1863,7 +1849,7 @@ yyprint (FILE *file,
       break;
 
     case TYPE:
-      fprintf (file, " = <%s>", value->string);
+      fprintf (file, " = <%s>", value->struniq);
       break;
 
     case BRACED_CODE:
@@ -1871,6 +1857,10 @@ yyprint (FILE *file,
     case EPILOGUE:
       fprintf (file, " = {{ %s }}", value->string);
       break;
+
+    default:
+      fprintf (file, "unknown token type");
+      break;
     }
 }