]> git.saurik.com Git - bison.git/commitdiff
Get rid of (yy)rhs and (yy)prhs.
authorAkim Demaille <demaille@gostai.com>
Tue, 25 Nov 2008 20:09:20 +0000 (21:09 +0100)
committerAkim Demaille <demaille@gostai.com>
Wed, 26 Nov 2008 08:55:31 +0000 (09:55 +0100)
These tables are no longer needed in the parsers, and they don't seem to
be useful.  They are not documented either.

* src/output.c (prepare_rules): Get rid of rhs and prhs.
Adjust the computation of (yy)r2.

ChangeLog
src/output.c

index f501512ffb5e91dcbbb5a272d8b78dafdc9dd9e0..c188d999a731afc763b420480b495f311e244ac0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2008-11-26  Akim Demaille  <demaille@gostai.com>
+
+       Get rid of (yy)rhs and (yy)prhs.
+       These tables are no longer needed in the parsers, and they don't seem to
+       be useful.  They are not documented either.
+       
+       * src/output.c (prepare_rules): Get rid of rhs and prhs.
+       Adjust the computation of (yy)r2.
+
 2008-11-26  Akim Demaille  <demaille@gostai.com>
 
        Rule length is unsigned.
index 73e634855e6c2a4a184e2e2b2d9e38a4a6d4a493..bcd719126f08814a572d6035a7365153f379a3ab 100644 (file)
@@ -201,38 +201,27 @@ prepare_symbols (void)
 }
 
 
-/*-------------------------------------------------------------.
-| Prepare the muscles related to the rules: rhs, prhs, r1, r2, |
-| rline, dprec, merger.                                        |
-`-------------------------------------------------------------*/
+/*----------------------------------------------------------------.
+| Prepare the muscles related to the rules: r1, r2, rline, dprec, |
+| merger.                                                         |
+`----------------------------------------------------------------*/
 
 static void
 prepare_rules (void)
 {
-  rule_number r;
-  unsigned int i = 0;
-  item_number *rhs = xnmalloc (nritems, sizeof *rhs);
-  unsigned int *prhs = xnmalloc (nrules, sizeof *prhs);
   unsigned int *rline = xnmalloc (nrules, sizeof *rline);
   symbol_number *r1 = xnmalloc (nrules, sizeof *r1);
   unsigned int *r2 = xnmalloc (nrules, sizeof *r2);
   int *dprec = xnmalloc (nrules, sizeof *dprec);
   int *merger = xnmalloc (nrules, sizeof *merger);
 
+  rule_number r;
   for (r = 0; r < nrules; ++r)
     {
-      item_number *rhsp = NULL;
-      /* Index of rule R in RHS. */
-      prhs[r] = i;
-      /* RHS of the rule R. */
-      for (rhsp = rules[r].rhs; *rhsp >= 0; ++rhsp)
-       rhs[i++] = *rhsp;
       /* LHS of the rule R. */
       r1[r] = rules[r].lhs->number;
       /* Length of rule R's RHS. */
-      r2[r] = i - prhs[r];
-      /* Separator in RHS. */
-      rhs[i++] = -1;
+      r2[r] = rule_rhs_length(&rules[r]);
       /* Line where rule was defined. */
       rline[r] = rules[r].location.start.line;
       /* Dynamic precedence (GLR).  */
@@ -240,10 +229,7 @@ prepare_rules (void)
       /* Merger-function index (GLR).  */
       merger[r] = rules[r].merger;
     }
-  aver (i == nritems);
 
-  muscle_insert_item_number_table ("rhs", rhs, ritem[0], 1, nritems);
-  muscle_insert_unsigned_int_table ("prhs", prhs, 0, 0, nrules);
   muscle_insert_unsigned_int_table ("rline", rline, 0, 0, nrules);
   muscle_insert_symbol_number_table ("r1", r1, 0, 0, nrules);
   muscle_insert_unsigned_int_table ("r2", r2, 0, 0, nrules);
@@ -253,8 +239,6 @@ prepare_rules (void)
   MUSCLE_INSERT_INT ("rules_number", nrules);
   MUSCLE_INSERT_INT ("max_left_semantic_context", max_left_semantic_context);
 
-  free (rhs);
-  free (prhs);
   free (rline);
   free (r1);
   free (r2);