static struct obstack format_obstack;
-int error_verbose = 0;
+bool error_verbose = false;
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);
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)
continue;
fprintf (out, "%s[[[%s]], [%d]]",
- first ? "" : ",\n", sym->tag, number);
-
- first = 0;
+ sep, sym->tag, number);
+ sep = ",\n";
}
fputs ("])\n\n", out);
}
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)
/* 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,
sym->number,
sym->destructor,
sym->type_name);
-
- first = 0;
}
fputs ("])\n\n", out);
}
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)
/* 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,
sym->number,
sym->printer,
sym->type_name);
-
- first = 0;
}
fputs ("])\n\n", out);
}
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");
/* Find the right skeleton file. */
if (!skeleton)
{
- if (glr_parser)
+ if (glr_parser || nondeterministic_parser)
skeleton = "glr.c";
else
skeleton = "yacc.c";