Pascal Bart [Fri, 31 Aug 2001 18:22:54 +0000 (18:22 +0000)]
* src/output.c (prepare): Delete insertion of previous muscles,
and insert the `prefix' muscles.
* src/macrotab.c (macro_init): Likewise.
(macro_init): Initialization prefix directive by `yy'.
* src/bison.simple: Substitute all %%yylex, %%yychar, %%yylval,
%%yydebug, %%yyerror, %%yynerrs and %%yyparse by yylex, yychar,
yylval, yydebug, yyerror, yynerrs and yyparse.
New directive `#define' to substitute yydebug, ... with option
name_prefix.
Pascal Bart [Fri, 31 Aug 2001 08:00:56 +0000 (08:00 +0000)]
* src/reader.c (reader): Delete obsolete call to function
output_trailers and output_headers.
* src/output.h: Remove obsolete functions prototypes of output_headers
and output_trailers.
Pascal Bart [Tue, 28 Aug 2001 18:35:33 +0000 (18:35 +0000)]
* src/output.c (output_definitions): New function, which copies
attrs_obstack in the '%%definitions' directive.
* src/bison.simple: Add `%%definitions'.
Robert Anisko [Mon, 27 Aug 2001 14:55:39 +0000 (14:55 +0000)]
* src/output.c (output): Remove the initialization of the macro
obstack. It was done too late here.
* src/reader.c (parse_macro_decl): Fix. Use of the macro obstack was
completely wrong.
(reader): Initialize the macro obstack here, since we need it to grow
'%define' directives.
* src/reader.h: Declare the macro obstack as extern.
Robert Anisko [Sat, 25 Aug 2001 15:13:42 +0000 (15:13 +0000)]
* src/reader.c (reader): Remove calls to 'output_headers' and
'output_trailers'. Remove some C output.
(readgram): Disable a piece of code that was writing a default
definition for 'YYSTYPE'.
(reader_output_yylsp): Remove.
(packsymbols): Output token defintions to a macro.
(copy_definition): Disable C output.
* src/reader.c (parse_macro_decl): New function used to parse macro
declarations.
(copy_string2): Put the body of copy_string into this new function.
Add a parameter to let the caller choose whether he wants to copy the
string delimiters or not.
(copy_string): Be a simple call to copy_string2 with the last argument
bound to true.
(read_declarations): Add case for macro definition.
(copy_identifier): New.
(parse_macro_decl): Read macro identifiers using copy_identifier
rather than lex.
Robert Anisko [Sat, 25 Aug 2001 15:07:59 +0000 (15:07 +0000)]
* src/output.c (prepare): Add prefixed names.
(output_parser): Output semantic actions.
(output_parser): Fix bug on '%%line' directives.
* src/output.c (output_headers): Remove. The C code printed by this
function should now be in the skeletons.
(output_trailers): Remove.
(output): Disable call to 'reader_output_yylsp'.
(output_rule_data): Do not output tables to the table obstack.
* src/output.c: Remove some C dedicated output.
Improve the use of macro and output obstacks.
(output_defines): Remove.
* src/output.c (output_token_translations): Associate 'translate'
table with a macro. No output to the table obstack.
(output_gram): Same for 'rhs' and 'prhs'.
(output_stos): Same for 'stos'.
(output_rule_data): Same for 'r1' and 'r2'.
(token_actions): Same for 'defact'.
(goto_actions): Same for 'defgoto'.
(output_base): Same for 'pact' and 'pgoto'.
(output_table): Same for 'table'.
(output_check): Same for 'check'.
* src/output.c (output_table_data): New function.
(output_short_table): Remove.
(output_short_or_char_table): Remove.
* src/output.c (output_parser): Replace most of the skeleton copy code
with something new. Skeletons are now processed character by character
rather than line by line, and Bison looks for '%%' macros. This is the
first step in making Bison's output process (a lot) more flexible.
(output_parser): Use the macro table.
* src/output.c (output_rule_data): Do not output tables to
the table obstack.
* src/reader.c (reader): Remove calls to 'output_headers' and
'output_trailers'. Remove some C output.
(readgram): Disable a piece of code that was writing a default
definition for 'YYSTYPE'.
(reader_output_yylsp): Remove.
(packsymbols): Output token defintions to a macro.
(copy_definition): Disable C output.
* src/output.c (output_headers): Remove. The C code printed by this
function should now be in the skeletons.
(output_trailers): Remove.
(output): Disable call to 'reader_output_yylsp'.
2001-08-18 Robert Anisko <robert.anisko@epita.fr>
* src/output.c: Remove some C dedicated output.
2001-08-18 Robert Anisko <robert.anisko@epita.fr>
* src/output.c (output_defines): Remove.
2001-08-18 Robert Anisko <robert.anisko@epita.fr>
* src/output.c: Improve the use of macro and output obstacks.
2001-08-18 Robert Anisko <robert.anisko@epita.fr>
* src/output.c (output_token_translations): Associate 'translate' table
with a macro. No output to the table obstack.
(output_gram): Same for 'rhs' and 'prhs'.
(output_stos): Same for 'stos'.
(output_rule_data): Same for 'r1' and 'r2'.
(token_actions): Same for 'defact'.
(goto_actions): Same for 'defgoto'.
(output_base): Same for 'pact' and 'pgoto'.
(output_table): Same for 'table'.
(output_check): Same for 'check'.
2001-08-18 Robert Anisko <robert.anisko@epita.fr>
* src/output.c (output_table_data): New function.
(output_short_table): Remove.
(output_short_or_char_table): Remove.
2001-08-17 Robert Anisko <robert.anisko@epita.fr>
* src/main.c (main): Initialize the macro table.
2001-08-17 Robert Anisko <robert.anisko@epita.fr>
* src/output.c (output_parser): Use the macro table.
* src/macrotab.c: New file.
* src/macrotab.h: New file.
2001-08-17 Robert Anisko <robert.anisko@epita.fr>
* lib/xalloc.h (CALLOC, MALLOC, REALLOC): New macros.
2001-08-17 Robert Anisko <robert.anisko@epita.fr>
* lib/hash.c: New file.
* lib/hash.h: New file.
2001-08-16 Robert Anisko <robert.anisko@epita.fr>
* src/reader.c (parse_macro_decl): Read macro identifiers using
copy_identifier rather than lex.
2001-08-16 Robert Anisko <robert.anisko@epita.fr>
* src/reader.c (copy_identifier): New.
2001-08-16 Robert Anisko <robert.anisko@epita.fr>
* src/reader.c (read_declarations): Add case for macro definition.
* src/lex.c (percent_table): Add tok_define.
* src/lex.h: Add tok_define.
2001-08-16 Robert Anisko <robert.anisko@epita.fr>
* src/reader.c (parse_macro_decl): New function used to parse macro
declarations.
(copy_string2): Put the body of copy_string into this new function.
Add a parameter to let the caller choose whether he wants to copy the
string delimiters or not.
(copy_string): Be a simple call to copy_string2 with the last argument
bound to true.
2001-08-15 Robert Anisko <robert.anisko@epita.fr>
* src/output.c (output_parser): Replace most of the skeleton copy code
with something new. Skeletons are now processed character by character
rather than line by line, and Bison looks for '%%' macros. This is the
first step in making Bison's output process (a lot) more flexible.
Marc Autret [Tue, 14 Aug 2001 11:28:48 +0000 (11:28 +0000)]
Turn on %{source,header}_extension features.
* src/lex.c (percent_table): Un-CPP out header_extension and
source_extension.
* src/files.c (compute_exts_from_gf): Compare pointers with NULL.
(compute_exts_from_src): Remove conditions. It restores priorities
between options.
Akim Demaille [Mon, 6 Aug 2001 09:22:33 +0000 (09:22 +0000)]
Automaton VCG graph output.
Using option ``-g'' or long option ``--graph'', you can generate
a gram_filename.vcg file containing a VCG description of the LALR (1)
automaton of your grammar.
* src/main.c: Call to print_graph() function.
* src/getargs.h: Update.
* src/getargs.c (options): Update to catch `-g' and `--graph' options.
(graph_flag): New flag.
(longopts): Update.
(getargs): Add case `g'.
* src/files.c (graph_obstack): New obstack struct.
(open_files): Initialize new obstack.
(output_files): Saves graph_obstack if required.
* src/files.h (graph_obstack): New extern declaration.
* src/Makefile.am: Add new source files.
Akim Demaille [Mon, 6 Aug 2001 08:51:41 +0000 (08:51 +0000)]
Add of %source_extension and %header_extension which specify
the source or/and the header output file extension.
* src/files.c (compute_base_names): Remove initialisation of
src_extension and header_extension.
(compute_exts_from_gf): Update.
(compute_exts_from_src): Update.
(output_files): Update.
* src/reader.c (parse_header_extension_decl): New.
(parse_source_extension_decl): New.
(read_declarations): New case statements for the new tokens.
* src/lex.c (percent_table): Add entries for %source_extension
and %header_extension.
* src/lex.h (token_e): New tokens tok_hdrext and tok_srcext.