bison-patches
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]