X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/0fc1a97d9f82d66bb680bf7a0f599b9b35d8eb78..e89a22bfab22e4d2ee73be49dcb66b51f8d0e892:/src/output.c diff --git a/src/output.c b/src/output.c index 2dbf480b..2daac6c3 100644 --- a/src/output.c +++ b/src/output.c @@ -1,5 +1,7 @@ /* Output the generated parsing program for bison, - Copyright 1984, 1986, 1989, 1992, 2000, 2001 Free Software Foundation, Inc. + + Copyright (C) 1984, 1986, 1989, 1992, 2000, 2001 Free Software + Foundation, Inc. This file is part of Bison, the GNU Compiler Compiler. @@ -129,7 +131,7 @@ output_short_or_char_table (struct obstack *oout, const char *table_name, short *short_table, short first_value, - short begin, short end) + int begin, int end) { int i, j; @@ -167,7 +169,7 @@ output_short_table (struct obstack *oout, const char *table_name, short *short_table, short first_value, - short begin, short end) + int begin, int end) { output_short_or_char_table (oout, comment, "short", table_name, short_table, first_value, begin, end); @@ -314,7 +316,7 @@ output_gram (void) yyprhs and yyrhs are needed only for yydebug. */ /* With the no_parser option, all tables are generated */ if (!semantic_parser && !no_parser_flag) - obstack_sgrow (&table_obstack, "\n#if YYDEBUG != 0\n"); + obstack_sgrow (&table_obstack, "\n#if YYDEBUG\n"); { int i; @@ -370,7 +372,7 @@ output_rule_data (void) short *short_tab = NULL; obstack_sgrow (&table_obstack, "\n\ -#if YYDEBUG != 0\n"); +#if YYDEBUG\n"); { short *values = XCALLOC (short, nrules + 1); @@ -398,7 +400,7 @@ output_rule_data (void) /* Output the table of symbol names. */ if (!token_table_flag && !no_parser_flag) obstack_sgrow (&table_obstack, - "\n#if YYDEBUG != 0 || defined YYERROR_VERBOSE\n\n"); + "\n#if (YYDEBUG) || defined YYERROR_VERBOSE\n\n"); obstack_sgrow (&table_obstack, "\ /* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */\n"); obstack_sgrow (&table_obstack, @@ -541,7 +543,7 @@ action_row (int state) default_rule = 0; nreds = 0; - redp = state_table[state].reduction_table; + redp = state_table[state].reductions; if (redp) { @@ -568,7 +570,7 @@ action_row (int state) /* Now see which tokens are allowed for shifts in this state. For them, record the shift as the thing to do. So shift is preferred to reduce. */ - shiftp = state_table[state].shift_table; + shiftp = state_table[state].shifts; for (i = 0; i < shiftp->nshifts; i++) { shift_state = shiftp->shifts[i]; @@ -590,7 +592,7 @@ action_row (int state) /* See which tokens are an explicit error in this state (due to %nonassoc). For them, record MINSHORT as the action. */ - errp = err_table[state]; + errp = state_table[state].errs; if (errp) { @@ -976,8 +978,8 @@ pack_vector (int vector) return j; } } - - assert (!"pack_vector"); +#define pack_vector_succeeded 0 + assert (pack_vector_succeeded); return 0; } @@ -1266,20 +1268,16 @@ output (void) obstack_grow (&table_obstack, obstack_finish (&attrs_obstack), size); } reader_output_yylsp (&table_obstack); - if (debug_flag) - obstack_sgrow (&table_obstack, "\ + obstack_fgrow1 (&table_obstack, "\ #ifndef YYDEBUG\n\ -# define YYDEBUG 1\n\ +# define YYDEBUG %d\n\ #endif\n\ -\n"); +\n", debug_flag); if (semantic_parser) obstack_fgrow1 (&table_obstack, "#include %s\n", quotearg_style (c_quoting_style, attrsfile)); - if (!no_parser_flag) - obstack_sgrow (&table_obstack, "#include \n\n"); - LIST_FREE (core, first_state); output_defines (); output_token_translations ();