]> git.saurik.com Git - bison.git/blobdiff - src/bison.simple
* src/files.c, src/files.h (output_infix): New.
[bison.git] / src / bison.simple
index 593eadf34b44b1f8bc29470bf19ceb80200f218a..59ff145bce68de4617e45c9c23abddb70dfff4e8 100644 (file)
@@ -1,10 +1,11 @@
+%%{section} %%{output-prefix} %%{output-infix} %%".c"
 /* -*- C -*- */
 
 /* -*- C -*- */
 
-/* A Bison parser, made from %%filename
-   by GNU bison %%version.  */
+/* A Bison parser, made from %%{filename}
+   by GNU bison %%{version}.  */
 
 /* Skeleton output parser for bison,
 
 /* Skeleton output parser for bison,
-   Copyright 1984, 1989, 1990, 2000, 2001 Free Software Foundation, Inc.
+   Copyright 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 #define YYBISON        1
 
 /* Pure parsers.  */
 #define YYBISON        1
 
 /* Pure parsers.  */
-#define YYPURE %%pure
+#define YYPURE %%{pure}
 
 /* Using locations.  */
 
 /* Using locations.  */
-#define YYLSP_NEEDED %%locations-flag
+#define YYLSP_NEEDED %%{locations-flag}
+
+/* If NAME_PREFIX is specified substitute the variables and functions
+   names.  */
+#define yyparse %%{prefix}parse
+#define yylex   %%{prefix}lex
+#define yyerror %%{prefix}error
+#define yylval  %%{prefix}lval
+#define yychar  %%{prefix}char
+#define yydebug %%{prefix}debug
+#define yynerrs %%{prefix}nerrs
+#if YYLSP_NEEDED
+# define yylloc %%{prefix}lloc
+#endif
+
+
+/* Copy the user declarations.  */
+%%{prologue}
 
 /* Enabling traces.  */
 #ifndef YYDEBUG
 
 /* Enabling traces.  */
 #ifndef YYDEBUG
-# define YYDEBUG %%debug
+# define YYDEBUG %%{debug}
 #endif
 
 /* Enabling verbose error messages.  */
 #endif
 
 /* Enabling verbose error messages.  */
 # undef YYERROR_VERBOSE
 # define YYERROR_VERBOSE 1
 #else
 # undef YYERROR_VERBOSE
 # define YYERROR_VERBOSE 1
 #else
-# define YYERROR_VERBOSE %%error-verbose
+# define YYERROR_VERBOSE %%{error-verbose}
 #endif
 
 #endif
 
-/* If name_prefix is specify substitute the variables and functions
-   names.  */
-#define yyparse %%prefix##parse
-#define yylex   %%prefix##lex
-#define yyerror %%prefix##error
-#define yylval  %%prefix##lval
-#define yychar  %%prefix##char
-#define yydebug %%prefix##debug
-#define yynerrs %%prefix##nerrs
-
 #ifndef YYSTYPE
 #ifndef YYSTYPE
-typedef %%stype yystype;
+typedef %%{stype} yystype;
 # define YYSTYPE yystype
 #endif
 
 # define YYSTYPE yystype
 #endif
 
@@ -76,16 +84,11 @@ typedef struct yyltype
   int last_line;
   int last_column;
 } yyltype;
   int last_line;
   int last_column;
 } yyltype;
-# define YYLTYPE %%ltype
+# define YYLTYPE %%{ltype}
 #endif
 
 #endif
 
-/* Copy the user declarations.  */
-%%prologue
-
-/* Line %%skeleton-line of %%skeleton.  */
-#line %%line "%%parser-file-name"
-
-#include <stdio.h>
+/* Line %%{skeleton-line} of %%{skeleton}.  */
+#line %%{line} "%%{parser-file-name}"
 
 /* All symbols defined below should begin with yy or YY, to avoid
    infringing on user name space.  This should be done even for local
 
 /* All symbols defined below should begin with yy or YY, to avoid
    infringing on user name space.  This should be done even for local
@@ -94,32 +97,28 @@ typedef struct yyltype
    define necessary library symbols; they are noted "INFRINGES ON
    USER NAME SPACE" below.  */
 
    define necessary library symbols; they are noted "INFRINGES ON
    USER NAME SPACE" below.  */
 
-#if ! defined (yyoverflow) || YYERROR_VERBOSE
+#ifdef __cplusplus
+# define YYSTD(x) std::x
+#else
+# define YYSTD(x) x
+#endif
+
+#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
 
 /* The parser invokes alloca or malloc; define the necessary symbols.  */
 
 # if YYSTACK_USE_ALLOCA
 #  define YYSTACK_ALLOC alloca
 
 /* The parser invokes alloca or malloc; define the necessary symbols.  */
 
 # if YYSTACK_USE_ALLOCA
 #  define YYSTACK_ALLOC alloca
-#  define YYSIZE_T size_t
+#  define YYSIZE_T YYSTD (size_t)
 # else
 #  ifndef YYSTACK_USE_ALLOCA
 #   if defined (alloca) || defined (_ALLOCA_H)
 #    define YYSTACK_ALLOC alloca
 # else
 #  ifndef YYSTACK_USE_ALLOCA
 #   if defined (alloca) || defined (_ALLOCA_H)
 #    define YYSTACK_ALLOC alloca
-#    define YYSIZE_T size_t
+#    define YYSIZE_T YYSTD (size_t)
 #   else
 #   else
-#    if defined (__GNUC__) || defined (_AIX) || defined (__hpux)
+#    ifdef __GNUC__
 #     define YYSTACK_ALLOC __builtin_alloca
 #    endif
 #     define YYSTACK_ALLOC __builtin_alloca
 #    endif
-#    ifndef __GNUC__
-#     ifdef _AIX
- #     pragma alloca
-#     endif
-#     if defined (__sgi) || defined (__sparc__) || defined (__sparc) || defined (__sun)
-#      include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-#      define YYSTACK_ALLOC alloca
-#      define YYSIZE_T size_t
-#     endif
-#    endif
 #   endif
 #  endif
 # endif
 #   endif
 #  endif
 # endif
@@ -131,16 +130,14 @@ typedef struct yyltype
 #  ifdef __cplusplus
 #   include <cstdlib> /* INFRINGES ON USER NAME SPACE */
 #   define YYSIZE_T std::size_t
 #  ifdef __cplusplus
 #   include <cstdlib> /* INFRINGES ON USER NAME SPACE */
 #   define YYSIZE_T std::size_t
-#   define YYSTACK_ALLOC std::malloc
-#   define YYSTACK_FREE std::free
 #  else
 #   ifdef __STDC__
 #    include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
 #    define YYSIZE_T size_t
 #   endif
 #  else
 #   ifdef __STDC__
 #    include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
 #    define YYSIZE_T size_t
 #   endif
-#   define YYSTACK_ALLOC malloc
-#   define YYSTACK_FREE free
 #  endif
 #  endif
+#  define YYSTACK_ALLOC YYSTD (malloc)
+#  define YYSTACK_FREE YYSTD (free)
 # endif
 
 /* A type that is properly aligned for any stack member.  */
 # endif
 
 /* A type that is properly aligned for any stack member.  */
@@ -188,30 +185,30 @@ union yyalloc
 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
 
 /* Tokens.  */
 #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
 
 /* Tokens.  */
-%%tokendef
+%%{tokendef}
 
 /* YYFINAL -- State number of the termination state. */
 
 /* YYFINAL -- State number of the termination state. */
-#define YYFINAL  %%final
-#define YYFLAG  %%flag
-#define YYLAST   %%last
+#define YYFINAL  %%{final}
+#define YYFLAG  %%{flag}
+#define YYLAST   %%{last}
 
 /* YYNTOKENS -- Number of terminals. */
 
 /* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS  %%ntokens
+#define YYNTOKENS  %%{ntokens}
 /* YYNNTS -- Number of nonterminals. */
 /* YYNNTS -- Number of nonterminals. */
-#define YYNNTS  %%nnts
+#define YYNNTS  %%{nnts}
 /* YYNRULES -- Number of rules. */
 /* YYNRULES -- Number of rules. */
-#define YYNRULES  %%nrules
+#define YYNRULES  %%{nrules}
 /* YYNRULES -- Number of states. */
 /* YYNRULES -- Number of states. */
-#define YYNSTATES  %%nstates
-#define YYMAXUTOK  %%maxtok
+#define YYNSTATES  %%{nstates}
+#define YYMAXUTOK  %%{maxtok}
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
-#define YYTRANSLATE(x) ((unsigned)(x) <= %%maxtok ? yytranslate[x] : %%nsym)
+#define YYTRANSLATE(x) ((unsigned)(x) <= %%{maxtok} ? yytranslate[x] : %%{nsym})
 
 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
 static const char yytranslate[] =
 {
 
 /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
 static const char yytranslate[] =
 {
-  %%translate
+  %%{translate}
 };
 
 #if YYDEBUG
 };
 
 #if YYDEBUG
@@ -219,19 +216,19 @@ static const char yytranslate[] =
    YYRHS.  */
 static const short yyprhs[] =
 {
    YYRHS.  */
 static const short yyprhs[] =
 {
-  %%prhs
+  %%{prhs}
 };
 
 };
 
-/* YYRHS -- A `0'-separated list of the rules' RHS. */
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
 static const short yyrhs[] =
 {
 static const short yyrhs[] =
 {
-  %%rhs
+  %%{rhs}
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const short yyrline[] =
 {
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const short yyrline[] =
 {
-  %%rline
+  %%{rline}
 };
 #endif
 
 };
 #endif
 
@@ -240,26 +237,26 @@ static const short yyrline[] =
    First, the terminals, then, starting at YYNTOKENS, nonterminals. */
 static const char *const yytname[] =
 {
    First, the terminals, then, starting at YYNTOKENS, nonterminals. */
 static const char *const yytname[] =
 {
-  %%tname
+  %%{tname}
 };
 #endif
 
 /* YYTOKNUM[YYN] -- Index in YYTNAME corresponding to YYLEX.  */
 static const short yytoknum[] =
 {
 };
 #endif
 
 /* YYTOKNUM[YYN] -- Index in YYTNAME corresponding to YYLEX.  */
 static const short yytoknum[] =
 {
-  %%toknum
+  %%{toknum}
 };
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const short yyr1[] =
 {
 };
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const short yyr1[] =
 {
-  %%r1
+  %%{r1}
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
 static const short yyr2[] =
 {
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
 static const short yyr2[] =
 {
-  %%r2
+  %%{r2}
 };
 
 /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
 };
 
 /* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE
@@ -267,26 +264,26 @@ static const short yyr2[] =
    error.  */
 static const short yydefact[] =
 {
    error.  */
 static const short yydefact[] =
 {
-  %%defact
+  %%{defact}
 };
 
 /* YYPGOTO[NTERM-NUM]. */
 static const short yydefgoto[] =
 {
 };
 
 /* YYPGOTO[NTERM-NUM]. */
 static const short yydefgoto[] =
 {
-  %%defgoto
+  %%{defgoto}
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
 static const short yypact[] =
 {
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
 static const short yypact[] =
 {
-  %%pact
+  %%{pact}
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const short yypgoto[] =
 {
 };
 
 /* YYPGOTO[NTERM-NUM].  */
 static const short yypgoto[] =
 {
-  %%pgoto
+  %%{pgoto}
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -294,12 +291,12 @@ static const short yypgoto[] =
    number is the opposite.  If zero, do what YYDEFACT says.  */
 static const short yytable[] =
 {
    number is the opposite.  If zero, do what YYDEFACT says.  */
 static const short yytable[] =
 {
-  %%table
+  %%{table}
 };
 
 static const short yycheck[] =
 {
 };
 
 static const short yycheck[] =
 {
-  %%check
+  %%{check}
 };
 
 
 };
 
 
@@ -399,14 +396,11 @@ while (0)
 
 # ifndef YYFPRINTF
 #  ifdef __cplusplus
 
 # ifndef YYFPRINTF
 #  ifdef __cplusplus
-#   include <cstdio.h> /* INFRINGES ON USER NAME SPACE */
-#   define YYFPRINTF std::fprintf
-#   define YYSTDERR std::stderr
+#   include <cstdio>  /* INFRINGES ON USER NAME SPACE */
 #  else
 #   include <stdio.h> /* INFRINGES ON USER NAME SPACE */
 #  else
 #   include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-#   define YYFPRINTF fprintf
-#   define YYSTDERR stderr
 #  endif
 #  endif
+#  define YYFPRINTF YYSTD (fprintf)
 # endif
 
 # define YYDPRINTF(Args)                       \
 # endif
 
 # define YYDPRINTF(Args)                       \
@@ -425,7 +419,7 @@ int yydebug;
 
 /* YYINITDEPTH -- initial size of the parser's stacks.  */
 #ifndef        YYINITDEPTH
 
 /* YYINITDEPTH -- initial size of the parser's stacks.  */
 #ifndef        YYINITDEPTH
-# define YYINITDEPTH %%initdepth
+# define YYINITDEPTH %%{initdepth}
 #endif
 
 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
 #endif
 
 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
@@ -440,7 +434,7 @@ int yydebug;
 #endif
 
 #ifndef YYMAXDEPTH
 #endif
 
 #ifndef YYMAXDEPTH
-# define YYMAXDEPTH %%maxdepth
+# define YYMAXDEPTH %%{maxdepth}
 #endif
 
 \f
 #endif
 
 \f
@@ -646,7 +640,7 @@ yyparse (YYPARSE_PARAM_ARG)
      rule.  */
   int yylen;
 
      rule.  */
   int yylen;
 
-  YYDPRINTF ((YYSTDERR, "Starting parse\n"));
+  YYDPRINTF ((stderr, "Starting parse\n"));
 
   yystate = 0;
   yyerrstatus = 0;
 
   yystate = 0;
   yyerrstatus = 0;
@@ -742,14 +736,14 @@ yyparse (YYPARSE_PARAM_ARG)
       yylsp = yyls + yysize - 1;
 #endif
 
       yylsp = yyls + yysize - 1;
 #endif
 
-      YYDPRINTF ((YYSTDERR, "Stack size increased to %lu\n",
+      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
                  (unsigned long int) yystacksize));
 
       if (yyssp >= yyss + yystacksize - 1)
        YYABORT;
     }
 
                  (unsigned long int) yystacksize));
 
       if (yyssp >= yyss + yystacksize - 1)
        YYABORT;
     }
 
-  YYDPRINTF ((YYSTDERR, "Entering state %d\n", yystate));
+  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 
   goto yybackup;
 
 
   goto yybackup;
 
@@ -775,7 +769,7 @@ yybackup:
 
   if (yychar == YYEMPTY)
     {
 
   if (yychar == YYEMPTY)
     {
-      YYDPRINTF ((YYSTDERR, "Reading a token: "));
+      YYDPRINTF ((stderr, "Reading a token: "));
       yychar = YYLEX;
     }
 
       yychar = YYLEX;
     }
 
@@ -786,7 +780,7 @@ yybackup:
       yychar1 = 0;
       yychar = YYEOF;          /* Don't call YYLEX any more.  */
 
       yychar1 = 0;
       yychar = YYEOF;          /* Don't call YYLEX any more.  */
 
-      YYDPRINTF ((YYSTDERR, "Now at end of input.\n"));
+      YYDPRINTF ((stderr, "Now at end of input.\n"));
     }
   else
     {
     }
   else
     {
@@ -797,14 +791,14 @@ yybackup:
        which are defined only if `YYDEBUG' is set.  */
       if (yydebug)
        {
        which are defined only if `YYDEBUG' is set.  */
       if (yydebug)
        {
-         YYFPRINTF (YYSTDERR, "Next token is %d (%s",
+         YYFPRINTF (stderr, "Next token is %d (%s",
                     yychar, yytname[yychar1]);
          /* Give the individual parser a way to print the precise
             meaning of a token, for further debugging info.  */
 # ifdef YYPRINT
                     yychar, yytname[yychar1]);
          /* Give the individual parser a way to print the precise
             meaning of a token, for further debugging info.  */
 # ifdef YYPRINT
-         YYPRINT (YYSTDERR, yychar, yylval);
+         YYPRINT (stderr, yychar, yylval);
 # endif
 # endif
-         YYFPRINTF (YYSTDERR, ")\n");
+         YYFPRINTF (stderr, ")\n");
        }
 #endif
     }
        }
 #endif
     }
@@ -836,7 +830,7 @@ yybackup:
     YYACCEPT;
 
   /* Shift the lookahead token.  */
     YYACCEPT;
 
   /* Shift the lookahead token.  */
-  YYDPRINTF ((YYSTDERR, "Shifting token %d (%s), ",
+  YYDPRINTF ((stderr, "Shifting token %d (%s), ",
              yychar, yytname[yychar1]));
 
   /* Discard the token being shifted unless it is eof.  */
              yychar, yytname[yychar1]));
 
   /* Discard the token being shifted unless it is eof.  */
@@ -898,22 +892,22 @@ yyreduce:
     {
       int yyi;
 
     {
       int yyi;
 
-      YYFPRINTF (YYSTDERR, "Reducing via rule %d (line %d), ",
-                yyn, yyrline[yyn]);
+      YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
+                yyn - 1, yyrline[yyn]);
 
       /* Print the symbols being reduced, and their result.  */
 
       /* Print the symbols being reduced, and their result.  */
-      for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
-       YYFPRINTF (YYSTDERR, "%s ", yytname[yyrhs[yyi]]);
-      YYFPRINTF (YYSTDERR, " -> %s\n", yytname[yyr1[yyn]]);
+      for (yyi = yyprhs[yyn]; yyrhs[yyi] >= 0; yyi++)
+       YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
+      YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
     }
 #endif
   switch (yyn)
     {
     }
 #endif
   switch (yyn)
     {
-%%actions
+      %%{actions}
     }
 
     }
 
-/* Line %%skeleton-line of %%skeleton.  */
-#line %%line "%%parser-file-name"
+/* Line %%{skeleton-line} of %%{skeleton}.  */
+#line %%{line} "%%{parser-file-name}"
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -925,10 +919,10 @@ yyreduce:
   if (yydebug)
     {
       short *yyssp1 = yyss - 1;
   if (yydebug)
     {
       short *yyssp1 = yyss - 1;
-      YYFPRINTF (YYSTDERR, "state stack now");
+      YYFPRINTF (stderr, "state stack now");
       while (yyssp1 != yyssp)
       while (yyssp1 != yyssp)
-       YYFPRINTF (YYSTDERR, " %d", *++yyssp1);
-      YYFPRINTF (YYSTDERR, "\n");
+       YYFPRINTF (stderr, " %d", *++yyssp1);
+      YYFPRINTF (stderr, "\n");
     }
 #endif
 
     }
 #endif
 
@@ -1024,7 +1018,7 @@ yyerrlab1:
       /* Return failure if at end of input.  */
       if (yychar == YYEOF)
        YYABORT;
       /* Return failure if at end of input.  */
       if (yychar == YYEOF)
        YYABORT;
-      YYDPRINTF ((YYSTDERR, "Discarding token %d (%s).\n",
+      YYDPRINTF ((stderr, "Discarding token %d (%s).\n",
                  yychar, yytname[yychar1]));
       yychar = YYEMPTY;
     }
                  yychar, yytname[yychar1]));
       yychar = YYEMPTY;
     }
@@ -1070,10 +1064,10 @@ yyerrpop:
   if (yydebug)
     {
       short *yyssp1 = yyss - 1;
   if (yydebug)
     {
       short *yyssp1 = yyss - 1;
-      YYFPRINTF (YYSTDERR, "Error: state stack now");
+      YYFPRINTF (stderr, "Error: state stack now");
       while (yyssp1 != yyssp)
       while (yyssp1 != yyssp)
-       YYFPRINTF (YYSTDERR, " %d", *++yyssp1);
-      YYFPRINTF (YYSTDERR, "\n");
+       YYFPRINTF (stderr, " %d", *++yyssp1);
+      YYFPRINTF (stderr, "\n");
     }
 #endif
 
     }
 #endif
 
@@ -1103,7 +1097,7 @@ yyerrhandle:
   if (yyn == YYFINAL)
     YYACCEPT;
 
   if (yyn == YYFINAL)
     YYACCEPT;
 
-  YYDPRINTF ((YYSTDERR, "Shifting error token, "));
+  YYDPRINTF ((stderr, "Shifting error token, "));
 
   *++yyvsp = yylval;
 #if YYLSP_NEEDED
 
   *++yyvsp = yylval;
 #if YYLSP_NEEDED
@@ -1144,4 +1138,4 @@ yyreturn:
   return yyresult;
 }
 
   return yyresult;
 }
 
-%%epilogue
+%%{epilogue}