X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/426cf563bd6b9b69efd3720d15ecb6326f667ce0..710ddc4f18039668a7672c8670eb3e010b59292a:/src/reader.c?ds=sidebyside diff --git a/src/reader.c b/src/reader.c index 8e7d9949..d42d90ec 100644 --- a/src/reader.c +++ b/src/reader.c @@ -437,14 +437,12 @@ copy_definition (void) /* -1 while reading a character if prev char was %. */ int after_percent; -#if 0 if (!no_lines_flag) { obstack_fgrow2 (&attrs_obstack, muscle_find ("linef"), lineno, quotearg_style (c_quoting_style, muscle_find("filename"))); } -#endif after_percent = 0; @@ -966,7 +964,7 @@ parse_muscle_decl (void) /*---------------------------------. -| Parse a double quoted parameter. | +| Parse a double quoted parameter. | `---------------------------------*/ static const char * @@ -994,7 +992,7 @@ parse_dquoted_param (const char *from) else break; } - + obstack_1grow (¶m_obstack, '\0'); param = obstack_finish (¶m_obstack); @@ -1014,7 +1012,7 @@ parse_dquoted_param (const char *from) | Parse what comes after %skeleton. | `----------------------------------*/ -void +static void parse_skel_decl (void) { skeleton = parse_dquoted_param ("%skeleton"); @@ -1133,7 +1131,6 @@ copy_action (symbol_list *rule, int stack_offset) { int c; int count; - char buf[4096]; /* offset is always 0 if parser has already popped the stack pointer */ if (semantic_parser) @@ -1691,6 +1688,13 @@ read_additionnal_code (void) obstack_init (&el_obstack); + if (!no_lines_flag) + { + obstack_fgrow2 (&el_obstack, muscle_find ("linef"), + lineno, quotearg_style (c_quoting_style, + muscle_find("filename"))); + } + while ((c = getc (finput)) != EOF) obstack_1grow (&el_obstack, c); @@ -1905,25 +1909,13 @@ symbols_output (void) obstack_free (&tokendefs, NULL); } -#if 0 - if (!no_parser_flag) - output_token_defines (&table_obstack); -#endif - if (defines_flag) { output_token_defines (&defines_obstack); if (!pure_parser) - { - if (spec_name_prefix) - obstack_fgrow1 (&defines_obstack, "\nextern YYSTYPE %slval;\n", - spec_name_prefix); - else - obstack_sgrow (&defines_obstack, - "\nextern YYSTYPE yylval;\n"); - } - + obstack_fgrow1 (&defines_obstack, "\nextern YYSTYPE %slval;\n", + spec_name_prefix); if (semantic_parser) { int i; @@ -1971,6 +1963,7 @@ packgram (void) rule_table[ruleno].lhs = p->sym->value; rule_table[ruleno].rhs = itemno; rule_table[ruleno].line = p->line; + rule_table[ruleno].useful = TRUE; p = p->next; while (p && p->sym) @@ -2004,6 +1997,9 @@ packgram (void) } ritem[itemno] = 0; + + if (trace_flag) + ritem_print (stderr); } /*-------------------------------------------------------------------. @@ -2070,7 +2066,6 @@ reader (void) /* Assign the symbols their symbol numbers. Write #defines for the token symbols into FDEFINES if requested. */ packsymbols (); - symbols_output (); /* Convert the grammar into the format described in gram.h. */ packgram (); /* Output the headers. */