]> git.saurik.com Git - bison.git/commitdiff
* data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Pass
authorAkim Demaille <akim@epita.fr>
Fri, 21 Oct 2005 11:36:22 +0000 (11:36 +0000)
committerAkim Demaille <akim@epita.fr>
Fri, 21 Oct 2005 11:36:22 +0000 (11:36 +0000)
the %parse-params.
* data/glr.c (YY_SYMBOL_PRINT, yydestroyGLRState): Adjust.
* data/yacc.c (b4_Pure_if): Rename as...
(b4_yacc_pure_if): this.
(YY_SYMBOL_PRINT, yyparse): Adjust.
* doc/bison.texinfo: Formatting changes.

ChangeLog
NEWS
data/c.m4
data/glr.c
data/yacc.c
doc/bison.texinfo
src/parse-gram.c
src/parse-gram.h

index f9576a30faf03669ca9a06137c61faf902d5b154..b0101af5ff53a2b3dfb978c2f37587bbb8e86af5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2005-10-21  Akim Demaille  <akim@epita.fr>
+
+       * data/c.m4 (b4_yydestruct_generate, b4_yysymprint_generate): Pass
+       the %parse-params.
+       * data/glr.c (YY_SYMBOL_PRINT, yydestroyGLRState): Adjust.
+       * data/yacc.c (b4_Pure_if): Rename as...
+       (b4_yacc_pure_if): this.
+       (YY_SYMBOL_PRINT, yyparse): Adjust.
+       * doc/bison.texinfo: Formatting changes.
+
 2005-10-21  Akim Demaille  <akim@epita.fr>
 
        Finish the transition config -> build-aux.
 2005-10-21  Akim Demaille  <akim@epita.fr>
 
        Finish the transition config -> build-aux.
diff --git a/NEWS b/NEWS
index 2ab95345109392bae414f129aa9bea4e2d371f3f..de75edb6dd7121692e04ae1543189bbdfb9dbb6f 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,10 @@ Bison News
 
 Changes in version 2.1a:
 
 
 Changes in version 2.1a:
 
+* GLR, YACC parsers.
+  The %parse-params are available in the %destructor's (and the
+  experimental %printer's) as per the documentation.
+
 * Bison now warns if it finds a stray `$' or `@' in an action.
 
 * %require "VERSION"
 * Bison now warns if it finds a stray `$' or `@' in an action.
 
 * %require "VERSION"
index 5285fcdcc6c08476d8606cf9d0ca54862685154d..8ee6275f7126e81e95a1a556d799d05c1094d17e 100644 (file)
--- a/data/c.m4
+++ b/data/c.m4
@@ -96,7 +96,6 @@ m4_define([b4_parse_param],
 b4_parse_param))
 
 
 b4_parse_param))
 
 
-
 ## ------------ ##
 ## Data Types.  ##
 ## ------------ ##
 ## ------------ ##
 ## Data Types.  ##
 ## ------------ ##
@@ -342,7 +341,6 @@ m4_define([b4_c_arg],
 ## Synclines.  ##
 ## ----------- ##
 
 ## Synclines.  ##
 ## ----------- ##
 
-
 # b4_syncline(LINE, FILE)
 # -----------------------
 m4_define([b4_syncline],
 # b4_syncline(LINE, FILE)
 # -----------------------
 m4_define([b4_syncline],
@@ -382,8 +380,9 @@ m4_define_default([b4_yydestruct_generate],
     [static void],
     [[const char *yymsg],    [yymsg]],
     [[int yytype],           [yytype]],
     [static void],
     [[const char *yymsg],    [yymsg]],
     [[int yytype],           [yytype]],
-    [[YYSTYPE *yyvaluep],    [yyvaluep]]b4_location_if([,
-    [[YYLTYPE *yylocationp], [yylocationp]]]))[
+    [[YYSTYPE *yyvaluep],    [yyvaluep]][]dnl
+b4_location_if(            [, [[YYLTYPE *yylocationp], [yylocationp]]])[]dnl
+m4_ifset([b4_parse_param], [, b4_parse_param]))[
 {
   YYUSE (yyvaluep);
 ]b4_location_if([  YYUSE (yylocationp);
 {
   YYUSE (yyvaluep);
 ]b4_location_if([  YYUSE (yylocationp);
@@ -416,11 +415,12 @@ m4_define_default([b4_yysymprint_generate],
     [static void],
     [[FILE *yyoutput],       [yyoutput]],
     [[int yytype],           [yytype]],
     [static void],
     [[FILE *yyoutput],       [yyoutput]],
     [[int yytype],           [yytype]],
-    [[YYSTYPE *yyvaluep],    [yyvaluep]]b4_location_if([,
-    [[YYLTYPE *yylocationp], [yylocationp]]]))
+    [[YYSTYPE *yyvaluep],    [yyvaluep]][]dnl
+b4_location_if(            [, [[YYLTYPE *yylocationp], [yylocationp]]])[]dnl
+m4_ifset([b4_parse_param], [, b4_parse_param]))[
 {
   YYUSE (yyvaluep);
 {
   YYUSE (yyvaluep);
-b4_location_if([  YYUSE (yylocationp);
+]b4_location_if([  YYUSE (yylocationp);
 ])dnl
 [
   if (yytype < YYNTOKENS)
 ])dnl
 [
   if (yytype < YYNTOKENS)
@@ -443,5 +443,5 @@ b4_location_if([  YYUSE (yylocationp);
         break;
     }
   YYFPRINTF (yyoutput, ")");
         break;
     }
   YYFPRINTF (yyoutput, ")");
-}
-]])
+}]dnl
+])
index 877e400960ac69f36396dc32a89a3f0415938527..febed5796dda4f196a5526204eab60db02bd4940 100644 (file)
@@ -34,6 +34,14 @@ m4_define_default([b4_stack_depth_init],  [200])
 ## ------------------------ ##
 
 
 ## ------------------------ ##
 
 
+# b4_user_formals
+# ---------------
+# This is specific to GLR because it relies on ISO C formal argument
+# declarations.
+m4_define([b4_user_formals],
+[m4_ifset([b4_parse_param], [, b4_c_ansi_formals(b4_parse_param)])])
+
+
 # b4_lex_param
 # ------------
 # Accumule in b4_lex_param all the yylex arguments.
 # b4_lex_param
 # ------------
 # Accumule in b4_lex_param all the yylex arguments.
@@ -44,12 +52,6 @@ b4_location_if([, [[YYLTYPE *], [yyllocp]]])])dnl
 m4_ifdef([b4_lex_param], [, ]b4_lex_param)))
 
 
 m4_ifdef([b4_lex_param], [, ]b4_lex_param)))
 
 
-# b4_user_formals
-# ---------------
-m4_define([b4_user_formals],
-[m4_ifset([b4_parse_param], [, b4_c_ansi_formals(b4_parse_param)])])
-
-
 # b4_yyerror_args
 # ---------------
 # Arguments passed to yyerror: user args plus yylloc.
 # b4_yyerror_args
 # ---------------
 # Arguments passed to yyerror: user args plus yylloc.
@@ -534,15 +536,15 @@ do {                                              \
 
 ]b4_yysymprint_generate([b4_c_ansi_function_def])[
 
 
 ]b4_yysymprint_generate([b4_c_ansi_function_def])[
 
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)         \
-do {                                                           \
-  if (yydebug)                                                 \
-    {                                                          \
-      YYFPRINTF (stderr, "%s ", Title);                                \
-      yysymprint (stderr,                                      \
-                  Type, Value]b4_location_if([, Location])[);  \
-      YYFPRINTF (stderr, "\n");                                        \
-    }                                                          \
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                     \
+do {                                                                       \
+  if (yydebug)                                                             \
+    {                                                                      \
+      YYFPRINTF (stderr, "%s ", Title);                                            \
+      yysymprint (stderr,                                                  \
+                  Type, Value]b4_location_if([, Location])[]b4_user_args[); \
+      YYFPRINTF (stderr, "\n");                                                    \
+    }                                                                      \
 } while (/*CONSTCOND*/ 0)
 
 /* Nonzero means print parse trace.  It is left uninitialized so that
 } while (/*CONSTCOND*/ 0)
 
 /* Nonzero means print parse trace.  It is left uninitialized so that
@@ -902,11 +904,11 @@ yyrhsLength (yyRuleNum yyrule)
 }
 
 static void
 }
 
 static void
-yydestroyGLRState (char const *yymsg, yyGLRState *yys)
+yydestroyGLRState (char const *yymsg, yyGLRState *yys]b4_user_formals[)
 {
   if (yys->yyresolved)
     yydestruct (yymsg, yystos[yys->yylrState],
 {
   if (yys->yyresolved)
     yydestruct (yymsg, yystos[yys->yylrState],
-               &yys->yysemantics.yysval]b4_location_if([, &yys->yyloc])[);
+               &yys->yysemantics.yysval]b4_location_if([, &yys->yyloc])[]b4_user_args[);
   else
     {
 #if YYDEBUG
   else
     {
 #if YYDEBUG
@@ -914,7 +916,7 @@ yydestroyGLRState (char const *yymsg, yyGLRState *yys)
        {
          YYFPRINTF (stderr, "%s unresolved ", yymsg);
          yysymprint (stderr, yystos[yys->yylrState],
        {
          YYFPRINTF (stderr, "%s unresolved ", yymsg);
          yysymprint (stderr, yystos[yys->yylrState],
-                     &yys->yysemantics.yysval]b4_location_if([, &yys->yyloc])[);
+                     &yys->yysemantics.yysval]b4_location_if([, &yys->yyloc])[]b4_user_args[);
          YYFPRINTF (stderr, "\n");
        }
 #endif
          YYFPRINTF (stderr, "\n");
        }
 #endif
@@ -927,7 +929,7 @@ yydestroyGLRState (char const *yymsg, yyGLRState *yys)
           for (yyrh = yyoption->yystate, yyn = yyrhsLength (yyoption->yyrule);
                yyn > 0;
                yyrh = yyrh->yypred, yyn -= 1)
           for (yyrh = yyoption->yystate, yyn = yyrhsLength (yyoption->yyrule);
                yyn > 0;
                yyrh = yyrh->yypred, yyn -= 1)
-            yydestroyGLRState (yymsg, yyrh);
+            yydestroyGLRState (yymsg, yyrh]b4_user_args[);
         }
     }
 }
         }
     }
 }
@@ -1968,7 +1970,7 @@ yyrecoverSyntaxError (yyGLRStack* yystack,
            yyerror_range[2].yystate.yyloc = *yyllocp;
            YYLLOC_DEFAULT (yys->yyloc, yyerror_range, 2);]])[
            yydestruct ("Error: discarding",
            yyerror_range[2].yystate.yyloc = *yyllocp;
            YYLLOC_DEFAULT (yys->yyloc, yyerror_range, 2);]])[
            yydestruct ("Error: discarding",
-                       *yytokenp, yylvalp]b4_location_if([, yyllocp])[);
+                       *yytokenp, yylvalp]b4_location_if([, yyllocp])[]b4_user_args[);
          }
        YYDPRINTF ((stderr, "Reading a token: "));
        yychar = YYLEX;
          }
        YYDPRINTF ((stderr, "Reading a token: "));
        yychar = YYLEX;
@@ -2023,7 +2025,7 @@ yyrecoverSyntaxError (yyGLRStack* yystack,
            }
        }
 ]b4_location_if([[      yystack->yyerror_range[1].yystate.yyloc = yys->yyloc;]])[
            }
        }
 ]b4_location_if([[      yystack->yyerror_range[1].yystate.yyloc = yys->yyloc;]])[
-      yydestroyGLRState ("Error: popping", yys);
+      yydestroyGLRState ("Error: popping", yys]b4_user_args[);
       yystack->yytops.yystates[0] = yys->yypred;
       yystack->yynextFree -= 1;
       yystack->yyspaceLeft += 1;
       yystack->yytops.yystates[0] = yys->yypred;
       yystack->yynextFree -= 1;
       yystack->yyspaceLeft += 1;
@@ -2218,7 +2220,7 @@ b4_syncline([@oline@], [@ofile@])])dnl
  yyreturn:
   if (yytoken != YYEOF && yytoken != YYEMPTY)
     yydestruct ("Cleanup: discarding lookahead",
  yyreturn:
   if (yytoken != YYEOF && yytoken != YYEMPTY)
     yydestruct ("Cleanup: discarding lookahead",
-                yytoken, yylvalp]b4_location_if([, yyllocp])[);
+                yytoken, yylvalp]b4_location_if([, yyllocp])[]b4_user_args[);
 
   /* If the stack is well-formed, pop the stack until it is empty,
      destroying its entries as we go.  But free the stack regardless
 
   /* If the stack is well-formed, pop the stack until it is empty,
      destroying its entries as we go.  But free the stack regardless
@@ -2231,7 +2233,7 @@ b4_syncline([@oline@], [@ofile@])])dnl
          {
            yyGLRState *yys = yystates[0];
 ]b4_location_if([[       yystack.yyerror_range[1].yystate.yyloc = yys->yyloc;]]
          {
            yyGLRState *yys = yystates[0];
 ]b4_location_if([[       yystack.yyerror_range[1].yystate.yyloc = yys->yyloc;]]
-)[         yydestroyGLRState ("Cleanup: popping", yys);
+)[         yydestroyGLRState ("Cleanup: popping", yys]b4_user_args[);
            yystates[0] = yys->yypred;
            yystack.yynextFree -= 1;
            yystack.yyspaceLeft += 1;
            yystates[0] = yys->yypred;
            yystack.yynextFree -= 1;
            yystack.yyspaceLeft += 1;
index 43e0f920752a1fb6d852af4d694ab1a12aefbfbc..7af81941efc0536908f8befd237c26931eff785d 100644 (file)
@@ -36,10 +36,10 @@ m4_define_default([b4_stack_depth_init],  [200])
 ## ------------------------ ##
 
 
 ## ------------------------ ##
 
 
-# b4_pure_if(IF-TRUE, IF-FALSE)
-# -----------------------------
+# b4_yacc_pure_if(IF-TRUE, IF-FALSE)
+# ----------------------------------
 # Expand IF-TRUE, if %pure-parser and %parse-param, IF-FALSE otherwise.
 # Expand IF-TRUE, if %pure-parser and %parse-param, IF-FALSE otherwise.
-m4_define([b4_Pure_if],
+m4_define([b4_yacc_pure_if],
 [b4_pure_if([m4_ifset([b4_parse_param],
                       [$1], [$2])],
             [$2])])
 [b4_pure_if([m4_ifset([b4_parse_param],
                       [$1], [$2])],
             [$2])])
@@ -49,7 +49,7 @@ m4_define([b4_Pure_if],
 # ---------------
 # Arguments passed to yyerror: user args plus yylloc.
 m4_define([b4_yyerror_args],
 # ---------------
 # Arguments passed to yyerror: user args plus yylloc.
 m4_define([b4_yyerror_args],
-[b4_Pure_if([b4_location_if([&yylloc, ])])dnl
+[b4_yacc_pure_if([b4_location_if([&yylloc, ])])dnl
 m4_ifset([b4_parse_param], [b4_c_args(b4_parse_param), ])])
 
 
 m4_ifset([b4_parse_param], [b4_c_args(b4_parse_param), ])])
 
 
@@ -628,15 +628,15 @@ do {                                              \
     YYFPRINTF Args;                            \
 } while (/*CONSTCOND*/ 0)
 
     YYFPRINTF Args;                            \
 } while (/*CONSTCOND*/ 0)
 
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)         \
-do {                                                           \
-  if (yydebug)                                                 \
-    {                                                          \
-      YYFPRINTF (stderr, "%s ", Title);                                \
-      yysymprint (stderr,                                      \
-                  Type, Value]b4_location_if([, Location])[);  \
-      YYFPRINTF (stderr, "\n");                                        \
-    }                                                          \
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                   \
+do {                                                                     \
+  if (yydebug)                                                           \
+    {                                                                    \
+      YYFPRINTF (stderr, "%s ", Title);                                          \
+      yysymprint (stderr,                                                \
+                  Type, Value]b4_location_if([, Location])[]b4_user_args[); \
+      YYFPRINTF (stderr, "\n");                                                  \
+    }                                                                    \
 } while (/*CONSTCOND*/ 0)
 
 /*------------------------------------------------------------------.
 } while (/*CONSTCOND*/ 0)
 
 /*------------------------------------------------------------------.
@@ -1346,7 +1346,8 @@ yyerrlab:
         }
       else
        {
         }
       else
        {
-         yydestruct ("Error: discarding", yytoken, &yylval]b4_location_if([, &yylloc])[);
+         yydestruct ("Error: discarding",
+                      yytoken, &yylval]b4_location_if([, &yylloc])[]b4_user_args[);
          yychar = YYEMPTY;
        }
     }
          yychar = YYEMPTY;
        }
     }
@@ -1400,7 +1401,8 @@ yyerrlab1:
        YYABORT;
 
 ]b4_location_if([[      yyerror_range[0] = *yylsp;]])[
        YYABORT;
 
 ]b4_location_if([[      yyerror_range[0] = *yylsp;]])[
-      yydestruct ("Error: popping", yystos[yystate], yyvsp]b4_location_if([, yylsp])[);
+      yydestruct ("Error: popping",
+                  yystos[yystate], yyvsp]b4_location_if([, yylsp])[]b4_user_args[);
       YYPOPSTACK;
       yystate = *yyssp;
       YY_STACK_PRINT (yyss, yyssp);
       YYPOPSTACK;
       yystate = *yyssp;
       YY_STACK_PRINT (yyss, yyssp);
@@ -1451,11 +1453,11 @@ yyexhaustedlab:
 yyreturn:
   if (yychar != YYEOF && yychar != YYEMPTY)
      yydestruct ("Cleanup: discarding lookahead",
 yyreturn:
   if (yychar != YYEOF && yychar != YYEMPTY)
      yydestruct ("Cleanup: discarding lookahead",
-                yytoken, &yylval]b4_location_if([, &yylloc])[);
+                yytoken, &yylval]b4_location_if([, &yylloc])[]b4_user_args[);
   while (yyssp != yyss)
     {
       yydestruct ("Cleanup: popping",
   while (yyssp != yyss)
     {
       yydestruct ("Cleanup: popping",
-                 yystos[*yyssp], yyvsp]b4_location_if([, yylsp])[);
+                 yystos[*yyssp], yyvsp]b4_location_if([, yylsp])[]b4_user_args[);
       YYPOPSTACK;
     }
 #ifndef yyoverflow
       YYPOPSTACK;
     }
 #ifndef yyoverflow
index f4a0cbec8e4f9ceb409a88efc2633ed7a42d8754..01dccb418bcea8ca898ef758154f4c9234e39512 100644 (file)
@@ -3810,28 +3810,28 @@ For instance, if your locations use a file name, you may use
 @cindex freeing discarded symbols
 @findex %destructor
 
 @cindex freeing discarded symbols
 @findex %destructor
 
-Some symbols can be discarded by the parser.  During error
-recovery (@pxref{Error Recovery}), symbols already pushed
-on the stack and tokens coming from the rest of the file
-are discarded until the parser falls on its feet.  If the parser
-runs out of memory, all the symbols on the stack must be discarded.
-Even if the parser succeeds, it must discard the start symbol.
+Some symbols can be discarded by the parser.  During error recovery
+(@pxref{Error Recovery}), symbols already pushed on the stack and tokens
+coming from the rest of the file are discarded until the parser falls on
+its feet.  If the parser runs out of memory, all the symbols on the
+stack must be discarded.  Even if the parser succeeds, it must discard
+the start symbol.
 
 When discarded symbols convey heap based information, this memory is
 lost.  While this behavior can be tolerable for batch parsers, such as
 
 When discarded symbols convey heap based information, this memory is
 lost.  While this behavior can be tolerable for batch parsers, such as
-in traditional compilers, it is unacceptable for programs like shells
-or protocol implementations that may parse and execute indefinitely.
+in traditional compilers, it is unacceptable for programs like shells or
+protocol implementations that may parse and execute indefinitely.
 
 The @code{%destructor} directive defines code that
 is called when a symbol is discarded.
 
 @deffn {Directive} %destructor @{ @var{code} @} @var{symbols}
 @findex %destructor
 
 The @code{%destructor} directive defines code that
 is called when a symbol is discarded.
 
 @deffn {Directive} %destructor @{ @var{code} @} @var{symbols}
 @findex %destructor
-Invoke @var{code} whenever the parser discards one of the
-@var{symbols}.  Within @var{code}, @code{$$} designates the semantic
-value associated with the discarded symbol.  The additional
-parser parameters are also available
-(@pxref{Parser Function, , The Parser Function @code{yyparse}}).
+Invoke @var{code} whenever the parser discards one of the @var{symbols}.
+Within @var{code}, @code{$$} designates the semantic value associated
+with the discarded symbol.  The additional parser parameters are also
+available (@pxref{Parser Function, , The Parser Function
+@code{yyparse}}).
 
 @strong{Warning:} as of Bison 2.1, this feature is still
 experimental, as there has not been enough user feedback.  In particular,
 
 @strong{Warning:} as of Bison 2.1, this feature is still
 experimental, as there has not been enough user feedback.  In particular,
index 1ce884fd7c3d36c8f0eafcca0fc0b2547828cedb..b62ba6bb3468479e2bc3d273fcbb0dd599a7c9e5 100644 (file)
 
 
 /* Copy the first part of user declarations.  */
 
 
 /* Copy the first part of user declarations.  */
-#line 1 "parse-gram.y"
+#line 1 "../../src/parse-gram.y"
 /* Bison Grammar Parser                             -*- C -*-
 
    Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 /* Bison Grammar Parser                             -*- C -*-
 
    Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
@@ -253,7 +253,7 @@ static int current_prec = 0;
 #endif
 
 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
 #endif
 
 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 82 "parse-gram.y"
+#line 82 "../../src/parse-gram.y"
 typedef union YYSTYPE {
   symbol *symbol;
   symbol_list *list;
 typedef union YYSTYPE {
   symbol *symbol;
   symbol_list *list;
@@ -263,7 +263,7 @@ typedef union YYSTYPE {
   uniqstr uniqstr;
 } YYSTYPE;
 /* Line 196 of yacc.c.  */
   uniqstr uniqstr;
 } YYSTYPE;
 /* Line 196 of yacc.c.  */
-#line 267 "parse-gram.c"
+#line 267 "../../src/parse-gram.c"
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
@@ -287,7 +287,7 @@ typedef struct YYLTYPE
 
 
 /* Line 219 of yacc.c.  */
 
 
 /* Line 219 of yacc.c.  */
-#line 291 "parse-gram.c"
+#line 291 "../../src/parse-gram.c"
 
 /* Define YYMODERN_C if this compiler supports C89 or better.  If
    __STDC__ is defined, the compiler is modern.  IBM xlc 7.0 when run
 
 /* Define YYMODERN_C if this compiler supports C89 or better.  If
    __STDC__ is defined, the compiler is modern.  IBM xlc 7.0 when run
@@ -864,15 +864,15 @@ do {                                              \
     YYFPRINTF Args;                            \
 } while (/*CONSTCOND*/ 0)
 
     YYFPRINTF Args;                            \
 } while (/*CONSTCOND*/ 0)
 
-# define YY_SYMBOL_PRINT(Title, Type, Value, Location)         \
-do {                                                           \
-  if (yydebug)                                                 \
-    {                                                          \
-      YYFPRINTF (stderr, "%s ", Title);                                \
-      yysymprint (stderr,                                      \
-                  Type, Value, Location);      \
-      YYFPRINTF (stderr, "\n");                                        \
-    }                                                          \
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)                   \
+do {                                                                     \
+  if (yydebug)                                                           \
+    {                                                                    \
+      YYFPRINTF (stderr, "%s ", Title);                                          \
+      yysymprint (stderr,                                                \
+                  Type, Value, Location); \
+      YYFPRINTF (stderr, "\n");                                                  \
+    }                                                                    \
 } while (/*CONSTCOND*/ 0)
 
 /*------------------------------------------------------------------.
 } while (/*CONSTCOND*/ 0)
 
 /*------------------------------------------------------------------.
@@ -1205,101 +1205,100 @@ yysymprint (yyoutput, yytype, yyvaluep, yylocationp)
   switch (yytype)
     {
       case 3: /* "\"string\"" */
   switch (yytype)
     {
       case 3: /* "\"string\"" */
-#line 169 "parse-gram.y"
+#line 169 "../../src/parse-gram.y"
         { fprintf (stderr, "\"%s\"", (yyvaluep->chars)); };
         { fprintf (stderr, "\"%s\"", (yyvaluep->chars)); };
-#line 1211 "parse-gram.c"
+#line 1211 "../../src/parse-gram.c"
         break;
       case 4: /* "\"integer\"" */
         break;
       case 4: /* "\"integer\"" */
-#line 182 "parse-gram.y"
+#line 182 "../../src/parse-gram.y"
         { fprintf (stderr, "%d", (yyvaluep->integer)); };
         { fprintf (stderr, "%d", (yyvaluep->integer)); };
-#line 1216 "parse-gram.c"
+#line 1216 "../../src/parse-gram.c"
         break;
       case 8: /* "\"%destructor {...}\"" */
         break;
       case 8: /* "\"%destructor {...}\"" */
-#line 171 "parse-gram.y"
+#line 171 "../../src/parse-gram.y"
         { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
         { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-#line 1221 "parse-gram.c"
+#line 1221 "../../src/parse-gram.c"
         break;
       case 9: /* "\"%printer {...}\"" */
         break;
       case 9: /* "\"%printer {...}\"" */
-#line 175 "parse-gram.y"
+#line 175 "../../src/parse-gram.y"
         { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
         { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-#line 1226 "parse-gram.c"
+#line 1226 "../../src/parse-gram.c"
         break;
       case 10: /* "\"%union {...}\"" */
         break;
       case 10: /* "\"%union {...}\"" */
-#line 176 "parse-gram.y"
+#line 176 "../../src/parse-gram.y"
         { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
         { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-#line 1231 "parse-gram.c"
+#line 1231 "../../src/parse-gram.c"
         break;
       case 26: /* "\"%initial-action {...}\"" */
         break;
       case 26: /* "\"%initial-action {...}\"" */
-#line 172 "parse-gram.y"
+#line 172 "../../src/parse-gram.y"
         { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
         { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-#line 1236 "parse-gram.c"
+#line 1236 "../../src/parse-gram.c"
         break;
       case 27: /* "\"%lex-param {...}\"" */
         break;
       case 27: /* "\"%lex-param {...}\"" */
-#line 173 "parse-gram.y"
+#line 173 "../../src/parse-gram.y"
         { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
         { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-#line 1241 "parse-gram.c"
+#line 1241 "../../src/parse-gram.c"
         break;
       case 34: /* "\"%parse-param {...}\"" */
         break;
       case 34: /* "\"%parse-param {...}\"" */
-#line 174 "parse-gram.y"
+#line 174 "../../src/parse-gram.y"
         { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
         { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-#line 1246 "parse-gram.c"
+#line 1246 "../../src/parse-gram.c"
         break;
       case 42: /* "\"type\"" */
         break;
       case 42: /* "\"type\"" */
-#line 180 "parse-gram.y"
+#line 180 "../../src/parse-gram.y"
         { fprintf (stderr, "<%s>", (yyvaluep->uniqstr)); };
         { fprintf (stderr, "<%s>", (yyvaluep->uniqstr)); };
-#line 1251 "parse-gram.c"
+#line 1251 "../../src/parse-gram.c"
         break;
       case 46: /* "\"identifier\"" */
         break;
       case 46: /* "\"identifier\"" */
-#line 184 "parse-gram.y"
+#line 184 "../../src/parse-gram.y"
         { fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
         { fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
-#line 1256 "parse-gram.c"
+#line 1256 "../../src/parse-gram.c"
         break;
       case 47: /* "\"identifier:\"" */
         break;
       case 47: /* "\"identifier:\"" */
-#line 186 "parse-gram.y"
+#line 186 "../../src/parse-gram.y"
         { fprintf (stderr, "%s:", (yyvaluep->symbol)->tag); };
         { fprintf (stderr, "%s:", (yyvaluep->symbol)->tag); };
-#line 1261 "parse-gram.c"
+#line 1261 "../../src/parse-gram.c"
         break;
       case 49: /* "\"%{...%}\"" */
         break;
       case 49: /* "\"%{...%}\"" */
-#line 178 "parse-gram.y"
+#line 178 "../../src/parse-gram.y"
         { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
         { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-#line 1266 "parse-gram.c"
+#line 1266 "../../src/parse-gram.c"
         break;
       case 50: /* "\"epilogue\"" */
         break;
       case 50: /* "\"epilogue\"" */
-#line 178 "parse-gram.y"
+#line 178 "../../src/parse-gram.y"
         { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
         { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-#line 1271 "parse-gram.c"
+#line 1271 "../../src/parse-gram.c"
         break;
       case 51: /* "\"{...}\"" */
         break;
       case 51: /* "\"{...}\"" */
-#line 177 "parse-gram.y"
+#line 177 "../../src/parse-gram.y"
         { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
         { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-#line 1276 "parse-gram.c"
+#line 1276 "../../src/parse-gram.c"
         break;
       case 72: /* "symbol" */
         break;
       case 72: /* "symbol" */
-#line 184 "parse-gram.y"
+#line 184 "../../src/parse-gram.y"
         { fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
         { fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
-#line 1281 "parse-gram.c"
+#line 1281 "../../src/parse-gram.c"
         break;
       case 73: /* "action" */
         break;
       case 73: /* "action" */
-#line 177 "parse-gram.y"
+#line 177 "../../src/parse-gram.y"
         { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
         { fprintf (stderr, "{\n%s\n}", (yyvaluep->chars)); };
-#line 1286 "parse-gram.c"
+#line 1286 "../../src/parse-gram.c"
         break;
       case 74: /* "string_as_id" */
         break;
       case 74: /* "string_as_id" */
-#line 184 "parse-gram.y"
+#line 184 "../../src/parse-gram.y"
         { fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
         { fprintf (stderr, "%s", (yyvaluep->symbol)->tag); };
-#line 1291 "parse-gram.c"
+#line 1291 "../../src/parse-gram.c"
         break;
       case 75: /* "string_content" */
         break;
       case 75: /* "string_content" */
-#line 169 "parse-gram.y"
+#line 169 "../../src/parse-gram.y"
         { fprintf (stderr, "\"%s\"", (yyvaluep->chars)); };
         { fprintf (stderr, "\"%s\"", (yyvaluep->chars)); };
-#line 1296 "parse-gram.c"
+#line 1296 "../../src/parse-gram.c"
         break;
       default:
         break;
     }
   YYFPRINTF (yyoutput, ")");
 }
         break;
       default:
         break;
     }
   YYFPRINTF (yyoutput, ")");
 }
-
 #endif /* ! YYDEBUG */
 /*-----------------------------------------------.
 | Release the memory associated to this symbol.  |
 #endif /* ! YYDEBUG */
 /*-----------------------------------------------.
 | Release the memory associated to this symbol.  |
@@ -1462,7 +1461,7 @@ YYLTYPE yylloc;
 
 
   /* User initialization code. */
 
 
   /* User initialization code. */
-#line 72 "parse-gram.y"
+#line 72 "../../src/parse-gram.y"
 {
   /* Bison's grammar can initial empty locations, hence a default
      location is needed. */
 {
   /* Bison's grammar can initial empty locations, hence a default
      location is needed. */
@@ -1471,7 +1470,7 @@ YYLTYPE yylloc;
   yylloc.start.column = yylloc.end.column = 0;
 }
 /* Line 1066 of yacc.c.  */
   yylloc.start.column = yylloc.end.column = 0;
 }
 /* Line 1066 of yacc.c.  */
-#line 1475 "parse-gram.c"
+#line 1474 "../../src/parse-gram.c"
   yylsp[0] = yylloc;
   goto yysetstate;
 
   yylsp[0] = yylloc;
   goto yysetstate;
 
@@ -1660,52 +1659,52 @@ yyreduce:
   switch (yyn)
     {
         case 6:
   switch (yyn)
     {
         case 6:
-#line 207 "parse-gram.y"
+#line 207 "../../src/parse-gram.y"
     { prologue_augment ((yyvsp[0].chars), (yylsp[0])); }
     break;
 
   case 7:
     { prologue_augment ((yyvsp[0].chars), (yylsp[0])); }
     break;
 
   case 7:
-#line 208 "parse-gram.y"
+#line 208 "../../src/parse-gram.y"
     { debug_flag = true; }
     break;
 
   case 8:
     { debug_flag = true; }
     break;
 
   case 8:
-#line 209 "parse-gram.y"
+#line 209 "../../src/parse-gram.y"
     { muscle_insert ((yyvsp[0].chars), "1"); }
     break;
 
   case 9:
     { muscle_insert ((yyvsp[0].chars), "1"); }
     break;
 
   case 9:
-#line 210 "parse-gram.y"
+#line 210 "../../src/parse-gram.y"
     { muscle_insert ((yyvsp[-1].chars), (yyvsp[0].chars)); }
     break;
 
   case 10:
     { muscle_insert ((yyvsp[-1].chars), (yyvsp[0].chars)); }
     break;
 
   case 10:
-#line 211 "parse-gram.y"
+#line 211 "../../src/parse-gram.y"
     { defines_flag = true; }
     break;
 
   case 11:
     { defines_flag = true; }
     break;
 
   case 11:
-#line 212 "parse-gram.y"
+#line 212 "../../src/parse-gram.y"
     { error_verbose = true; }
     break;
 
   case 12:
     { error_verbose = true; }
     break;
 
   case 12:
-#line 213 "parse-gram.y"
+#line 213 "../../src/parse-gram.y"
     { expected_sr_conflicts = (yyvsp[0].integer); }
     break;
 
   case 13:
     { expected_sr_conflicts = (yyvsp[0].integer); }
     break;
 
   case 13:
-#line 214 "parse-gram.y"
+#line 214 "../../src/parse-gram.y"
     { expected_rr_conflicts = (yyvsp[0].integer); }
     break;
 
   case 14:
     { expected_rr_conflicts = (yyvsp[0].integer); }
     break;
 
   case 14:
-#line 215 "parse-gram.y"
+#line 215 "../../src/parse-gram.y"
     { spec_file_prefix = (yyvsp[0].chars); }
     break;
 
   case 15:
     { spec_file_prefix = (yyvsp[0].chars); }
     break;
 
   case 15:
-#line 217 "parse-gram.y"
+#line 217 "../../src/parse-gram.y"
     {
     nondeterministic_parser = true;
     glr_parser = true;
     {
     nondeterministic_parser = true;
     glr_parser = true;
@@ -1713,86 +1712,86 @@ yyreduce:
     break;
 
   case 16:
     break;
 
   case 16:
-#line 222 "parse-gram.y"
+#line 222 "../../src/parse-gram.y"
     {
     muscle_code_grow ("initial_action", (yyvsp[0].chars), (yylsp[0]));
   }
     break;
 
   case 17:
     {
     muscle_code_grow ("initial_action", (yyvsp[0].chars), (yylsp[0]));
   }
     break;
 
   case 17:
-#line 225 "parse-gram.y"
+#line 225 "../../src/parse-gram.y"
     { add_param ("lex_param", (yyvsp[0].chars), (yylsp[0])); }
     break;
 
   case 18:
     { add_param ("lex_param", (yyvsp[0].chars), (yylsp[0])); }
     break;
 
   case 18:
-#line 226 "parse-gram.y"
+#line 226 "../../src/parse-gram.y"
     { locations_flag = true; }
     break;
 
   case 19:
     { locations_flag = true; }
     break;
 
   case 19:
-#line 227 "parse-gram.y"
+#line 227 "../../src/parse-gram.y"
     { spec_name_prefix = (yyvsp[0].chars); }
     break;
 
   case 20:
     { spec_name_prefix = (yyvsp[0].chars); }
     break;
 
   case 20:
-#line 228 "parse-gram.y"
+#line 228 "../../src/parse-gram.y"
     { no_lines_flag = true; }
     break;
 
   case 21:
     { no_lines_flag = true; }
     break;
 
   case 21:
-#line 229 "parse-gram.y"
+#line 229 "../../src/parse-gram.y"
     { nondeterministic_parser = true; }
     break;
 
   case 22:
     { nondeterministic_parser = true; }
     break;
 
   case 22:
-#line 230 "parse-gram.y"
+#line 230 "../../src/parse-gram.y"
     { spec_outfile = (yyvsp[0].chars); }
     break;
 
   case 23:
     { spec_outfile = (yyvsp[0].chars); }
     break;
 
   case 23:
-#line 231 "parse-gram.y"
+#line 231 "../../src/parse-gram.y"
     { add_param ("parse_param", (yyvsp[0].chars), (yylsp[0])); }
     break;
 
   case 24:
     { add_param ("parse_param", (yyvsp[0].chars), (yylsp[0])); }
     break;
 
   case 24:
-#line 232 "parse-gram.y"
+#line 232 "../../src/parse-gram.y"
     { pure_parser = true; }
     break;
 
   case 25:
     { pure_parser = true; }
     break;
 
   case 25:
-#line 233 "parse-gram.y"
+#line 233 "../../src/parse-gram.y"
     { version_check (&(yylsp[0]), (yyvsp[0].chars)); }
     break;
 
   case 26:
     { version_check (&(yylsp[0]), (yyvsp[0].chars)); }
     break;
 
   case 26:
-#line 234 "parse-gram.y"
+#line 234 "../../src/parse-gram.y"
     { skeleton = (yyvsp[0].chars); }
     break;
 
   case 27:
     { skeleton = (yyvsp[0].chars); }
     break;
 
   case 27:
-#line 235 "parse-gram.y"
+#line 235 "../../src/parse-gram.y"
     { token_table_flag = true; }
     break;
 
   case 28:
     { token_table_flag = true; }
     break;
 
   case 28:
-#line 236 "parse-gram.y"
+#line 236 "../../src/parse-gram.y"
     { report_flag = report_states; }
     break;
 
   case 29:
     { report_flag = report_states; }
     break;
 
   case 29:
-#line 237 "parse-gram.y"
+#line 237 "../../src/parse-gram.y"
     { yacc_flag = true; }
     break;
 
   case 33:
     { yacc_flag = true; }
     break;
 
   case 33:
-#line 245 "parse-gram.y"
+#line 245 "../../src/parse-gram.y"
     {
       grammar_start_symbol_set ((yyvsp[0].symbol), (yylsp[0]));
     }
     break;
 
   case 34:
     {
       grammar_start_symbol_set ((yyvsp[0].symbol), (yylsp[0]));
     }
     break;
 
   case 34:
-#line 249 "parse-gram.y"
+#line 249 "../../src/parse-gram.y"
     {
       typed = true;
       MUSCLE_INSERT_INT ("stype_line", (yylsp[0]).start.line);
     {
       typed = true;
       MUSCLE_INSERT_INT ("stype_line", (yylsp[0]).start.line);
@@ -1801,7 +1800,7 @@ yyreduce:
     break;
 
   case 35:
     break;
 
   case 35:
-#line 255 "parse-gram.y"
+#line 255 "../../src/parse-gram.y"
     {
       symbol_list *list;
       for (list = (yyvsp[0].list); list; list = list->next)
     {
       symbol_list *list;
       for (list = (yyvsp[0].list); list; list = list->next)
@@ -1811,7 +1810,7 @@ yyreduce:
     break;
 
   case 36:
     break;
 
   case 36:
-#line 262 "parse-gram.y"
+#line 262 "../../src/parse-gram.y"
     {
       symbol_list *list;
       for (list = (yyvsp[0].list); list; list = list->next)
     {
       symbol_list *list;
       for (list = (yyvsp[0].list); list; list = list->next)
@@ -1821,26 +1820,26 @@ yyreduce:
     break;
 
   case 37:
     break;
 
   case 37:
-#line 269 "parse-gram.y"
+#line 269 "../../src/parse-gram.y"
     {
       default_prec = true;
     }
     break;
 
   case 38:
     {
       default_prec = true;
     }
     break;
 
   case 38:
-#line 273 "parse-gram.y"
+#line 273 "../../src/parse-gram.y"
     {
       default_prec = false;
     }
     break;
 
   case 39:
     {
       default_prec = false;
     }
     break;
 
   case 39:
-#line 279 "parse-gram.y"
+#line 279 "../../src/parse-gram.y"
     { current_class = nterm_sym; }
     break;
 
   case 40:
     { current_class = nterm_sym; }
     break;
 
   case 40:
-#line 280 "parse-gram.y"
+#line 280 "../../src/parse-gram.y"
     {
       current_class = unknown_sym;
       current_type = NULL;
     {
       current_class = unknown_sym;
       current_type = NULL;
@@ -1848,12 +1847,12 @@ yyreduce:
     break;
 
   case 41:
     break;
 
   case 41:
-#line 284 "parse-gram.y"
+#line 284 "../../src/parse-gram.y"
     { current_class = token_sym; }
     break;
 
   case 42:
     { current_class = token_sym; }
     break;
 
   case 42:
-#line 285 "parse-gram.y"
+#line 285 "../../src/parse-gram.y"
     {
       current_class = unknown_sym;
       current_type = NULL;
     {
       current_class = unknown_sym;
       current_type = NULL;
@@ -1861,7 +1860,7 @@ yyreduce:
     break;
 
   case 43:
     break;
 
   case 43:
-#line 290 "parse-gram.y"
+#line 290 "../../src/parse-gram.y"
     {
       symbol_list *list;
       for (list = (yyvsp[0].list); list; list = list->next)
     {
       symbol_list *list;
       for (list = (yyvsp[0].list); list; list = list->next)
@@ -1871,7 +1870,7 @@ yyreduce:
     break;
 
   case 44:
     break;
 
   case 44:
-#line 300 "parse-gram.y"
+#line 300 "../../src/parse-gram.y"
     {
       symbol_list *list;
       ++current_prec;
     {
       symbol_list *list;
       ++current_prec;
@@ -1886,49 +1885,49 @@ yyreduce:
     break;
 
   case 45:
     break;
 
   case 45:
-#line 314 "parse-gram.y"
+#line 314 "../../src/parse-gram.y"
     { (yyval.assoc) = left_assoc; }
     break;
 
   case 46:
     { (yyval.assoc) = left_assoc; }
     break;
 
   case 46:
-#line 315 "parse-gram.y"
+#line 315 "../../src/parse-gram.y"
     { (yyval.assoc) = right_assoc; }
     break;
 
   case 47:
     { (yyval.assoc) = right_assoc; }
     break;
 
   case 47:
-#line 316 "parse-gram.y"
+#line 316 "../../src/parse-gram.y"
     { (yyval.assoc) = non_assoc; }
     break;
 
   case 48:
     { (yyval.assoc) = non_assoc; }
     break;
 
   case 48:
-#line 320 "parse-gram.y"
+#line 320 "../../src/parse-gram.y"
     { current_type = NULL; }
     break;
 
   case 49:
     { current_type = NULL; }
     break;
 
   case 49:
-#line 321 "parse-gram.y"
+#line 321 "../../src/parse-gram.y"
     { current_type = (yyvsp[0].uniqstr); }
     break;
 
   case 50:
     { current_type = (yyvsp[0].uniqstr); }
     break;
 
   case 50:
-#line 327 "parse-gram.y"
+#line 327 "../../src/parse-gram.y"
     { (yyval.list) = symbol_list_new ((yyvsp[0].symbol), (yylsp[0])); }
     break;
 
   case 51:
     { (yyval.list) = symbol_list_new ((yyvsp[0].symbol), (yylsp[0])); }
     break;
 
   case 51:
-#line 328 "parse-gram.y"
+#line 328 "../../src/parse-gram.y"
     { (yyval.list) = symbol_list_prepend ((yyvsp[-1].list), (yyvsp[0].symbol), (yylsp[0])); }
     break;
 
   case 52:
     { (yyval.list) = symbol_list_prepend ((yyvsp[-1].list), (yyvsp[0].symbol), (yylsp[0])); }
     break;
 
   case 52:
-#line 334 "parse-gram.y"
+#line 334 "../../src/parse-gram.y"
     {
        current_type = (yyvsp[0].uniqstr);
      }
     break;
 
   case 53:
     {
        current_type = (yyvsp[0].uniqstr);
      }
     break;
 
   case 53:
-#line 338 "parse-gram.y"
+#line 338 "../../src/parse-gram.y"
     {
        symbol_class_set ((yyvsp[0].symbol), current_class, (yylsp[0]));
        symbol_type_set ((yyvsp[0].symbol), current_type, (yylsp[0]));
     {
        symbol_class_set ((yyvsp[0].symbol), current_class, (yylsp[0]));
        symbol_type_set ((yyvsp[0].symbol), current_type, (yylsp[0]));
@@ -1936,7 +1935,7 @@ yyreduce:
     break;
 
   case 54:
     break;
 
   case 54:
-#line 343 "parse-gram.y"
+#line 343 "../../src/parse-gram.y"
     {
       symbol_class_set ((yyvsp[-1].symbol), current_class, (yylsp[-1]));
       symbol_type_set ((yyvsp[-1].symbol), current_type, (yylsp[-1]));
     {
       symbol_class_set ((yyvsp[-1].symbol), current_class, (yylsp[-1]));
       symbol_type_set ((yyvsp[-1].symbol), current_type, (yylsp[-1]));
@@ -1945,7 +1944,7 @@ yyreduce:
     break;
 
   case 55:
     break;
 
   case 55:
-#line 349 "parse-gram.y"
+#line 349 "../../src/parse-gram.y"
     {
       symbol_class_set ((yyvsp[-1].symbol), current_class, (yylsp[-1]));
       symbol_type_set ((yyvsp[-1].symbol), current_type, (yylsp[-1]));
     {
       symbol_class_set ((yyvsp[-1].symbol), current_class, (yylsp[-1]));
       symbol_type_set ((yyvsp[-1].symbol), current_type, (yylsp[-1]));
@@ -1954,7 +1953,7 @@ yyreduce:
     break;
 
   case 56:
     break;
 
   case 56:
-#line 355 "parse-gram.y"
+#line 355 "../../src/parse-gram.y"
     {
       symbol_class_set ((yyvsp[-2].symbol), current_class, (yylsp[-2]));
       symbol_type_set ((yyvsp[-2].symbol), current_type, (yylsp[-2]));
     {
       symbol_class_set ((yyvsp[-2].symbol), current_class, (yylsp[-2]));
       symbol_type_set ((yyvsp[-2].symbol), current_type, (yylsp[-2]));
@@ -1964,7 +1963,7 @@ yyreduce:
     break;
 
   case 62:
     break;
 
   case 62:
-#line 384 "parse-gram.y"
+#line 384 "../../src/parse-gram.y"
     {
       if (yacc_flag)
        complain_at ((yyloc), _("POSIX forbids declarations in the grammar"));
     {
       if (yacc_flag)
        complain_at ((yyloc), _("POSIX forbids declarations in the grammar"));
@@ -1972,74 +1971,74 @@ yyreduce:
     break;
 
   case 63:
     break;
 
   case 63:
-#line 389 "parse-gram.y"
+#line 389 "../../src/parse-gram.y"
     {
       yyerrok;
     }
     break;
 
   case 64:
     {
       yyerrok;
     }
     break;
 
   case 64:
-#line 395 "parse-gram.y"
+#line 395 "../../src/parse-gram.y"
     { current_lhs = (yyvsp[0].symbol); current_lhs_location = (yylsp[0]); }
     break;
 
   case 66:
     { current_lhs = (yyvsp[0].symbol); current_lhs_location = (yylsp[0]); }
     break;
 
   case 66:
-#line 399 "parse-gram.y"
+#line 399 "../../src/parse-gram.y"
     { grammar_rule_end ((yylsp[0])); }
     break;
 
   case 67:
     { grammar_rule_end ((yylsp[0])); }
     break;
 
   case 67:
-#line 400 "parse-gram.y"
+#line 400 "../../src/parse-gram.y"
     { grammar_rule_end ((yylsp[0])); }
     break;
 
   case 69:
     { grammar_rule_end ((yylsp[0])); }
     break;
 
   case 69:
-#line 406 "parse-gram.y"
+#line 406 "../../src/parse-gram.y"
     { grammar_rule_begin (current_lhs, current_lhs_location); }
     break;
 
   case 70:
     { grammar_rule_begin (current_lhs, current_lhs_location); }
     break;
 
   case 70:
-#line 408 "parse-gram.y"
+#line 408 "../../src/parse-gram.y"
     { grammar_current_rule_symbol_append ((yyvsp[0].symbol), (yylsp[0])); }
     break;
 
   case 71:
     { grammar_current_rule_symbol_append ((yyvsp[0].symbol), (yylsp[0])); }
     break;
 
   case 71:
-#line 410 "parse-gram.y"
+#line 410 "../../src/parse-gram.y"
     { grammar_current_rule_action_append ((yyvsp[0].chars), (yylsp[0])); }
     break;
 
   case 72:
     { grammar_current_rule_action_append ((yyvsp[0].chars), (yylsp[0])); }
     break;
 
   case 72:
-#line 412 "parse-gram.y"
+#line 412 "../../src/parse-gram.y"
     { grammar_current_rule_prec_set ((yyvsp[0].symbol), (yylsp[0])); }
     break;
 
   case 73:
     { grammar_current_rule_prec_set ((yyvsp[0].symbol), (yylsp[0])); }
     break;
 
   case 73:
-#line 414 "parse-gram.y"
+#line 414 "../../src/parse-gram.y"
     { grammar_current_rule_dprec_set ((yyvsp[0].integer), (yylsp[0])); }
     break;
 
   case 74:
     { grammar_current_rule_dprec_set ((yyvsp[0].integer), (yylsp[0])); }
     break;
 
   case 74:
-#line 416 "parse-gram.y"
+#line 416 "../../src/parse-gram.y"
     { grammar_current_rule_merge_set ((yyvsp[0].uniqstr), (yylsp[0])); }
     break;
 
   case 75:
     { grammar_current_rule_merge_set ((yyvsp[0].uniqstr), (yylsp[0])); }
     break;
 
   case 75:
-#line 420 "parse-gram.y"
+#line 420 "../../src/parse-gram.y"
     { (yyval.symbol) = (yyvsp[0].symbol); }
     break;
 
   case 76:
     { (yyval.symbol) = (yyvsp[0].symbol); }
     break;
 
   case 76:
-#line 421 "parse-gram.y"
+#line 421 "../../src/parse-gram.y"
     { (yyval.symbol) = (yyvsp[0].symbol); }
     break;
 
   case 77:
     { (yyval.symbol) = (yyvsp[0].symbol); }
     break;
 
   case 77:
-#line 426 "parse-gram.y"
+#line 426 "../../src/parse-gram.y"
     { (yyval.chars) = (yyvsp[0].chars); }
     break;
 
   case 78:
     { (yyval.chars) = (yyvsp[0].chars); }
     break;
 
   case 78:
-#line 432 "parse-gram.y"
+#line 432 "../../src/parse-gram.y"
     {
       (yyval.symbol) = symbol_get (quotearg_style (c_quoting_style, (yyvsp[0].chars)), (yylsp[0]));
       symbol_class_set ((yyval.symbol), token_sym, (yylsp[0]));
     {
       (yyval.symbol) = symbol_get (quotearg_style (c_quoting_style, (yyvsp[0].chars)), (yylsp[0]));
       symbol_class_set ((yyval.symbol), token_sym, (yylsp[0]));
@@ -2047,12 +2046,12 @@ yyreduce:
     break;
 
   case 79:
     break;
 
   case 79:
-#line 441 "parse-gram.y"
+#line 441 "../../src/parse-gram.y"
     { (yyval.chars) = (yyvsp[0].chars); }
     break;
 
   case 81:
     { (yyval.chars) = (yyvsp[0].chars); }
     break;
 
   case 81:
-#line 448 "parse-gram.y"
+#line 448 "../../src/parse-gram.y"
     {
       muscle_code_grow ("epilogue", (yyvsp[0].chars), (yylsp[0]));
       scanner_last_string_free ();
     {
       muscle_code_grow ("epilogue", (yyvsp[0].chars), (yylsp[0]));
       scanner_last_string_free ();
@@ -2064,7 +2063,7 @@ yyreduce:
     }
 
 /* Line 1262 of yacc.c.  */
     }
 
 /* Line 1262 of yacc.c.  */
-#line 2068 "parse-gram.c"
+#line 2067 "../../src/parse-gram.c"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -2150,7 +2149,8 @@ yyerrlab:
         }
       else
        {
         }
       else
        {
-         yydestruct ("Error: discarding", yytoken, &yylval, &yylloc);
+         yydestruct ("Error: discarding",
+                      yytoken, &yylval, &yylloc);
          yychar = YYEMPTY;
        }
     }
          yychar = YYEMPTY;
        }
     }
@@ -2204,7 +2204,8 @@ yyerrlab1:
        YYABORT;
 
       yyerror_range[0] = *yylsp;
        YYABORT;
 
       yyerror_range[0] = *yylsp;
-      yydestruct ("Error: popping", yystos[yystate], yyvsp, yylsp);
+      yydestruct ("Error: popping",
+                  yystos[yystate], yyvsp, yylsp);
       YYPOPSTACK;
       yystate = *yyssp;
       YY_STACK_PRINT (yyss, yyssp);
       YYPOPSTACK;
       yystate = *yyssp;
       YY_STACK_PRINT (yyss, yyssp);
@@ -2274,7 +2275,7 @@ yyreturn:
 }
 
 
 }
 
 
-#line 454 "parse-gram.y"
+#line 454 "../../src/parse-gram.y"
 
 
 
 
 
 
index e60f5df0172966b7b560b586ec60d7eb295060e9..97e038c60996972403b6dac41f648b0dd079cc4b 100644 (file)
 
 
 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
 
 
 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 82 "parse-gram.y"
+#line 82 "../../src/parse-gram.y"
 typedef union YYSTYPE {
   symbol *symbol;
   symbol_list *list;
 typedef union YYSTYPE {
   symbol *symbol;
   symbol_list *list;
@@ -146,8 +146,8 @@ typedef union YYSTYPE {
   assoc assoc;
   uniqstr uniqstr;
 } YYSTYPE;
   assoc assoc;
   uniqstr uniqstr;
 } YYSTYPE;
-/* Line 1518 of yacc.c.  */
-#line 151 "parse-gram.h"
+/* Line 1520 of yacc.c.  */
+#line 151 "../../src/parse-gram.h"
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
 # define YYSTYPE_IS_TRIVIAL 1