bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

05-reader-reads-4.patch


From: Akim Demaille
Subject: 05-reader-reads-4.patch
Date: Sun, 09 Jun 2002 19:15:52 +0200

Index: ChangeLog
from  Akim Demaille  <address@hidden>

        * src/symtab.c (symbol_user_token_number_set): Don't complain when
        assigning twice the same user number to a token, so that we can
        use it in...
        * src/lex.c (lex): here.
        Also use `symbol_class_set' instead of hand written code.
        * src/reader.c (parse_assoc_decl): Likewise.

Index: src/lex.c
--- src/lex.c Sat, 25 May 2002 18:16:05 +0200 akim
+++ src/lex.c Sun, 09 Jun 2002 16:48:04 +0200 akim
@@ -1,5 +1,6 @@
 /* Token-reader for Bison's input parser,
-   Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc.
+   Copyright (C) 1984, 1986, 1989, 1992, 2000, 2001, 2002
+   Free Software Foundation, Inc.

    This file is part of Bison, the GNU Compiler Compiler.

@@ -364,13 +365,8 @@
        obstack_1grow (&token_obstack, '\0');
        token_buffer = obstack_finish (&token_obstack);
        symval = getsym (token_buffer);
-       if (symval->number == NUMBER_UNDEFINED)
-         {
-           symval->number = ntokens++;
-           symval->class = token_sym;
-           if (symval->user_token_number == USER_NUMBER_UNDEFINED)
-             symval->user_token_number = code;
-         }
+       symbol_class_set (symval, token_sym);
+       symbol_user_token_number_set (symval, code);
        return tok_identifier;
       }

@@ -378,7 +374,7 @@
       /* parse the literal string token and treat as an identifier */

       {
-       int code;               /* ignored here */
+       int code;

        obstack_1grow (&token_obstack, '\"');
        /* Read up to and including ".  */
@@ -392,12 +388,7 @@
        token_buffer = obstack_finish (&token_obstack);

        symval = getsym (token_buffer);
-       if (symval->number == NUMBER_UNDEFINED)
-         {
-           symval->number = ntokens++;
-           symval->class = token_sym;
-         }
-
+       symbol_class_set (symval, token_sym);
        return tok_identifier;
       }

Index: src/reader.c
--- src/reader.c Sun, 09 Jun 2002 16:37:34 +0200 akim
+++ src/reader.c Sun, 09 Jun 2002 16:47:39 +0200 akim
@@ -656,13 +656,7 @@
          break;

        case tok_identifier:
-         if (symval->class == nterm_sym)
-           complain (_("symbol %s redefined"), symval->tag);
-         if (symval->number == NUMBER_UNDEFINED)
-           {
-             symval->number = ntokens++;
-             symval->class = token_sym;
-           }
+         symbol_class_set (symval, token_sym);
          symbol_precedence_set (symval, lastprec, assoc);
          if (name)
            symbol_type_set (symval, name);
@@ -671,7 +665,7 @@
        case tok_number:
          if (prev == tok_identifier)
            {
-             symval->user_token_number = numval;
+             symbol_user_token_number_set (symval, numval);
            }
          else
            {
Index: src/symtab.c
--- src/symtab.c Sun, 09 Jun 2002 16:37:34 +0200 akim
+++ src/symtab.c Sun, 09 Jun 2002 16:51:02 +0200 akim
@@ -114,7 +114,8 @@
 {
   assert (symbol->class == token_sym);

-  if (symbol->user_token_number != USER_NUMBER_UNDEFINED)
+  if (symbol->user_token_number != USER_NUMBER_UNDEFINED
+      && symbol->user_token_number != user_token_number)
     complain (_("redefining user token number of %s"), symbol->tag);

   symbol->user_token_number = user_token_number;



reply via email to

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