[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Bison identifiers renamed to avoid namespace collisions
From: |
Paul Eggert |
Subject: |
Bison identifiers renamed to avoid namespace collisions |
Date: |
Wed, 27 Nov 2002 10:39:29 -0800 |
I installed the following patch to fix one of the problems Bruce Lilly
reported recently, among other similar problems that I noticed while
fixing his problem. This should appear in the next Bison test version.
2002-11-27 Paul Eggert <address@hidden>
Rename identifiers to avoid real and potential collisions.
* data/c.m4 (b4_yysymprint_generate): yyout -> yyoutput,
to avoid collision with lex macro described by Bruce Lilly in
<http://mail.gnu.org/pipermail/bug-bison/2002-November/001929.html>.
* tests/actions.at (_AT_CHECK_PRINTER_AND_DESTRUCTOR): Likewise.
* doc/bison.texinfo (Prologue, Tracing): yyprint -> print_token_value.
* src/parse-gram.y (print_token_value): Renamed from yyprint.
All uses changed.
(YYPARSE_PARAM, YYLEX_PARAM, yycontrol): Remove. All uses changed.
The name "yycontrol" violates the name space rules, and this stuff
wasn't being used anyway.
(input): Remove action; this stuff wasn't being used.
(gram_error): Rename local variable yylloc -> loc.
* src/reader.h (struct gram_control_s, gram_control_t): Remove.
(YY_DECL): Don't use "yy" at start of local variables.
All uses changed, e.g., yylloc -> loc.
* src/scan-gram.l (STEP): Renamed from YY_STEP. All uses changed.
(STRING_GROW): Renamed from YY_OBS_GROW. All uses changed.
(STRING_FINISH): Renamed from YY_OBS_FINISH. All uses changed.
(STRING_FREE): Renamed from YY_OBS_FREE. All uses changed.
* src/parse-gram.y (gram_error): loc is now const *.
* src/reader.h (gram_error): Likewise.
Index: data/c.m4
===================================================================
RCS file: /cvsroot/bison/bison/data/c.m4,v
retrieving revision 1.20
diff -p -u -r1.20 c.m4
--- data/c.m4 12 Nov 2002 09:44:41 -0000 1.20
+++ data/c.m4 27 Nov 2002 18:20:23 -0000
@@ -339,10 +339,10 @@ m4_popdef([b4_dollar_dollar])dnl
])
-# b4_yydestruct_generate(FUNTION-DECLARATOR)
-# ------------------------------------------
+# b4_yydestruct_generate(FUNCTION-DECLARATOR)
+# -------------------------------------------
# Generate the "yydestruct" function, which declaration is issued using
-# FUNTION-DECLARATOR, which may be "b4_c_ansi_function_def" for ISO C
+# FUNCTION-DECLARATOR, which may be "b4_c_ansi_function_def" for ISO C
# or "b4_c_function_def" for K&R.
m4_define([b4_yydestruct_generate],
[[/*-----------------------------------------------.
@@ -369,19 +369,19 @@ m4_define([b4_yydestruct_generate],
])
-# b4_yysymprint_generate(FUNTION-DECLARATOR)
-# ------------------------------------------
+# b4_yysymprint_generate(FUNCTION-DECLARATOR)
+# -------------------------------------------
# Generate the "yysymprint" function, which declaration is issued using
-# FUNTION-DECLARATOR, which may be "b4_c_ansi_function_def" for ISO C
+# FUNCTION-DECLARATOR, which may be "b4_c_ansi_function_def" for ISO C
# or "b4_c_function_def" for K&R.
m4_define([b4_yysymprint_generate],
-[[/*-----------------------------.
-| Print this symbol on YYOUT. |
-`-----------------------------*/
+[[/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
]$1([yysymprint],
[static void],
- [[FILE *yyout], [yyout]],
+ [[FILE *yyoutput], [yyoutput]],
[[int yytype], [yytype]],
[[YYSTYPE *yyvaluep], [yyvaluep]]b4_location_if([,
[[YYLTYPE *yylocationp], [yylocationp]]]))
@@ -393,13 +393,13 @@ b4_location_if([ (void) yylocationp;
if (yytype < YYNTOKENS)
{
- YYFPRINTF (yyout, "token %s (", yytname[[yytype]]);
+ YYFPRINTF (yyoutput, "token %s (", yytname[[yytype]]);
# ifdef YYPRINT
- YYPRINT (yyout, yytoknum[[yytype]], *yyvaluep);
+ YYPRINT (yyoutput, yytoknum[[yytype]], *yyvaluep);
# endif
}
else
- YYFPRINTF (yyout, "nterm %s (", yytname[[yytype]]);
+ YYFPRINTF (yyoutput, "nterm %s (", yytname[[yytype]]);
switch (yytype)
{
@@ -407,6 +407,6 @@ m4_map([b4_symbol_actions], m4_defn([b4_
default:
break;
}
- YYFPRINTF (yyout, ")");
+ YYFPRINTF (yyoutput, ")");
}
])
Index: doc/bison.texinfo
===================================================================
RCS file: /cvsroot/bison/bison/doc/bison.texinfo,v
retrieving revision 1.85
diff -p -u -r1.85 bison.texinfo
--- doc/bison.texinfo 18 Nov 2002 09:33:22 -0000 1.85
+++ doc/bison.texinfo 27 Nov 2002 18:20:26 -0000
@@ -2302,8 +2302,8 @@ can be done with two @var{Prologue} bloc
@}
address@hidden
-static void yyprint(FILE *, int, YYSTYPE);
-#define YYPRINT(F, N, L) yyprint(F, N, L)
+static void print_token_value (FILE *, int, YYSTYPE);
+#define YYPRINT(F, N, L) print_token_value (F, N, L)
address@hidden
@dots{}
@@ -5980,10 +5980,10 @@ Here is an example of @code{YYPRINT} sui
calculator (@pxref{Mfcalc Decl, ,Declarations for @code{mfcalc}}):
@smallexample
-#define YYPRINT(file, type, value) yyprint (file, type, value)
+#define YYPRINT(file, type, value) print_token_value (file, type, value)
static void
-yyprint (FILE *file, int type, YYSTYPE value)
+print_token_value (FILE *file, int type, YYSTYPE value)
@{
if (type == VAR)
fprintf (file, "%s", value.tptr->name);
Index: src/parse-gram.y
===================================================================
RCS file: /cvsroot/bison/bison/src/parse-gram.y,v
retrieving revision 1.30
diff -p -u -r1.30 parse-gram.y
--- src/parse-gram.y 15 Nov 2002 20:32:21 -0000 1.30
+++ src/parse-gram.y 27 Nov 2002 18:20:27 -0000
@@ -57,22 +57,15 @@ do {
\
} \
} while (0)
-/* Pass the control structure to YYPARSE and YYLEX. */
-#define YYPARSE_PARAM gram_control
-#define YYLEX_PARAM gram_control
-/* YYPARSE receives GRAM_CONTROL as a void *. Provide a
- correctly typed access to it. */
-#define yycontrol ((gram_control_t *) gram_control)
-
/* Request detailed syntax error messages, and pass them to GRAM_ERROR.
- FIXME: depends on the undocumented availability of YYLLOC.t */
+ FIXME: depends on the undocumented availability of YYLLOC. */
#undef yyerror
#define yyerror(Msg) \
gram_error (&yylloc, Msg)
#define YYPRINT(File, Type, Value) \
- yyprint (File, Type, &Value)
-static void yyprint (FILE *file, int type, const yystype *value);
+ print_token_value (File, Type, &Value)
+static void print_token_value (FILE *file, int type, YYSTYPE const *value);
symbol_class current_class = unknown_sym;
struniq_t current_type = 0;
@@ -169,9 +162,6 @@ braced_code_t current_braced_code = acti
input:
declarations "%%" grammar epilogue.opt
- {
- yycontrol->errcode = 0;
- }
;
@@ -450,8 +440,7 @@ semi_colon.opt:
`------------------------------------------------------------------*/
static void
-yyprint (FILE *file,
- int type, const yystype *value)
+print_token_value (FILE *file, int type, YYSTYPE const *value)
{
fputc (' ', file);
switch (type)
@@ -485,7 +474,7 @@ yyprint (FILE *file,
}
void
-gram_error (location_t *yylloc, const char *msg)
+gram_error (location_t const *loc, char const *msg)
{
- complain_at (*yylloc, "%s", msg);
+ complain_at (*loc, "%s", msg);
}
Index: src/reader.c
===================================================================
RCS file: /cvsroot/bison/bison/src/reader.c,v
retrieving revision 1.224
diff -p -u -r1.224 reader.c
--- src/reader.c 21 Nov 2002 05:20:49 -0000 1.224
+++ src/reader.c 27 Nov 2002 18:20:27 -0000
@@ -469,8 +469,6 @@ packgram (void)
void
reader (void)
{
- gram_control_t gram_control;
-
/* Initialize the symbol table. */
symbols_new ();
@@ -500,7 +498,7 @@ reader (void)
gram__flex_debug = trace_flag & trace_scan;
gram_debug = trace_flag & trace_parse;
scanner_initialize ();
- gram_parse (&gram_control);
+ gram_parse ();
/* If something went wrong during the parsing, don't try to
continue. */
Index: src/reader.h
===================================================================
RCS file: /cvsroot/bison/bison/src/reader.h,v
retrieving revision 1.31
diff -p -u -r1.31 reader.h
--- src/reader.h 12 Nov 2002 08:26:38 -0000 1.31
+++ src/reader.h 27 Nov 2002 18:20:27 -0000
@@ -32,11 +32,6 @@ typedef struct merger_list
}
merger_list;
-typedef struct gram_control_s
-{
- int errcode;
-} gram_control_t;
-
/* From the scanner. */
extern FILE *gram_in;
extern int gram__flex_debug;
@@ -44,16 +39,14 @@ void scanner_initialize (void);
void scanner_free (void);
void scanner_last_string_free (void);
-# define YY_DECL \
- int gram_lex (yystype *yylval, location_t *yylloc, \
- gram_control_t *yycontrol)
+# define YY_DECL int gram_lex (yystype *val, location_t *loc)
YY_DECL;
/* From the parser. */
extern int gram_debug;
-void gram_error (location_t *loc, const char *msg);
-int gram_parse (void *control);
+void gram_error (location_t const *loc, char const *msg);
+int gram_parse (void);
/* The sort of braced code we are in. */
typedef enum braced_code_e
Index: src/scan-gram.l
===================================================================
RCS file: /cvsroot/bison/bison/src/scan-gram.l,v
retrieving revision 1.43
diff -p -u -r1.43 scan-gram.l
--- src/scan-gram.l 13 Nov 2002 06:40:35 -0000 1.43
+++ src/scan-gram.l 27 Nov 2002 18:20:27 -0000
@@ -32,17 +32,16 @@
#include "gram.h"
#include "reader.h"
-/* Each time we match a string, move the end cursor to its end. */
#define YY_USER_INIT \
do { \
- LOCATION_RESET (*yylloc); \
- yylloc->file = current_file; \
- /* This is only to avoid GCC warnings. */ \
- if (yycontrol) {;}; \
+ LOCATION_RESET (*loc); \
+ loc->file = current_file; \
} while (0)
-#define YY_USER_ACTION extend_location (yylloc, yytext, yyleng);
-#define YY_STEP LOCATION_STEP (*yylloc)
+/* Each time we match a string, move the end cursor to its end. */
+#define STEP LOCATION_STEP (*loc)
+
+#define YY_USER_ACTION extend_location (loc, yytext, yyleng);
#define YY_INPUT(buf, result, size) ((result) = no_cr_read (yyin, buf, size))
@@ -135,10 +134,10 @@ extend_location (location_t *loc, char c
keep (to construct ID, STRINGS etc.). Use the following macros to
use it.
- Use YY_OBS_GROW to append what has just been matched, and
- YY_OBS_FINISH to end the string (it puts the ending 0).
- YY_OBS_FINISH also stores this string in LAST_STRING, which can be
- used, and which is used by YY_OBS_FREE to free the last string. */
+ Use STRING_GROW to append what has just been matched, and
+ STRING_FINISH to end the string (it puts the ending 0).
+ STRING_FINISH also stores this string in LAST_STRING, which can be
+ used, and which is used by STRING_FREE to free the last string. */
static struct obstack string_obstack;
@@ -146,22 +145,22 @@ static struct obstack string_obstack;
static char *last_string;
-#define YY_OBS_GROW \
+#define STRING_GROW \
obstack_grow (&string_obstack, yytext, yyleng)
-#define YY_OBS_FINISH \
+#define STRING_FINISH \
do { \
obstack_1grow (&string_obstack, '\0'); \
last_string = obstack_finish (&string_obstack); \
} while (0)
-#define YY_OBS_FREE \
+#define STRING_FREE \
obstack_free (&string_obstack, last_string)
void
scanner_last_string_free (void)
{
- YY_OBS_FREE;
+ STRING_FREE;
}
/* Within well-formed rules, RULE_LENGTH is the number of values in
@@ -210,7 +209,7 @@ splice (\\[ \f\t\v]*\n)*
/* At each yylex invocation, mark the current position as the
start of the next token. */
- YY_STEP;
+ STEP;
%}
@@ -255,13 +254,13 @@ splice (\\[ \f\t\v]*\n)*
"%yacc" return PERCENT_YACC;
{directive} {
- complain_at (*yylloc, _("invalid directive: %s"), quote (yytext));
- YY_STEP;
+ complain_at (*loc, _("invalid directive: %s"), quote (yytext));
+ STEP;
}
^"#line "{int}" \"".*"\"\n" {
- handle_syncline (yytext + sizeof "#line " - 1, yylloc);
- YY_STEP;
+ handle_syncline (yytext + sizeof "#line " - 1, loc);
+ STEP;
}
"=" return EQUAL;
@@ -270,10 +269,10 @@ splice (\\[ \f\t\v]*\n)*
"," return COMMA;
";" return SEMICOLON;
- [ \f\n\t\v] YY_STEP;
+ [ \f\n\t\v] STEP;
{id} {
- yylval->symbol = symbol_get (yytext, *yylloc);
+ val->symbol = symbol_get (yytext, *loc);
rule_length++;
return ID;
}
@@ -284,35 +283,35 @@ splice (\\[ \f\t\v]*\n)*
num = strtoul (yytext, 0, 10);
if (INT_MAX < num || errno)
{
- complain_at (*yylloc, _("integer out of range: %s"), quote (yytext));
+ complain_at (*loc, _("integer out of range: %s"), quote (yytext));
num = INT_MAX;
}
- yylval->integer = num;
+ val->integer = num;
return INT;
}
/* Characters. We don't check there is only one. */
- "'" YY_OBS_GROW; BEGIN SC_ESCAPED_CHARACTER;
+ "'" STRING_GROW; BEGIN SC_ESCAPED_CHARACTER;
/* Strings. */
- "\"" YY_OBS_GROW; BEGIN SC_ESCAPED_STRING;
+ "\"" STRING_GROW; BEGIN SC_ESCAPED_STRING;
/* Comments. */
"/*" BEGIN SC_YACC_COMMENT;
- "//".* YY_STEP;
+ "//".* STEP;
/* Prologue. */
"%{" BEGIN SC_PROLOGUE;
/* Code in between braces. */
- "{" YY_OBS_GROW; braces_level = 0; BEGIN SC_BRACED_CODE;
+ "{" STRING_GROW; braces_level = 0; BEGIN SC_BRACED_CODE;
/* A type. */
"<"{tag}">" {
obstack_grow (&string_obstack, yytext + 1, yyleng - 2);
- YY_OBS_FINISH;
- yylval->struniq = struniq_new (last_string);
- YY_OBS_FREE;
+ STRING_FINISH;
+ val->struniq = struniq_new (last_string);
+ STRING_FREE;
return TYPE;
}
@@ -324,8 +323,8 @@ splice (\\[ \f\t\v]*\n)*
}
. {
- complain_at (*yylloc, _("invalid character: %s"), quote (yytext));
- YY_STEP;
+ complain_at (*loc, _("invalid character: %s"), quote (yytext));
+ STEP;
}
}
@@ -337,12 +336,12 @@ splice (\\[ \f\t\v]*\n)*
<SC_YACC_COMMENT>
{
"*/" {
- YY_STEP;
+ STEP;
BEGIN INITIAL;
}
.|\n ;
- <<EOF>> unexpected_end_of_file (yylloc, "*/");
+ <<EOF>> unexpected_end_of_file (loc, "*/");
}
@@ -352,8 +351,8 @@ splice (\\[ \f\t\v]*\n)*
<SC_COMMENT>
{
- "*"{splice}"/" YY_OBS_GROW; BEGIN c_context;
- <<EOF>> unexpected_end_of_file (yylloc, "*/");
+ "*"{splice}"/" STRING_GROW; BEGIN c_context;
+ <<EOF>> unexpected_end_of_file (loc, "*/");
}
@@ -363,8 +362,8 @@ splice (\\[ \f\t\v]*\n)*
<SC_LINE_COMMENT>
{
- "\n" YY_OBS_GROW; BEGIN c_context;
- {splice} YY_OBS_GROW;
+ "\n" STRING_GROW; BEGIN c_context;
+ {splice} STRING_GROW;
<<EOF>> BEGIN c_context;
}
@@ -377,16 +376,16 @@ splice (\\[ \f\t\v]*\n)*
<SC_ESCAPED_STRING>
{
"\"" {
- YY_OBS_GROW;
- YY_OBS_FINISH;
- yylval->string = last_string;
+ STRING_GROW;
+ STRING_FINISH;
+ val->string = last_string;
rule_length++;
BEGIN INITIAL;
return STRING;
}
- .|\n YY_OBS_GROW;
- <<EOF>> unexpected_end_of_file (yylloc, "\"");
+ .|\n STRING_GROW;
+ <<EOF>> unexpected_end_of_file (loc, "\"");
}
/*---------------------------------------------------------------.
@@ -397,20 +396,20 @@ splice (\\[ \f\t\v]*\n)*
<SC_ESCAPED_CHARACTER>
{
"'" {
- YY_OBS_GROW;
- YY_OBS_FINISH;
- yylval->symbol = symbol_get (last_string, *yylloc);
- symbol_class_set (yylval->symbol, token_sym, *yylloc);
- symbol_user_token_number_set (yylval->symbol,
- (unsigned char) last_string[1], *yylloc);
- YY_OBS_FREE;
+ STRING_GROW;
+ STRING_FINISH;
+ val->symbol = symbol_get (last_string, *loc);
+ symbol_class_set (val->symbol, token_sym, *loc);
+ symbol_user_token_number_set (val->symbol,
+ (unsigned char) last_string[1], *loc);
+ STRING_FREE;
rule_length++;
BEGIN INITIAL;
return ID;
}
- .|\n YY_OBS_GROW;
- <<EOF>> unexpected_end_of_file (yylloc, "'");
+ .|\n STRING_GROW;
+ <<EOF>> unexpected_end_of_file (loc, "'");
}
@@ -424,9 +423,9 @@ splice (\\[ \f\t\v]*\n)*
unsigned long c = strtoul (yytext + 1, 0, 8);
if (UCHAR_MAX < c)
{
- complain_at (*yylloc, _("invalid escape sequence: %s"),
+ complain_at (*loc, _("invalid escape sequence: %s"),
quote (yytext));
- YY_STEP;
+ STEP;
}
else
obstack_1grow (&string_obstack, c);
@@ -438,9 +437,9 @@ splice (\\[ \f\t\v]*\n)*
c = strtoul (yytext + 2, 0, 16);
if (UCHAR_MAX < c || errno)
{
- complain_at (*yylloc, _("invalid escape sequence: %s"),
+ complain_at (*loc, _("invalid escape sequence: %s"),
quote (yytext));
- YY_STEP;
+ STEP;
}
else
obstack_1grow (&string_obstack, c);
@@ -461,17 +460,17 @@ splice (\\[ \f\t\v]*\n)*
int c = convert_ucn_to_byte (yytext);
if (c < 0)
{
- complain_at (*yylloc, _("invalid escape sequence: %s"),
+ complain_at (*loc, _("invalid escape sequence: %s"),
quote (yytext));
- YY_STEP;
+ STEP;
}
else
obstack_1grow (&string_obstack, c);
}
\\(.|\n) {
- complain_at (*yylloc, _("unrecognized escape sequence: %s"),
+ complain_at (*loc, _("unrecognized escape sequence: %s"),
quote (yytext));
- YY_OBS_GROW;
+ STRING_GROW;
}
}
@@ -483,9 +482,9 @@ splice (\\[ \f\t\v]*\n)*
<SC_CHARACTER>
{
- "'" YY_OBS_GROW; BEGIN c_context;
- address@hidden YY_OBS_GROW;
- <<EOF>> unexpected_end_of_file (yylloc, "'");
+ "'" STRING_GROW; BEGIN c_context;
+ address@hidden STRING_GROW;
+ <<EOF>> unexpected_end_of_file (loc, "'");
}
@@ -496,9 +495,9 @@ splice (\\[ \f\t\v]*\n)*
<SC_STRING>
{
- "\"" YY_OBS_GROW; BEGIN c_context;
- address@hidden YY_OBS_GROW;
- <<EOF>> unexpected_end_of_file (yylloc, "\"");
+ "\"" STRING_GROW; BEGIN c_context;
+ address@hidden STRING_GROW;
+ <<EOF>> unexpected_end_of_file (loc, "\"");
}
@@ -508,10 +507,10 @@ splice (\\[ \f\t\v]*\n)*
<SC_BRACED_CODE,SC_PROLOGUE,SC_EPILOGUE>
{
- "'" YY_OBS_GROW; c_context = YY_START; BEGIN SC_CHARACTER;
- "\"" YY_OBS_GROW; c_context = YY_START; BEGIN SC_STRING;
- "/"{splice}"*" YY_OBS_GROW; c_context = YY_START; BEGIN SC_COMMENT;
- "/"{splice}"/" YY_OBS_GROW; c_context = YY_START; BEGIN SC_LINE_COMMENT;
+ "'" STRING_GROW; c_context = YY_START; BEGIN SC_CHARACTER;
+ "\"" STRING_GROW; c_context = YY_START; BEGIN SC_STRING;
+ "/"{splice}"*" STRING_GROW; c_context = YY_START; BEGIN SC_COMMENT;
+ "/"{splice}"/" STRING_GROW; c_context = YY_START; BEGIN SC_LINE_COMMENT;
}
@@ -522,15 +521,15 @@ splice (\\[ \f\t\v]*\n)*
<SC_BRACED_CODE>
{
- "{"|"<"{splice}"%" YY_OBS_GROW; braces_level++;
- "%"{splice}">" YY_OBS_GROW; braces_level--;
+ "{"|"<"{splice}"%" STRING_GROW; braces_level++;
+ "%"{splice}">" STRING_GROW; braces_level--;
"}" {
- YY_OBS_GROW;
+ STRING_GROW;
braces_level--;
if (braces_level < 0)
{
- YY_OBS_FINISH;
- yylval->string = last_string;
+ STRING_FINISH;
+ val->string = last_string;
rule_length++;
BEGIN INITIAL;
return BRACED_CODE;
@@ -539,14 +538,14 @@ splice (\\[ \f\t\v]*\n)*
/* Tokenize `<<%' correctly (as `<<' `%') rather than incorrrectly
(as `<' `<%'). */
- "<"{splice}"<" YY_OBS_GROW;
+ "<"{splice}"<" STRING_GROW;
"$"("<"{tag}">")?(-?[0-9]+|"$") { handle_dollar (current_braced_code,
- yytext, *yylloc); }
+ yytext, *loc); }
"@"(-?[0-9]+|"$") { handle_at (current_braced_code,
- yytext, *yylloc); }
+ yytext, *loc); }
- <<EOF>> unexpected_end_of_file (yylloc, "}");
+ <<EOF>> unexpected_end_of_file (loc, "}");
}
@@ -557,13 +556,13 @@ splice (\\[ \f\t\v]*\n)*
<SC_PROLOGUE>
{
"%}" {
- YY_OBS_FINISH;
- yylval->string = last_string;
+ STRING_FINISH;
+ val->string = last_string;
BEGIN INITIAL;
return PROLOGUE;
}
- <<EOF>> unexpected_end_of_file (yylloc, "%}");
+ <<EOF>> unexpected_end_of_file (loc, "%}");
}
@@ -575,8 +574,8 @@ splice (\\[ \f\t\v]*\n)*
<SC_EPILOGUE>
{
<<EOF>> {
- YY_OBS_FINISH;
- yylval->string = last_string;
+ STRING_FINISH;
+ val->string = last_string;
BEGIN INITIAL;
return EPILOGUE;
}
@@ -594,7 +593,7 @@ splice (\\[ \f\t\v]*\n)*
\@ obstack_sgrow (&string_obstack, "@@");
\[ obstack_sgrow (&string_obstack, "@{");
\] obstack_sgrow (&string_obstack, "@}");
- .|\n YY_OBS_GROW;
+ .|\n STRING_GROW;
}
Index: tests/actions.at
===================================================================
RCS file: /cvsroot/bison/bison/tests/actions.at,v
retrieving revision 1.25
diff -p -u -r1.25 actions.at
--- tests/actions.at 25 Nov 2002 07:36:54 -0000 1.25
+++ tests/actions.at 27 Nov 2002 18:20:27 -0000
@@ -333,7 +333,7 @@ static void yyerror (const char *msg);
}
%type <ival> 'x' ';' thing line input
-%printer { fprintf (yyout, "address@hidden", $$, RANGE (@$)); }
+%printer { fprintf (yyoutput, "address@hidden", $$, RANGE (@$)); }
input line thing 'x'
%destructor
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Bison identifiers renamed to avoid namespace collisions,
Paul Eggert <=