X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/6b7e85b9940d4313ab2f1663a449fdcb8b61df4b..e3f1699f5554776a9211b410f3ebdaa6120e62df:/src/reader.c diff --git a/src/reader.c b/src/reader.c index bbdb40ae..03c0d311 100644 --- a/src/reader.c +++ b/src/reader.c @@ -962,16 +962,13 @@ parse_skel_decl (void) static void read_declarations (void) { - int c; - int tok; - for (;;) { - c = skip_white_space (); + int c = skip_white_space (); if (c == '%') { - tok = parse_percent_token (); + token_t tok = parse_percent_token (); switch (tok) { @@ -1033,6 +1030,13 @@ read_declarations (void) case tok_noop: break; + case tok_stropt: + case tok_intopt: + case tok_obsolete: + case tok_illegal: + abort (); + break; + default: complain (_("unrecognized: %s"), token_buffer); skip_to_char ('%'); @@ -1828,6 +1832,22 @@ packsymbols (void) error_token_number = errtoken->value; + if (startval->class == unknown_sym) + fatal (_("the start symbol %s is undefined"), startval->tag); + else if (startval->class == token_sym) + fatal (_("the start symbol %s is a token"), startval->tag); + + start_symbol = startval->value; +} + + +/*-----------------------------------. +| Output definition of token names. | +`-----------------------------------*/ + +static void +symbols_output (void) +{ { struct obstack tokendefs; obstack_init (&tokendefs); @@ -1842,13 +1862,6 @@ packsymbols (void) output_token_defines (&table_obstack); #endif - if (startval->class == unknown_sym) - fatal (_("the start symbol %s is undefined"), startval->tag); - else if (startval->class == token_sym) - fatal (_("the start symbol %s is a token"), startval->tag); - - start_symbol = startval->value; - if (defines_flag) { output_token_defines (&defines_obstack); @@ -2016,6 +2029,7 @@ 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 (); }