mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-13 14:23:04 +00:00
Since we now use obstacks, more % directives can be enabled.
* src/lex.c (percent_table): Also accept `%yacc', `%fixed_output_files', `%defines', `%no_parser', `%verbose', and `%debug'. Handle the actions for `%semantic_parser' and `%pure_parser' here, instead of returning a token. * src/lex.h (SEMANTIC_PARSER, PURE_PARSER): Remove, unused. * src/reader.c (read_declarations): Adjust. * src/files.c (open_files): Don't call `compute_base_names', don't compute `attrsfile' since they depend upon data which might be *in* the input file now. (output_files): Do it here. * src/output.c (output_headers): Document the fact that this patch introduces a guaranteed SEGV for semantic parsers. * doc/bison.texinfo: Document them. * tests/suite.at: Exercise these %options.
This commit is contained in:
12
src/output.c
12
src/output.c
@@ -223,10 +223,18 @@ register YYLTYPE *yylsp;\n\
|
||||
void
|
||||
output_headers (void)
|
||||
{
|
||||
char *attrsfile_quoted = quotearg_style (c_quoting_style, attrsfile);
|
||||
char *attrsfile_quoted = 0;
|
||||
|
||||
if (semantic_parser)
|
||||
obstack_fgrow1 (&guard_obstack, GUARDSTR, attrsfile_quoted);
|
||||
{
|
||||
/* FIXME: This is *buggy*. ATTRSFILE is not computed yet, since
|
||||
we are waiting for the full input file to have been read to
|
||||
be sure of the output file name. So basically, here, a SEGV
|
||||
is guaranteed. OTOH, currently semantic parsers are not
|
||||
supported. */
|
||||
attrsfile_quoted = quotearg_style (c_quoting_style, attrsfile);
|
||||
obstack_fgrow1 (&guard_obstack, GUARDSTR, attrsfile_quoted);
|
||||
}
|
||||
|
||||
if (no_parser_flag)
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user