[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
b4_pure_if
From: |
Akim Demaille |
Subject: |
b4_pure_if |
Date: |
19 Jun 2002 12:00:30 +0200 |
User-agent: |
Gnus/5.0808 (Gnus v5.8.8) XEmacs/21.4 (Honest Recruiter) |
Index: ChangeLog
from Akim Demaille <address@hidden>
* data/bison.simple (b4_pure_if): New.
Use it instead of #ifdef YYPURE.
Index: data/bison.simple
===================================================================
RCS file: /cvsroot/bison/bison/data/bison.simple,v
retrieving revision 1.39
diff -u -u -r1.39 bison.simple
--- data/bison.simple 19 Jun 2002 09:07:36 -0000 1.39
+++ data/bison.simple 19 Jun 2002 09:59:35 -0000
@@ -63,6 +63,19 @@
+## -------------- ##
+## %pure-parser. ##
+## -------------- ##
+
+# b4_pure_if(IF-TRUE, IF-FALSE)
+# -----------------------------
+# Expand IF-TRUE, if %pure-parser, IF-FALSE otherwise.
+m4_define([b4_pure_if],
+[m4_if(b4_pure, [1],
+ [$1],
+ [$2])])
+
+
## ------------------- ##
## Output file names. ##
## ------------------- ##
@@ -522,15 +535,13 @@
/* YYLEX -- calling `yylex' with the right arguments. */
-#if YYPURE
-# ifdef YYLEX_PARAM
-# define YYLEX yylex (&yylval, b4_location_if([&yylloc,
])YYLEX_PARAM)
-# else
-# define YYLEX yylex (&yylval, b4_location_if([&yylloc, ]))
-# endif
-#else /* !YYPURE */
-# define YYLEX yylex ()
-#endif /* !YYPURE */
+b4_pure_if(
+[#ifdef YYLEX_PARAM
+# define YYLEX yylex (&yylval, b4_location_if([&yylloc, ])YYLEX_PARAM)
+#else
+# define YYLEX yylex (&yylval, b4_location_if([&yylloc, ]))
+#endif],
+[#define YYLEX yylex ()])
/* Enable debugging if requested. */
#if YYDEBUG
@@ -658,37 +669,33 @@
#endif
static void yydestructor (int symbol_type, YYSTYPE symbol_value);
-/* YY_DECL_VARIABLES -- depending whether we use a pure parser,
- variables are global, or local to YYPARSE. */
-
-#define YY_DECL_VARIABLES \
-/* The lookahead symbol. */ \
-int yychar; \
- \
-/* The semantic value of the lookahead symbol. */ \
-YYSTYPE yylval; \
- \
-/* Number of parse errors so far. */ \
-int yynerrs;b4_location_if([ \
-/* Location data for the lookahead symbol. */ \
+m4_divert_push([KILL])# ======================== M4 code.
+# b4_declare_parser_variables
+# ---------------------------
+# Declare the variables that are global, or local to YYPARSE if
+# pure-parser
+m4_define([b4_declare_parser_variables],
+[/* The lookahead symbol. */
+int yychar;
+
+/* The semantic value of the lookahead symbol. */
+YYSTYPE yylval;
+
+/* Number of parse errors so far. */
+int yynerrs;b4_location_if([
+/* Location data for the lookahead symbol. */
YYLTYPE yylloc;])
+])
+m4_divert_pop([KILL])dnl# ====================== End of M4 code.
-
-/* If nonreentrant, generate the variables here. */
-
-#if !YYPURE
-YY_DECL_VARIABLES
-#endif /* !YYPURE */
+b4_pure_if([],
+ [b4_declare_parser_variables])
int
yyparse (YYPARSE_PARAM_ARG)
YYPARSE_PARAM_DECL
{[
- /* If reentrant, generate the variables here. */
-#if YYPURE
- YY_DECL_VARIABLES
-#endif /* !YYPURE */
-
+ ]b4_pure_if([b4_declare_parser_variables])[
register int yystate;
register int yyn;
int yyresult;
@@ -1284,7 +1291,7 @@
# define YYSTYPE yystype
#endif
-m4_if(b4_pure, [0],
+b4_pure_if([],
[extern YYSTYPE b4_prefix[]lval;])
b4_location_if(
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- b4_pure_if,
Akim Demaille <=