-void
-output_headers (void)
-{
- if (semantic_parser)
- fprintf (fguard, GUARDSTR, attrsfile);
-
- if (noparserflag)
- return;
-
- fprintf (faction, (semantic_parser ? ACTSTR : ACTSTR_SIMPLE), attrsfile);
-/* if (semantic_parser) JF moved this below
- fprintf(ftable, "#include \"%s\"\n", attrsfile);
- fprintf(ftable, "#include <stdio.h>\n\n");
-*/
-
- /* Rename certain symbols if -p was specified. */
- if (spec_name_prefix)
- {
- fprintf (ftable, "#define yyparse %sparse\n", spec_name_prefix);
- fprintf (ftable, "#define yylex %slex\n", spec_name_prefix);
- fprintf (ftable, "#define yyerror %serror\n", spec_name_prefix);
- fprintf (ftable, "#define yylval %slval\n", spec_name_prefix);
- fprintf (ftable, "#define yychar %schar\n", spec_name_prefix);
- fprintf (ftable, "#define yydebug %sdebug\n", spec_name_prefix);
- fprintf (ftable, "#define yynerrs %snerrs\n", spec_name_prefix);
- }
-}
-
-
-/*-------------------------------------------------------.
-| Output constant strings to the ends of certain files. |
-`-------------------------------------------------------*/
-
-void
-output_trailers (void)
-{
- if (semantic_parser)
- fprintf (fguard, "\n }\n}\n");
-
- fprintf (faction, "\n");
-
- if (noparserflag)
- return;
-
- if (semantic_parser)
- fprintf (faction, " }\n");
- fprintf (faction, "}\n");
-}
-
-
-
-static void
-output_token_translations (void)
-{
- int i, j;
-/* short *sp; JF unused */
-
- if (translations)
- {
- fprintf (ftable,
- "\n#define YYTRANSLATE(x) ((unsigned)(x) <= %d ? yytranslate[x] : %d)\n",
- max_user_token_number, nsyms);
-
- if (ntokens < 127) /* play it very safe; check maximum element value. */
- fprintf (ftable, "\nstatic const char yytranslate[] = { 0");
- else
- fprintf (ftable, "\nstatic const short yytranslate[] = { 0");
-
- j = 10;
- for (i = 1; i <= max_user_token_number; i++)
- {
- putc (',', ftable);
-
- if (j >= 10)
- {
- putc ('\n', ftable);
- j = 1;
- }
- else
- {
- j++;
- }
-
- fprintf (ftable, "%6d", token_translations[i]);
- }
-
- fprintf (ftable, "\n};\n");
- }
- else
- {
- fprintf (ftable, "\n#define YYTRANSLATE(x) (x)\n");
- }
-}
-
-
-static void
-output_gram (void)
-{
- int j;
- short *sp;
-
- /* With the ordinary parser,
- yyprhs and yyrhs are needed only for yydebug. */
- /* With the noparser option, all tables are generated */
- if (!semantic_parser && !noparserflag)
- fprintf (ftable, "\n#if YYDEBUG != 0\n");
-
- output_short_table (ftable, "yyprhs", rrhs,
- 0, 1, nrules + 1);
-
- fprintf (ftable, "\nstatic const short yyrhs[] = {%6d", ritem[0]);
-
- j = 10;
- for (sp = ritem + 1; *sp; sp++)
- {
- putc (',', ftable);