* src/output.c (token_actions): Introduce a temporary array,
authorAkim Demaille <akim@epita.fr>
Mon, 2 Oct 2000 07:55:11 +0000 (07:55 +0000)
committerAkim Demaille <akim@epita.fr>
Mon, 2 Oct 2000 07:55:11 +0000 (07:55 +0000)
YYDEFACT, that makes it possible for this function to use
output_short_table.

ChangeLog
src/output.c

index cf03f98..3d7b9c8 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2000-10-02  Akim Demaille  <akim@epita.fr>
 
+       * src/output.c (token_actions): Introduce a temporary array,
+       YYDEFACT, that makes it possible for this function to use
+       output_short_table.
+
+       
+2000-10-02  Akim Demaille  <akim@epita.fr>
+
        `user_toknums' is output as a `short[]' in `output.c', while it is
        defined as a `int[]' in `reader.c'.  For consistency with the
        other output tables, `user_toknums' is now defined as a table of
index a89e77e..56538f0 100644 (file)
@@ -734,45 +734,27 @@ save_row (int state)
 | Figure out the actions for the specified state, indexed by        |
 | lookahead token type.                                             |
 |                                                                   |
-| The yydefact table is output now.  The detailed info is saved for |
-| putting into yytable later.                                       |
+| The YYDEFACT table is output now.  The detailed info is saved for |
+| putting into YYTABLE later.                                       |
 `------------------------------------------------------------------*/
 
 static void
 token_actions (void)
 {
   int i;
-  int j;
-  int k;
+  short *yydefact = NEW2 (nstates, short);
 
   actrow = NEW2 (ntokens, short);
-
-  k = action_row (0);
-  fprintf (ftable, "\nstatic const short yydefact[] = {%6d", k);
-  save_row (0);
-
-  j = 10;
-  for (i = 1; i < nstates; i++)
+  for (i = 0; i < nstates; ++i)
     {
-      putc (',', ftable);
-
-      if (j >= 10)
-       {
-         putc ('\n', ftable);
-         j = 1;
-       }
-      else
-       {
-         j++;
-       }
-
-      k = action_row (i);
-      fprintf (ftable, "%6d", k);
+      yydefact[i] = action_row (i);
       save_row (i);
     }
-
-  fprintf (ftable, "\n};\n");
   FREE (actrow);
+
+  output_short_table (ftable, "yydefact", yydefact,
+                     yydefact[0], 1, nstates);
+  FREE (yydefact);
 }