]> git.saurik.com Git - bison.git/commitdiff
* src/output.c (output_unsigned_int_table): New.
authorAkim Demaille <akim@epita.fr>
Sun, 5 May 2002 11:56:06 +0000 (11:56 +0000)
committerAkim Demaille <akim@epita.fr>
Sun, 5 May 2002 11:56:06 +0000 (11:56 +0000)
(prepare_rules): `i' is unsigned.
`prhs', `rline', `r2' are unsigned int.
Rename muscle `rhs_number_max' as `rhs_max'.
Output muscles `prhs_max', `rline_max', and `r2_max'.
Free rline and r1.
* data/bison.simple, data/bison.c++: Adjust to use these muscles
to compute types instead of constant types.
* tests/regression.at (Web2c Actions): Adjust.

ChangeLog
data/bison.c++
data/bison.simple
src/output.c
tests/regression.at

index b53919882c744b1c3be16c979694d52226bc804d..bb5dfd5dcf4c8600aefa88f1a29e989e59d19ebf 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2002-05-05  Akim Demaille  <akim@epita.fr>
+
+       * src/output.c (output_unsigned_int_table): New.
+       (prepare_rules): `i' is unsigned.
+       `prhs', `rline', `r2' are unsigned int.
+       Rename muscle `rhs_number_max' as `rhs_max'.
+       Output muscles `prhs_max', `rline_max', and `r2_max'.
+       Free rline and r1.
+       * data/bison.simple, data/bison.c++: Adjust to use these muscles
+       to compute types instead of constant types.
+       * tests/regression.at (Web2c Actions): Adjust.
+
+       
 2002-05-04  Akim Demaille  <akim@epita.fr>
 
        * src/symtab.h (SALIAS, SUNDEF): Rename as...
index f5c39f4181b293e73c15393604791cdb40c64117..91c0fef09b49e4f5a96b021a15eccf347b92b5ee 100644 (file)
@@ -203,7 +203,7 @@ namespace yy
   struct Traits< b4_name >
   {
     typedef b4_uint_type(b4_token_number_max) TokenNumberType;
-    typedef b4_sint_type(b4_rhs_number_max)   RhsNumberType;
+    typedef b4_sint_type(b4_rhs_max)          RhsNumberType;
     typedef int      StateType;
     typedef yystype  SemanticType;
     typedef b4_ltype LocationType;
@@ -263,7 +263,7 @@ namespace yy
     static const short table_[[]];
     static const short check_[[]];
     static const TokenNumberType r1_[[]];
-    static const short r2_[[]];
+    static const b4_uint_type(b4_r2_max) r2_[[]];
 
 #if YYDEBUG || YYERROR_VERBOSE
     static const char* const name_[[]];
@@ -272,8 +272,8 @@ namespace yy
     /* More tables, for debugging.  */
 #if YYDEBUG
     static const RhsNumberType rhs_[[]];
-    static const short prhs_[[]];
-    static const short rline_[[]];
+    static const b4_uint_type(b4_prhs_max) prhs_[[]];
+    static const b4_uint_type(b4_rline_max) rline_[[]];
 #endif
 
     /* Even more tables.  */
@@ -466,7 +466,7 @@ yy::b4_name::parse ()
   if (debug_)
     {
       YYFPRINTF (stderr, "Reducing via rule %d (line %d), ", n_ - 1, rline_[[n_]]);
-      for (unsigned i = prhs_[[n_]];
+      for (b4_uint_type(b4_prhs_max) i = prhs_[[n_]];
           rhs_[[i]] >= 0; ++i)
        YYFPRINTF (stderr, "%s ", name_[[rhs_[i]]]);
       YYFPRINTF (stderr, "-> %s\n", name_[[r1_[n_]]]);
@@ -696,7 +696,7 @@ yy::b4_name::r1_[[]] =
 };
 
 /* YYR2[[YYN]] -- Number of symbols composing right hand side of rule YYN.  */
-const short
+const b4_uint_type(b4_r2_max)
 yy::b4_name::r2_[[]] =
 {
   b4_r2
@@ -722,14 +722,14 @@ yy::b4_name::rhs_[[]] =
 
 /* YYPRHS[[YYN]] -- Index of the first RHS symbol of rule number YYN in
    YYRHS.  */
-const short
+const b4_uint_type(b4_prhs_max)
 yy::b4_name::prhs_[[]] =
 {
   b4_prhs
 };
 
 /* YYRLINE[[YYN]] -- source line where rule number YYN was defined.  */
-const short
+const b4_uint_type(b4_rline_max)
 yy::b4_name::rline_[[]] =
 {
   b4_rline
index abee2c0455bbc6815dff8d484bdce6291152e684..dedf2c5a654d32750e1a0c293d12aaa8b19cc58b 100644 (file)
@@ -347,20 +347,19 @@ static const yy_token_number_type yytranslate[[]] =
 #if YYDEBUG
 /* YYPRHS[[YYN]] -- Index of the first RHS symbol of rule number YYN in
    YYRHS.  */
-static const short yyprhs[[]] =
+static const b4_uint_type(b4_prhs_max) yyprhs[[]] =
 {
   b4_prhs
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS. */
-typedef b4_sint_type(b4_rhs_number_max) yyrhs_t;
-static const yyrhs_t yyrhs[[]] =
+static const b4_sint_type(b4_rhs_max) yyrhs[[]] =
 {
   b4_rhs
 };
 
 /* YYRLINE[[YYN]] -- source line where rule number YYN was defined.  */
-static const short yyrline[[]] =
+static const b4_uint_type(b4_rline_max) yyrline[[]] =
 {
   b4_rline
 };
@@ -388,7 +387,7 @@ static const yy_token_number_type yyr1[[]] =
 };
 
 /* YYR2[[YYN]] -- Number of symbols composing right hand side of rule YYN.  */
-static const short yyr2[[]] =
+static const b4_uint_type(b4_r2_max) yyr2[[]] =
 {
   b4_r2
 };
index 10ed907b7966e44947e74d29b7d58546ec3fb824..649b542a3ea29f5f6fc034ed5ff086cd38c93e95 100644 (file)
@@ -208,6 +208,7 @@ Name (struct obstack *oout,                                         \
 }
 
 GENERATE_OUTPUT_TABLE(output_int_table, int)
+GENERATE_OUTPUT_TABLE(output_unsigned_int_table, unsigned int)
 GENERATE_OUTPUT_TABLE(output_short_table, short)
 GENERATE_OUTPUT_TABLE(output_token_number_table, token_number_t)
 GENERATE_OUTPUT_TABLE(output_item_number_table, item_number_t)
@@ -284,17 +285,17 @@ static void
 prepare_rules (void)
 {
   long int max;
-  item_number_t *rhsp;
   int r;
-  int i = 0;
+  unsigned int i = 0;
   item_number_t *rhs = XMALLOC (item_number_t, nritems);
-  short *prhs = XMALLOC (short, nrules + 1);
+  unsigned int *prhs = XMALLOC (unsigned int, nrules + 1);
+  unsigned int *rline = XMALLOC (unsigned int, nrules + 1);
   token_number_t *r1 = XMALLOC (token_number_t, nrules + 1);
-  short *r2 = XMALLOC (short, nrules + 1);
-  short *rline = XMALLOC (short, nrules + 1);
+  unsigned int *r2 = XMALLOC (unsigned int, nrules + 1);
 
   for (r = 1; r < nrules + 1; ++r)
     {
+      item_number_t *rhsp;
       /* Index of rule R in RHS. */
       prhs[r] = i;
       /* RHS of the rule R. */
@@ -311,24 +312,29 @@ prepare_rules (void)
     }
   assert (i == nritems);
 
-  max = output_int_table (&format_obstack, rhs, ritem[0], 1, nritems);
+  max = output_item_number_table (&format_obstack, rhs, ritem[0], 1, nritems);
   muscle_insert ("rhs", obstack_finish (&format_obstack));
-  MUSCLE_INSERT_LONG_INT ("rhs_number_max", max);
+  MUSCLE_INSERT_LONG_INT ("rhs_max", max);
 
-  output_short_table (&format_obstack, prhs, 0, 1, nrules + 1);
+  max = output_unsigned_int_table (&format_obstack, prhs, 0, 1, nrules + 1);
   muscle_insert ("prhs", obstack_finish (&format_obstack));
+  MUSCLE_INSERT_LONG_INT ("prhs_max", max);
 
-  output_short_table (&format_obstack, rline, 0, 1, nrules + 1);
+  max = output_unsigned_int_table (&format_obstack, rline, 0, 1, nrules + 1);
   muscle_insert ("rline", obstack_finish (&format_obstack));
+  MUSCLE_INSERT_LONG_INT ("rline_max", max);
 
   output_token_number_table (&format_obstack, r1, 0, 1, nrules + 1);
   muscle_insert ("r1", obstack_finish (&format_obstack));
 
-  output_short_table (&format_obstack, r2, 0, 1, nrules + 1);
+  max = output_unsigned_int_table (&format_obstack, r2, 0, 1, nrules + 1);
   muscle_insert ("r2", obstack_finish (&format_obstack));
+  MUSCLE_INSERT_LONG_INT ("r2_max", max);
 
   free (rhs);
   free (prhs);
+  free (rline);
+  free (r1);
   free (r2);
 }
 
index 8fb6ac9116fe2a50c68f3e5bc9067066600812f3..9ebff2e8fa8e7fde3d758a06a960e76605de1763 100644 (file)
@@ -489,16 +489,16 @@ AT_CHECK([[sed -n 's/  *$//;/^static const.*\[\] =/,/^}/p' input.c]], 0,
        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
        5,     6
 };
-static const short yyprhs[] =
+static const unsigned char yyprhs[] =
 {
        0,     0,     3,     5,     6,     9,    14
 };
-static const yyrhs_t yyrhs[] =
+static const signed char yyrhs[] =
 {
        8,     0,    -1,     9,    -1,    -1,    10,    11,    -1,     3,
        4,     5,     8,    -1,     6,     8,    -1
 };
-static const short yyrline[] =
+static const unsigned char yyrline[] =
 {
        0,     2,     2,     3,     3,     4,     5
 };
@@ -515,7 +515,7 @@ static const yy_token_number_type yyr1[] =
 {
        0,     7,     8,     9,     9,    10,    11
 };
-static const short yyr2[] =
+static const unsigned char yyr2[] =
 {
        0,     2,     1,     0,     2,     4,     2
 };