]> git.saurik.com Git - bison.git/commitdiff
* src/gram.h (rule_t): Rename `number' as `user_number'.
authorAkim Demaille <akim@epita.fr>
Sun, 7 Apr 2002 17:41:28 +0000 (17:41 +0000)
committerAkim Demaille <akim@epita.fr>
Sun, 7 Apr 2002 17:41:28 +0000 (17:41 +0000)
`number' is a new member.
Adjust dependencies.
* src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.

ChangeLog
src/gram.h
src/reader.c
src/reduce.c

index 09c3479e18706798781516d52144afd61f7555ca..aecf5f9185c7c00d7ab24ca1346fce92f8ca4a23 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2002-04-07  Akim Demaille  <akim@epita.fr>
+
+       * src/gram.h (rule_t): Rename `number' as `user_number'.
+       `number' is a new member.
+       Adjust dependencies.
+       * src/reduce.c (reduce_grammar_tables): Renumber rule_t.number.
+
 2002-04-07  Akim Demaille  <akim@epita.fr>
 
        As a result of the previous patch, it is no longer needed
 2002-04-07  Akim Demaille  <akim@epita.fr>
 
        As a result of the previous patch, it is no longer needed
index 087583ade78f0a759d2f53018812a39a98465f64..024501e3f07da7c41e7f01c5f2cdfd79ea8f5b85 100644 (file)
@@ -1,5 +1,5 @@
 /* Data definitions for internal representation of bison's input,
 /* Data definitions for internal representation of bison's input,
-   Copyright 1984, 1986, 1989, 1992, 2001, 2002
+   Copyright (C) 1984, 1986, 1989, 1992, 2001, 2002
    Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
    Free Software Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
@@ -118,6 +118,10 @@ typedef struct rule_s
 {
   /* The number of the rule in the source.  It is usually the index in
      RULES too, except if there are useless rules.  */
 {
   /* The number of the rule in the source.  It is usually the index in
      RULES too, except if there are useless rules.  */
+  short user_number;
+
+  /* The index in RULES.  Usually the rule number in the source,
+     except if some rules are useless.  */
   short number;
 
   bucket *lhs;
   short number;
 
   bucket *lhs;
index 08cf4d454fbb5db16304760b27d60c3b2feb4b19..b09d9f6c01e42c0afa1c46c1499ef73f51cf2cb8 100644 (file)
@@ -1687,6 +1687,7 @@ packgram (void)
   while (p)
     {
       bucket *ruleprec = p->ruleprec;
   while (p)
     {
       bucket *ruleprec = p->ruleprec;
+      rules[ruleno].user_number = ruleno;
       rules[ruleno].number = ruleno;
       rules[ruleno].lhs = p->sym;
       rules[ruleno].rhs = ritem + itemno;
       rules[ruleno].number = ruleno;
       rules[ruleno].lhs = p->sym;
       rules[ruleno].rhs = ritem + itemno;
index 7cdc76aba6c2b54edf33cca09696c5b8402d0d46..45dc1d74ee9737a014c797783ec58c997845d34f 100644 (file)
@@ -255,6 +255,7 @@ reduce_grammar_tables (void)
        for (/* Nothing. */; *rhsp >= 0; ++rhsp)
          /* Nothing. */;
        *rhsp = -i;
        for (/* Nothing. */; *rhsp >= 0; ++rhsp)
          /* Nothing. */;
        *rhsp = -i;
+       rules[i].number = i;
       }
     nrules -= nuseless_productions;
   }
       }
     nrules -= nuseless_productions;
   }
@@ -368,7 +369,7 @@ reduce_output (FILE *out)
       for (i = nrules + 1; i < nuseless_productions + nrules + 1; i++)
        {
          rule r;
       for (i = nrules + 1; i < nuseless_productions + nrules + 1; i++)
        {
          rule r;
-         fprintf (out, "#%-4d  ", rules[i].number - 1);
+         fprintf (out, "#%-4d  ", rules[i].user_number - 1);
          fprintf (out, "%s:", rules[i].lhs->tag);
          for (r = rules[i].rhs; *r >= 0; r++)
            fprintf (out, " %s", symbols[*r]->tag);
          fprintf (out, "%s:", rules[i].lhs->tag);
          for (r = rules[i].rhs; *r >= 0; r++)
            fprintf (out, " %s", symbols[*r]->tag);