]> git.saurik.com Git - bison.git/blobdiff - src/output.c
(yyremoveDeletes, yy_reduce_print, yyglrReduce, yyreportTree): Do not
[bison.git] / src / output.c
index 5dea261a721b526230eaf5582e82f69209a3a73f..90adafb9068ab9163a13a46287bb0521cf059626 100644 (file)
@@ -45,7 +45,7 @@ void scan_skel (FILE *);
 
 static struct obstack format_obstack;
 
 
 static struct obstack format_obstack;
 
-int error_verbose = 0;
+bool error_verbose = false;
 
 
 
 
 
 
@@ -253,6 +253,7 @@ prepare_rules (void)
   muscle_insert_short_table ("merger", merger, 0, 0, nrules);
 
   MUSCLE_INSERT_INT ("rules_number", nrules);
   muscle_insert_short_table ("merger", merger, 0, 0, nrules);
 
   MUSCLE_INSERT_INT ("rules_number", nrules);
+  MUSCLE_INSERT_INT ("max_left_semantic_context", max_left_semantic_context);
 
   free (rhs);
   free (prhs);
 
   free (rhs);
   free (prhs);
@@ -341,7 +342,7 @@ static void
 token_definitions_output (FILE *out)
 {
   int i;
 token_definitions_output (FILE *out)
 {
   int i;
-  int first = 1;
+  char const *sep = "";
 
   fputs ("m4_define([b4_tokens], \n[", out);
   for (i = 0; i < ntokens; ++i)
 
   fputs ("m4_define([b4_tokens], \n[", out);
   for (i = 0; i < ntokens; ++i)
@@ -376,9 +377,8 @@ token_definitions_output (FILE *out)
        continue;
 
       fprintf (out, "%s[[[%s]], [%d]]",
        continue;
 
       fprintf (out, "%s[[[%s]], [%d]]",
-              first ? "" : ",\n", sym->tag, number);
-
-      first = 0;
+              sep, sym->tag, number);
+      sep = ",\n";
     }
   fputs ("])\n\n", out);
 }
     }
   fputs ("])\n\n", out);
 }
@@ -392,7 +392,7 @@ static void
 symbol_destructors_output (FILE *out)
 {
   int i;
 symbol_destructors_output (FILE *out)
 {
   int i;
-  int first = 1;
+  char const *sep = "";
 
   fputs ("m4_define([b4_symbol_destructors], \n[", out);
   for (i = 0; i < nsyms; ++i)
 
   fputs ("m4_define([b4_symbol_destructors], \n[", out);
   for (i = 0; i < nsyms; ++i)
@@ -403,8 +403,8 @@ symbol_destructors_output (FILE *out)
        /* Filename, lineno,
           Symbol-name, Symbol-number,
           destructor, typename. */
        /* Filename, lineno,
           Symbol-name, Symbol-number,
           destructor, typename. */
-       fprintf (out, "%s[",
-                first ? "" : ",\n");
+       fprintf (out, "%s[", sep);
+       sep = ",\n";
        escaped_file_name_output (out, sym->destructor_location.start.file);
        fprintf (out, ", [[%d]], [[%s]], [[%d]], [[%s]], [[%s]]]",
                 sym->destructor_location.start.line,
        escaped_file_name_output (out, sym->destructor_location.start.file);
        fprintf (out, ", [[%d]], [[%s]], [[%d]], [[%s]], [[%s]]]",
                 sym->destructor_location.start.line,
@@ -412,8 +412,6 @@ symbol_destructors_output (FILE *out)
                 sym->number,
                 sym->destructor,
                 sym->type_name);
                 sym->number,
                 sym->destructor,
                 sym->type_name);
-
-       first = 0;
       }
   fputs ("])\n\n", out);
 }
       }
   fputs ("])\n\n", out);
 }
@@ -427,7 +425,7 @@ static void
 symbol_printers_output (FILE *out)
 {
   int i;
 symbol_printers_output (FILE *out)
 {
   int i;
-  int first = 1;
+  char const *sep = "";
 
   fputs ("m4_define([b4_symbol_printers], \n[", out);
   for (i = 0; i < nsyms; ++i)
 
   fputs ("m4_define([b4_symbol_printers], \n[", out);
   for (i = 0; i < nsyms; ++i)
@@ -438,8 +436,8 @@ symbol_printers_output (FILE *out)
        /* Filename, lineno,
           Symbol-name, Symbol-number,
           printer, typename. */
        /* Filename, lineno,
           Symbol-name, Symbol-number,
           printer, typename. */
-       fprintf (out, "%s[",
-                first ? "" : ",\n");
+       fprintf (out, "%s[", sep);
+       sep = ",\n";
        escaped_file_name_output (out, sym->printer_location.start.file);
        fprintf (out, ", [[%d]], [[%s]], [[%d]], [[%s]], [[%s]]]",
                 sym->printer_location.start.line,
        escaped_file_name_output (out, sym->printer_location.start.file);
        fprintf (out, ", [[%d]], [[%s]], [[%d]], [[%s]], [[%s]]]",
                 sym->printer_location.start.line,
@@ -447,8 +445,6 @@ symbol_printers_output (FILE *out)
                 sym->number,
                 sym->printer,
                 sym->type_name);
                 sym->number,
                 sym->printer,
                 sym->type_name);
-
-       first = 0;
       }
   fputs ("])\n\n", out);
 }
       }
   fputs ("])\n\n", out);
 }
@@ -595,12 +591,12 @@ static void
 prepare (void)
 {
   /* Flags. */
 prepare (void)
 {
   /* Flags. */
-  MUSCLE_INSERT_INT ("debug", debug_flag);
-  MUSCLE_INSERT_INT ("defines_flag", defines_flag);
-  MUSCLE_INSERT_INT ("error_verbose", error_verbose);
-  MUSCLE_INSERT_INT ("locations_flag", locations_flag);
-  MUSCLE_INSERT_INT ("pure", pure_parser);
-  MUSCLE_INSERT_INT ("synclines_flag", !no_lines_flag);
+  MUSCLE_INSERT_BOOL ("debug", debug_flag);
+  MUSCLE_INSERT_BOOL ("defines_flag", defines_flag);
+  MUSCLE_INSERT_BOOL ("error_verbose", error_verbose);
+  MUSCLE_INSERT_BOOL ("locations_flag", locations_flag);
+  MUSCLE_INSERT_BOOL ("pure", pure_parser);
+  MUSCLE_INSERT_BOOL ("synclines_flag", !no_lines_flag);
 
   /* File names.  */
   MUSCLE_INSERT_STRING ("prefix", spec_name_prefix ? spec_name_prefix : "yy");
 
   /* File names.  */
   MUSCLE_INSERT_STRING ("prefix", spec_name_prefix ? spec_name_prefix : "yy");
@@ -614,7 +610,7 @@ prepare (void)
   /* Find the right skeleton file.  */
   if (!skeleton)
     {
   /* Find the right skeleton file.  */
   if (!skeleton)
     {
-      if (glr_parser)
+      if (glr_parser || nondeterministic_parser)
        skeleton = "glr.c";
       else
        skeleton = "yacc.c";
        skeleton = "glr.c";
       else
        skeleton = "yacc.c";