bison-patches
[Top][All Lists]
Advanced

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

14-fyi-rule-user-number.patch


From: Akim Demaille
Subject: 14-fyi-rule-user-number.patch
Date: Sun, 07 Apr 2002 17:23:56 +0200

Index: ChangeLog
from  Akim Demaille  <address@hidden>
        
        * 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.
        
Index: src/gram.h
--- src/gram.h Mon, 25 Mar 2002 21:34:54 +0100 akim
+++ src/gram.h Thu, 04 Apr 2002 19:38:31 +0200 akim
@@ -1,5 +1,5 @@
 /* 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.
@@ -118,6 +118,10 @@
 {
   /* 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;
Index: src/reader.c
--- src/reader.c Mon, 25 Mar 2002 21:34:54 +0100 akim
+++ src/reader.c Thu, 04 Apr 2002 19:37:17 +0200 akim
@@ -1687,6 +1687,7 @@
   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;
Index: src/reduce.c
--- src/reduce.c Wed, 03 Apr 2002 23:01:52 +0200 akim
+++ src/reduce.c Thu, 04 Apr 2002 19:40:36 +0200 akim
@@ -255,6 +255,7 @@
        for (/* Nothing. */; *rhsp >= 0; ++rhsp)
          /* Nothing. */;
        *rhsp = -i;
+       rules[i].number = i;
       }
     nrules -= nuseless_productions;
   }
@@ -368,7 +369,7 @@
       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);



reply via email to

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