[Top][All Lists]
[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;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- 05-reader-reads-4.patch,
Akim Demaille <=