/* FIXME. */
static inline void
-output_table_data (struct obstack* oout,
- short* table,
+output_table_data (struct obstack *oout,
+ short *table_data,
short first,
short begin,
short end)
}
else
++j;
- obstack_fgrow1 (oout, "%6d", table[i]);
+ obstack_fgrow1 (oout, "%6d", table_data[i]);
}
obstack_1grow (oout, 0);
}
XFREE (yyrhs);
}
- /* if (!semantic_parser && !no_parser_flag)
- obstack_sgrow (&table_obstack, "\n#endif\n"); */
+#if 0
+ if (!semantic_parser && !no_parser_flag)
+ obstack_sgrow (&table_obstack, "\n#endif\n");
+#endif
}
sort_actions ();
pack_table ();
- /* FIXME: See if this is useful. */
- /* obstack_1grow (&table_obstack, '\n'); */
+
output_base ();
output_table ();
- /* FIXME: See if this is useful. */
- /* obstack_1grow (&table_obstack, '\n'); */
+
output_check ();
}
}
fskel = xfopen (skeleton, "r");
- /* New output code. */
+ /* New output code. */
line = 1;
c = getc (fskel);
while (c != EOF)
}
else if ((c = getc (fskel)) == '%')
{
- /* Read the macro. */
- char* macro_key = 0;
- char* macro_value = 0;
+ /* Read the macro. */
+ const char *macro_key = 0;
+ const char *macro_value = 0;
while (isalnum (c = getc (fskel)) || c == '_')
obstack_1grow (¯o_obstack, c);
obstack_1grow (¯o_obstack, 0);
- /* Output the right value, or see if it's something special. */
+ /* Output the right value, or see if it's something special. */
macro_key = obstack_finish (¯o_obstack);
macro_value = macro_find (macro_key);
if (macro_value)
obstack_1grow (&table_obstack, '%');
}
- /* End. */
+ /* End. */
xfclose (fskel);
}
-static void
-output_program (void)
-{
- int c;
-
- while ((c = getc (finput)) != EOF)
- obstack_1grow (&table_obstack, c);
-}
-
-
static void
free_itemsets (void)
{
MACRO_INSERT_INT ("ntbase", ntokens);
MACRO_INSERT_INT ("verbose", 0);
- MACRO_INSERT_STRING ("filename", infile);
-
MACRO_INSERT_INT ("nnts", nvars);
MACRO_INSERT_INT ("nrules", nrules);
MACRO_INSERT_INT ("nstates", nstates);
MACRO_INSERT_INT ("ntokens", ntokens);
+ MACRO_INSERT_INT ("locations_flag", locations_flag);
+
if (spec_name_prefix)
- {
- MACRO_INSERT_PREFIX ("yylex", "lex");
- MACRO_INSERT_PREFIX ("yychar", "char");
- MACRO_INSERT_PREFIX ("yylval", "lval");
- MACRO_INSERT_PREFIX ("yydebug", "debug");
- MACRO_INSERT_PREFIX ("yyerror", "error");
- MACRO_INSERT_PREFIX ("yynerrs", "nerrs");
- MACRO_INSERT_PREFIX ("yyparse", "parse");
- }
+ MACRO_INSERT_STRING ("prefix", spec_name_prefix);
}
/*----------------------------------------------------------.
obstack_init (&output_obstack);
#if 0
- /* If using a simple parser the definition of YYSTYPE are put into
- TABLE_OBSTACK. */
- if (!semantic_parser)
- {
- size_t size = obstack_object_size (&attrs_obstack);
- obstack_grow (&table_obstack, obstack_finish (&attrs_obstack), size);
- }
+ reader_output_yylsp (&table_obstack); */
#endif
-
- /* reader_output_yylsp (&table_obstack); */
free_itemsets ();
output_token_translations ();
output_stos ();
output_rule_data ();
output_actions ();
-
- /* if (!no_parser_flag) */
+
+#if 0
+ if (!no_parser_flag) */
+#endif
prepare ();
+ /* Copy definitions in directive. */
+ macro_insert ("prologue", obstack_finish (&attrs_obstack));
output_parser ();
- output_program ();
obstack_free (¯o_obstack, 0);
obstack_free (&output_obstack, 0);