]> git.saurik.com Git - bison.git/log
bison.git
15 years agodoc: merge HACKING and README-hacking.
Akim Demaille [Thu, 26 Mar 2009 22:36:18 +0000 (23:36 +0100)] 
doc: merge HACKING and README-hacking.

Two files is confusing.
Reported by Alexandre Duret-Lutz.

* README-hacking: Merge into...
* HACKING (Working from the repository): here.

15 years agodoc: update README-hacking.
Akim Demaille [Thu, 26 Mar 2009 22:14:45 +0000 (23:14 +0100)] 
doc: update README-hacking.

* README-hacking: We now use git and git submodules.
Reported by Ralf Wildenhues and Alexandre Duret-Lutz.

15 years agolalr1.cc: avoid GCC 4.3 warnings.
Akim Demaille [Fri, 27 Mar 2009 06:26:24 +0000 (07:26 +0100)] 
lalr1.cc: avoid GCC 4.3 warnings.

GCC 4.3 now warns about "a || b && c" and asks for explicit
parentheses.
Reported by Alexandre Duret-Lutz.
* data/location.cc: Update copyright years.
(Position::operator==): Use parens to make precedence explicit.
Compare lines and columns first, as they are more likely to be
different, and they are faster to compare.

15 years agognulib: update.
Akim Demaille [Fri, 27 Mar 2009 06:23:53 +0000 (07:23 +0100)] 
gnulib: update.

* gnulib: Update to latest.
* src/local.mk (AM_CFLAGS): Move to...
* Makefile.am: here.
* etc/prefix-gnulib-mk (prefix_assignment): Also transform
AM_CFLAGS.

15 years agoComment changes.
Akim Demaille [Wed, 18 Feb 2009 16:57:00 +0000 (17:57 +0100)] 
Comment changes.

15 years agoShare b4_yytranslate_define.
Akim Demaille [Wed, 31 Dec 2008 16:21:56 +0000 (17:21 +0100)] 
Share b4_yytranslate_define.

* data/lalr1.cc (b4_yytranslate_define): Move to...
* data/c++.m4: here.

15 years agoUse locations in the variant example.
Akim Demaille [Wed, 31 Dec 2008 15:13:04 +0000 (16:13 +0100)] 
Use locations in the variant example.

Yes, this obfuscates the point of this example, variants only.  But glr.cc
cannot work (yet?) without locations.  This change makes it easier to use
this example with glr.cc.

* examples/variant.yy (assert): %define it.
(locations): Request them.
(yylex): Bind the location to the stage.

15 years agoDub make_TOKEN as a public type interface.
Akim Demaille [Wed, 31 Dec 2008 15:08:02 +0000 (16:08 +0100)] 
Dub make_TOKEN as a public type interface.

* data/c++.m4 (b4_symbol_constructor_declare)
(b4_symbol_constructor_define): New empty stubs.
(b4_public_types_declare, b4_public_types_define): Use them.
* data/lalr1.cc (b4_symbol_constructor_declare)
(b4_symbol_constructor_declare_)
(b4_symbol_constructor_define_, b4_symbol_constructor_define):
Move to...
* data/variant.hh: here.
Remove the "b4_variant_if" parts, as variant.hh is loaded only if
needed.
* data/lalr1.cc: No longer invoke b4_symbol_constructor_define and
b4_symbol_constructor_declare, as it is now done by
b4_public_types_define and b4_public_types_declare.

15 years agoCoding style changes.
Akim Demaille [Wed, 31 Dec 2008 14:12:50 +0000 (15:12 +0100)] 
Coding style changes.

* data/lalr1.cc (b4_symbol_constructor_declaration_)
(b4_symbol_constructor_declarations)
(b4_symbol_constructor_definition_)
(b4_symbol_constructor_definitions)
(b4_yytranslate_definition): Rename as...
(b4_symbol_constructor_declare_)
(b4_symbol_constructor_declare)
(b4_symbol_constructor_define_)
(b4_symbol_constructor_define)
(b4_yytranslate_define): these.
* data/variant.hh (b4_variant_definition): Rename as...
(b4_variant_define): this.

15 years agoFactor b4_assert_if, b4_lex_symbol_if, and b4_variant_if.
Akim Demaille [Wed, 31 Dec 2008 14:07:48 +0000 (15:07 +0100)] 
Factor b4_assert_if, b4_lex_symbol_if, and b4_variant_if.

* data/bison.m4 (b4_percent_define_if_define): New.
* data/c++.m4 (b4_variant_if): Move to...
* data/bison.m4: Here, using b4_percent_define_if_define.
* data/lalr1.cc (b4_assert_if, b4_lex_symbol_if): Move to...
* data/bison.m4: Here, using b4_percent_define_if_define.

15 years agoDub symbol_type_base as a public type.
Akim Demaille [Wed, 31 Dec 2008 13:29:25 +0000 (14:29 +0100)] 
Dub symbol_type_base as a public type.

* data/c++.m4 (b4_public_types_declare): Now define
symbol_type_base and symbol_type.
(b4_public_types_define): New.
In both cases, the definitions are taken verbatim from lalr1.cc.
* data/lalr1.cc: Adjust.

15 years agob4_public_types_declare.
Akim Demaille [Wed, 31 Dec 2008 12:46:02 +0000 (13:46 +0100)] 
b4_public_types_declare.

* data/c++.m4 (b4_public_types_declare): New.
* data/glr.cc, data/lalr1.cc: Use it.

15 years agob4_semantic_type_declare.
Akim Demaille [Wed, 31 Dec 2008 11:44:58 +0000 (12:44 +0100)] 
b4_semantic_type_declare.

* data/c++.m4 (b4_semantic_type_declare): New.
Factors and generalizes what was in glr.cc and lalr1.cc.
* data/variant.hh (b4_semantic_type_declare): Redefine it for
variants.
* data/lalr1.cc, data/glr.cc: Use it.

15 years agoUpgrade gnulib.
Akim Demaille [Wed, 25 Feb 2009 23:09:31 +0000 (00:09 +0100)] 
Upgrade gnulib.

* gnulib: Upgrade from master.
* lib/.cvsignore, lib/.gitignore, m4/.cvsignore, m4/.gitignore:
Regen.

15 years agoRemove useless arguments.
Akim Demaille [Wed, 18 Feb 2009 15:27:14 +0000 (16:27 +0100)] 
Remove useless arguments.

* data/glr.c (yy_reduce_print): $$ and @$ are not used and not
relevant.

15 years agoComment changes.
Akim Demaille [Fri, 2 Jan 2009 09:28:56 +0000 (10:28 +0100)] 
Comment changes.

* data/lalr1.cc: here.

15 years agoFix glr.cc's debug level handling.
Akim Demaille [Wed, 31 Dec 2008 16:23:35 +0000 (17:23 +0100)] 
Fix glr.cc's debug level handling.

* data/glr.cc (yydebug_): Remove, as it is actually yydebug from
glr.c which is used.
(debug_level, set_debug_level): Adjust.

15 years agoCopyright years.
Akim Demaille [Wed, 31 Dec 2008 15:55:12 +0000 (16:55 +0100)] 
Copyright years.

* data/glr.c: Add 2007 and 2008 here, consistenly with the comments.

15 years agoStyle changes.
Akim Demaille [Wed, 31 Dec 2008 15:12:02 +0000 (16:12 +0100)] 
Style changes.

* etc/bench.pl.in (generate_grammar_list): Consitently use
location_type, not yy::location.

15 years agoComment change.
Akim Demaille [Wed, 31 Dec 2008 12:48:40 +0000 (13:48 +0100)] 
Comment change.

* data/lalr1.cc: here.

15 years agoMake yyparser::error public.
Akim Demaille [Wed, 31 Dec 2008 11:35:32 +0000 (12:35 +0100)] 
Make yyparser::error public.

* data/lalr1.cc: here.
There is no good reason to keep it private (and it is convenient
to use it from the scanner for instance).  It is already public in
glr.cc.

15 years agoComment changes.
Akim Demaille [Wed, 31 Dec 2008 11:26:00 +0000 (12:26 +0100)] 
Comment changes.

* data/glr.cc: here.

15 years agoRemove trailing blanks.
Akim Demaille [Wed, 31 Dec 2008 10:42:31 +0000 (11:42 +0100)] 
Remove trailing blanks.

The epilogue has its own ending \n, no need to add another.

* data/glr.c, data/lalr1.java, data/yacc.c: dnl when outputing the
epilogue.
* data/glr.cc: dnl when extending the epilogue.
Remove stray "private:".

15 years agoUse b4_c_modern.
Akim Demaille [Wed, 18 Feb 2009 16:54:39 +0000 (17:54 +0100)] 
Use b4_c_modern.

* data/c.m4 (b4_c_function_decl): Here.

15 years agoComment changes.
Akim Demaille [Wed, 31 Dec 2008 10:22:32 +0000 (11:22 +0100)] 
Comment changes.

* data/lalr1.cc: here.

15 years agoExtract variant.hh
Akim Demaille [Tue, 23 Dec 2008 09:44:53 +0000 (10:44 +0100)] 
Extract variant.hh

* data/variant.hh: New, extracted from...
* data/lalr1.cc: here.
Adjust.
* data/local.mk: Adjust.

15 years agoExtract stack.hh from lalr1.cc.
Akim Demaille [Tue, 23 Dec 2008 07:06:13 +0000 (08:06 +0100)] 
Extract stack.hh from lalr1.cc.

* data/stack.hh: New.
* data/lalr1.cc: Extract from here.
* data/local.mk: Adjust.

15 years agoAdd reminder about uploading public key to keys.gnupg.net.
Joel E. Denny [Tue, 3 Feb 2009 08:08:32 +0000 (03:08 -0500)] 
Add reminder about uploading public key to keys.gnupg.net.

* HACKING (Release Procedure): Here.

15 years agoForce a large alignment of a variant structure.
Samuel Tardieu [Mon, 24 Nov 2008 14:27:49 +0000 (15:27 +0100)] 
Force a large alignment of a variant structure.

This is a temporary band-aid until Bison gets proper alignment handling.
We need it on ARM.

* data/lalr1.cc (variant): Declare the buffer as a union to force
the same alignment as "long double".

15 years agoUpdate NEWS.
Akim Demaille [Wed, 28 Jan 2009 14:45:00 +0000 (15:45 +0100)] 
Update NEWS.

* NEWS: Import changes in 2.4.1 and 2.4.2.

15 years agoReformat NEWS.
Akim Demaille [Tue, 4 Nov 2008 21:18:28 +0000 (22:18 +0100)] 
Reformat NEWS.

* NEWS: Use more outline-mode markup.
Suggested by Jim Meyering.

15 years agoFix grep portability issues.
Akim Demaille [Thu, 8 Jan 2009 08:41:21 +0000 (09:41 +0100)] 
Fix grep portability issues.

Grep on Solaris does not support -q.
Reported by Summum Bonum.

* NEWS: Add a stub for 2.4.2.
* THANKS: Add Summum Bonum.
* tests/atlocal.in (EGREP): New.
(CC, CXX, XSLTPROC): Make it possible to override them via
envvars.
* tests/java.at: Use $EGREP instead of egrep.
Use AT_CHECK's ignore instead of grep's -q.

16 years agoPass the token type to yysyntax_error.
Akim Demaille [Thu, 11 Dec 2008 08:48:49 +0000 (09:48 +0100)] 
Pass the token type to yysyntax_error.

* data/yacc.c (yysyntax_error): Take the transated token instead
of the raw number.
Adjust callers.
* TODO: Update.

16 years agoFormatting changes.
Akim Demaille [Thu, 11 Dec 2008 08:43:19 +0000 (09:43 +0100)] 
Formatting changes.

* data/glr.c: Formatting changes.

16 years agoPropagate i18n changes into glr.c.
Akim Demaille [Thu, 11 Dec 2008 08:37:40 +0000 (09:37 +0100)] 
Propagate i18n changes into glr.c.

* TODO: Update.
* data/glr.c (yyreportSyntaxError): Use "switch" instead of
building the error message format dynamically.
* data/lalr1.java: Formatting changes.

16 years agoUse testsuite -C.
Akim Demaille [Thu, 11 Dec 2008 00:00:53 +0000 (01:00 +0100)] 
Use testsuite -C.

* tests/local.mk: Replace "cd && testsuite" by "testsuite -C".
Solves problems when top_srcdir is an absolute path.
Suggested by Eric Blake.
* configure.ac: Require Autoconf 2.62.

16 years agoSimplify the i18n of the error messages.
Akim Demaille [Wed, 10 Dec 2008 23:59:13 +0000 (00:59 +0100)] 
Simplify the i18n of the error messages.

* data/lalr1.cc: Comment changes.
* data/yacc.c (yysyntax_error): Rewrite, using a switch as in
lalr1.cc instead of building dynamically the format string.

16 years agoReally add autoconf as a submodule.
Akim Demaille [Mon, 8 Dec 2008 12:58:37 +0000 (13:58 +0100)] 
Really add autoconf as a submodule.

* submodules/autoconf: New.

16 years agoFix portability issue in the test suite.
Akim Demaille [Mon, 8 Dec 2008 09:26:38 +0000 (10:26 +0100)] 
Fix portability issue in the test suite.

* tests/local.at (AT_MATCHES_CHECK): New.
Based on Perl instead of Sed.  Sed has too many portability
pitfalls, not ever Sed is GNU Sed.
* tests/actions.at (Fix user actions without a trailing semicolon):
Use it.

16 years agoUpdate data/README.
Akim Demaille [Mon, 8 Dec 2008 08:16:08 +0000 (09:16 +0100)] 
Update data/README.

* data/README: Document glr.cc, lalr1.java, m4sugar and xslt.

16 years agoInstall autoconf as a submodule to get m4sugar.
Akim Demaille [Sun, 7 Dec 2008 21:14:11 +0000 (22:14 +0100)] 
Install autoconf as a submodule to get m4sugar.

* .gitmodules: Add submodules/autoconf.
* data/m4sugar/foreach.m4, data/m4sugar/m4sugar.m4: Now links into
submodules/autoconf.

16 years agoTest token.prefix in all the skeletons.
Akim Demaille [Sun, 7 Dec 2008 12:58:06 +0000 (13:58 +0100)] 
Test token.prefix in all the skeletons.

* data/java.m4 (b4_token_enum): Use the token.prefix.
* tests/local.at (AT_BISON_OPTION_PUSHDEFS): Define AT_TOKEN_PREFIX.
* tests/calc.at (_AT_DATA_CALC_Y): Use it.
Add checks for yacc.c, glr.c, lalr1.cc and glr.cc.
* tests/java.at: Comment changes.
(AT_CHECK_JAVA_MINIMAL): Define the END token.
(Java parser class and package names): Add token.prefix check.

16 years agoFix regeneration of atconfig.
Akim Demaille [Sun, 7 Dec 2008 12:44:05 +0000 (13:44 +0100)] 
Fix regeneration of atconfig.

* tests/local.mk (tests/atconfig): The rule was incorrect, but
remove it: now that there is no tests/Makefile.am, the top-level
Makefile properly updates atconfig when needed.

16 years agoImplement the FIXME that ends an user action with a semicolon
Di-an Jan [Mon, 8 Dec 2008 05:54:45 +0000 (21:54 -0800)] 
Implement the FIXME that ends an user action with a semicolon
if it seems necessary.

* src/scan-code.l (flex rules section): Flag cpp directive from
any `#' to the first unescaped end-of-line.  Semicolon is not
needed after `;', `{', '}', or cpp directives and is needed after
any other token (whitespaces and comments have no effect).
* tests/actions.at (Fix user actions without a trailing semicolon):
New test.
* tests/input.at (AT_CHECK_UNUSED_VALUES): Add semicolons to
to make user actions complete statements.
Adjust column numbers in error messages.
* tests/regression.at (Fix user actions without a trailing semicolon):
Remove.  Covered by new test.

16 years agoUpdate gnulib.
Akim Demaille [Fri, 5 Dec 2008 10:19:20 +0000 (11:19 +0100)] 
Update gnulib.

* gnulib: Update from master.

16 years agoAvoid compiler warning.
Eric Blake [Fri, 5 Dec 2008 23:16:15 +0000 (16:16 -0700)] 
Avoid compiler warning.

* src/output.c (muscle_insert_item_number_table): Delete unused
function.

Signed-off-by: Eric Blake <ebb9@byu.net>
16 years agoBuild testsuite with newer autoconf.
Eric Blake [Tue, 2 Dec 2008 17:59:17 +0000 (10:59 -0700)] 
Build testsuite with newer autoconf.

* tests/output.at (m4_expand): Don't override in newer autoconf,
where the underlying implementation changed.
* tests/cxx-type.at (_AT_RESOLVED_GLR_OUTPUT)
(_AT_RESOLVED_GLR_OUTPUT_WITH_LOC, _AT_AMBIG_GLR_OUTPUT)
(_AT_AMBIG_GLR_OUTPUT_WITH_LOC, _AT_GLR_STDERR)
(_AT_VERBOSE_GLR_STDERR): Expand to double-quoted strings,
since some of them contain unbalanced ')'.

Signed-off-by: Eric Blake <ebb9@byu.net>
16 years agoFixes in the ChangeLog.
Akim Demaille [Mon, 1 Dec 2008 21:56:43 +0000 (22:56 +0100)] 
Fixes in the ChangeLog.

* ChangeLog: Fix typos.
Formatting changes.

16 years agoUse b4_symbol for printers and destructors everywhere.
Akim Demaille [Fri, 28 Nov 2008 21:03:29 +0000 (22:03 +0100)] 
Use b4_symbol for printers and destructors everywhere.

* data/bison.m4 (b4_symbol_action_location): New.
* data/c.m4 (b4_symbol_actions): Remove.
Adjust all callers to use by b4_symbol_foreach and the corresponding
b4_symbol_printer/destructor macro.
* data/glr.cc: Adjust.
* data/lalr1.java: Adjust the %destructor sanity check.
* src/output.c (symbol_code_props_output): Remove, we no longer
need the b4_symbol_printers/destructors tables.

16 years agoUse b4_symbol_case_.
Akim Demaille [Fri, 28 Nov 2008 20:26:09 +0000 (21:26 +0100)] 
Use b4_symbol_case_.

* data/lalr1.cc, data/bison.m4 (b4_symbol_action): Use
b4_symbol_case_.

16 years agoMove b4_symbol based macro to bison.m4.
Akim Demaille [Fri, 28 Nov 2008 20:09:54 +0000 (21:09 +0100)] 
Move b4_symbol based macro to bison.m4.

* data/lalr1.cc (b4_symbol_, b4_symbol, b4_symbol_if)
(b4_symbol_action, b4_symbol_destructor, b4_symbol_printer)
(b4_symbol_case_, b4_symbol_foreach, b4_type_action_)
(b4_type_foreach): Move to...
* data/bison.m4: Here.
* data/lalr1.cc (b4_symbol_action): Specialize for C++: use
b4_symbol_value_template instead of b4_symbol_value.

s b4_symbols in bison.m4

16 years agob4_symbol/type_foreach.
Akim Demaille [Thu, 27 Nov 2008 21:20:11 +0000 (22:20 +0100)] 
b4_symbol/type_foreach.

* data/lalr1.cc (b4_symbol_foreach, b4_type_foreach): New.
Use them.

16 years agoUse the symbol properties to output the printer/destructor for lalr1.cc.
Akim Demaille [Thu, 27 Nov 2008 20:47:11 +0000 (21:47 +0100)] 
Use the symbol properties to output the printer/destructor for lalr1.cc.

Instead of defining complex list of tuples to define various properties of
the symbols, we now prefer to define symbols as "structs" in m4: using the
symbol key (its number), and the property name, b4_symbol gives it value.
Use this to handle destructors and printers.

* src/output.c (CODE_PROP): New.
(prepare_symbol_definitions): Use it to define the printer and
destructor related attributes of the symbols.
* data/lalr1.cc (b4_symbol_actions): Rename as...
(b4_symbol_action): this.
Use b4_symbol instead of 6 arguments.
(b4_symbol_printer, b4_symbol_destructor): New.
Use them instead of b4_symbol_actions.

16 years agoAvoid capturing variables too easily.
Akim Demaille [Thu, 27 Nov 2008 20:45:58 +0000 (21:45 +0100)] 
Avoid capturing variables too easily.

* src/muscle_tab.h (MUSCLE_INSERT_BOOL, MUSCLE_OBSTACK_SGROW): Use
v__ and p__ instead of v and p.

16 years agoRemove spurious empty line before syncline.
Akim Demaille [Thu, 27 Nov 2008 20:42:08 +0000 (21:42 +0100)] 
Remove spurious empty line before syncline.

* data/bison.m4 (b4_syncline): Don't output an empty line before
the output.

16 years agoConvert lib/Makefile.am into lib/local.mk.
Akim Demaille [Wed, 19 Nov 2008 07:24:47 +0000 (08:24 +0100)] 
Convert lib/Makefile.am into lib/local.mk.

The real problem is rather gnulib.mk, which itself is extracted from a
Makefile.am that gnulib expects to the "recursive".  The tool
prefix-gnulib-mk converts such a gnulib.mk to be non-recursive.  Also,
some AC_SUBST variables need to be adjusted.

* etc/prefix-gnulib-mk: New.
* bootstrap (slurp): Use it to convert further gnulib.mk.
* lib/Makefile.am: Rename as...
* lib/local.mk: this.
Adjust to be prefixed.
* Makefile.am, configure.ac: Adjust.
* src/local.mk (AM_CPPFLAGS): Extend it, don't define it.

16 years agos/_FLAGS/FLAGS/.
Akim Demaille [Wed, 26 Nov 2008 09:29:37 +0000 (10:29 +0100)] 
s/_FLAGS/FLAGS/.

* tests/local.mk (TESTSUITE_FLAGS, AUTOTEST_FLAGS): Rename as...
(TESTSUITEFLAGS, AUTOTESTFLAGS): these to compy with the GCS.
Reported by Eric Blake.

16 years agoUse b4_parser_tables_define in glr.cc.
Akim Demaille [Tue, 25 Nov 2008 21:01:53 +0000 (22:01 +0100)] 
Use b4_parser_tables_define in glr.cc.

* data/glr.c: Use b4_parser_tables_define instead of defining the
(deterministic integral) tables by hand.

16 years agoUse b4_parser_tables_define in Java.
Akim Demaille [Tue, 25 Nov 2008 20:58:06 +0000 (21:58 +0100)] 
Use b4_parser_tables_define in Java.

* data/java.m4 (b4_typed_parser_table): Rename as...
(b4_typed_parser_table_define): this, for consistency.
Accept a comment as $4.
Move $2 into yy*_.
(b4_integral_parser_table): Rename as...
(b4_integral_parser_table_define): this.
* data/lalr1.java: Adjust all uses.
Use b4_parser_tables_define instead of generation by hand.

16 years agoPrepare the convergence bw C style and Java table generation.
Akim Demaille [Tue, 25 Nov 2008 20:38:45 +0000 (21:38 +0100)] 
Prepare the convergence bw C style and Java table generation.

* data/bison.m4 (b4_tables_map, b4_tables_declare)
(b4_tables_define): Rename as...
(b4_integral_parser_tables_map, b4_parser_tables_declare)
(b4_parser_tables_define): these.
* data/c.m4 (b4_table_define): Rename as...
(b4_integral_parser_table_define): this.
* data/lalr1.cc: Adjust.
(b4_table_define, b4_table_declare): Rename as...
(b4_integral_parser_table_define)
(b4_integral_parser_table_declare): these.
(yyrline_): Move the comment where it is actually used.
* data/yacc.c: Adjust.
(yyrline): Use b4_integral_parser_table_define.

16 years agoRegen.
Akim Demaille [Tue, 25 Nov 2008 20:30:08 +0000 (21:30 +0100)] 
Regen.

* src/parse-gram.h, src/parse-gram.c: Regen.

16 years agoFactor the generation of the (integral) tables bw yacc.c and lalr1.cc.
Akim Demaille [Tue, 25 Nov 2008 20:25:48 +0000 (21:25 +0100)] 
Factor the generation of the (integral) tables bw yacc.c and lalr1.cc.

* data/lalr1.cc (b4_tables_map): Move to...
* data/bison.m4: here.
Update the comment for yytable during the flight.
(b4_tables_declare, b4_tables_define): New.
* data/lalr1.cc: Use them.
* data/c.m4 (b4_table_define): New.
* data/yacc.c: Use b4_tables_define instead of output the tables
by hand.
* tests/regression.at (Web2c Actions): Adjust the expected output,
the order of the tables changed.

16 years agoGet rid of (yy)rhs and (yy)prhs.
Akim Demaille [Tue, 25 Nov 2008 20:09:20 +0000 (21:09 +0100)] 
Get rid of (yy)rhs and (yy)prhs.

These tables are no longer needed in the parsers, and they don't seem to
be useful.  They are not documented either.

* src/output.c (prepare_rules): Get rid of rhs and prhs.
Adjust the computation of (yy)r2.

16 years agoRule length is unsigned.
Akim Demaille [Tue, 25 Nov 2008 20:08:42 +0000 (21:08 +0100)] 
Rule length is unsigned.

* src/gram.h, src/gram.c (rule_rhs_length): Return a size_t.

16 years agoGet rid of lalr1-split.cc.
Akim Demaille [Tue, 25 Nov 2008 19:57:58 +0000 (20:57 +0100)] 
Get rid of lalr1-split.cc.

It was no longer maintainer.

* data/lalr1-split.cc: Remove.
* etc/bench.pl.in (bench_fusion_parser): Remove.
Adjust.

16 years agoUse yy* consistently.
Akim Demaille [Tue, 25 Nov 2008 19:55:01 +0000 (20:55 +0100)] 
Use yy* consistently.

* data/glr.c: Now that yyrhs no longer exists as a global
variable, rename local "rhs" variables into "yyrhs" for
consistency.

16 years agoGet rid of yyrhs and yyprhs in glr.c.
Akim Demaille [Tue, 25 Nov 2008 19:51:19 +0000 (20:51 +0100)] 
Get rid of yyrhs and yyprhs in glr.c.

* data/glr.c (yyrhs, yyprhs): Remove.
Instead, use the state stack and yystos.

16 years agoFlag glr tests.
Akim Demaille [Tue, 25 Nov 2008 19:50:28 +0000 (20:50 +0100)] 
Flag glr tests.

* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): If glr, declare it
as an Autotest keyword.

16 years agoPrefer TESTSUITE_FLAGS.
Akim Demaille [Tue, 25 Nov 2008 19:49:25 +0000 (20:49 +0100)] 
Prefer TESTSUITE_FLAGS.

TESTSUITEFLAGS is barely readable.

* tests/local.mk (TESTSUITE_FLAGS): Default to $(TESTSUITEFLAGS)
for backward compatibility.
Use the former instead of the latter.

16 years agoGet rid of yyrhs and yyprhs in larl1.java.
Akim Demaille [Mon, 24 Nov 2008 09:53:18 +0000 (10:53 +0100)] 
Get rid of yyrhs and yyprhs in larl1.java.

* data/lalr1.java (yyrhs_, yyprhs_): Remove.
(yy_reduce_print): Rather, use yystos_ and the state stack.

16 years agoFormatting changes.
Akim Demaille [Sun, 23 Nov 2008 07:47:51 +0000 (08:47 +0100)] 
Formatting changes.

16 years agoGet rid of yyrhs and yyprhs in yacc.c.
Akim Demaille [Sun, 23 Nov 2008 07:39:17 +0000 (08:39 +0100)] 
Get rid of yyrhs and yyprhs in yacc.c.

They were used to get the symbol types, given a rule number,  when
displaying the top of the stack before a reduction.  But the symbol type
is available from the state stack.  This has two be benefits: two tables
less in the parser (making it smaller), and a more consistent use of the
three stacks which will help to fuse them.

* data/yacc.c (yyprhs, yyrhs): Remove.
(YY_REDUCE_PRINT): Pass yyssp to yy_reduce_print.
(yy_reduce_print): Take yyssp as argument.
Use it, together with yystos, to get the symbol type.
* tests/regression.at (Web2c Report): Remove these tables from the
expected output.

16 years agob4_tables_map.
Akim Demaille [Sat, 22 Nov 2008 21:22:43 +0000 (22:22 +0100)] 
b4_tables_map.

The point is to factor the generation of the tables across skeletons.
This is language dependant.

* data/c.m4 (b4_comment_): New.
Should be usable to define how to generate tables independently of
the language.
(b4_c_comment): New.
(b4_comment): Bounce to b4_c_comment.
Now support $2 = [PREFIX] for indentation.
* data/lalr1.cc (b4_table_declare): Don't output a comment if
there is no comment.
Indent it properly when there is one.
Output the ending semicolon.
(b4_table_define): Space changes.
Output the ending semicolon.
(b4_tables_map): New.
Use it twice instead of declaring and defining the (integral)
tables by hand.

16 years agob4_table_declare.
Akim Demaille [Sat, 22 Nov 2008 20:48:33 +0000 (21:48 +0100)] 
b4_table_declare.

* data/lalr1.cc (b4_table_declare): New.
Use it to declare the tables defined with b4_table_define.
(b4_table_define): Declare a third arg to match b4_table_declare
signature.
Move all the comments around invocations of b4_table_define into
the invocations itselves.
Move things around to have the order for declarations and
definitions.

16 years agoFormatting changes.
Akim Demaille [Sat, 22 Nov 2008 20:47:17 +0000 (21:47 +0100)] 
Formatting changes.

* data/lalr1.java: here.

16 years agob4_args is more general than only C++.
Akim Demaille [Fri, 21 Nov 2008 20:41:47 +0000 (21:41 +0100)] 
b4_args is more general than only C++.

* data/lalr1.cc (b4_args, _b4_args): Move to...
* data/bison.m4: here.

16 years agoImplement no-XXX arguments for --warnings, --report, --trace.
Di-an Jan [Fri, 21 Nov 2008 21:09:16 +0000 (13:09 -0800)] 
Implement no-XXX arguments for --warnings, --report, --trace.

* src/getargs.c (flags_argmatch): Handles no-XXX.
Fix typo in doxygen comment.

16 years agoDisplay the changes in cross-options.texi.
Akim Demaille [Fri, 21 Nov 2008 20:21:52 +0000 (21:21 +0100)] 
Display the changes in cross-options.texi.

* build-aux/cross-options.pl ($sep): New, to separate items.
* doc/local.mk ($(CROSS_OPTIONS_TEXI)): Use diff to display the
changes.

16 years ago Improves options in the manual.
Di-an Jan [Thu, 20 Nov 2008 20:36:30 +0000 (12:36 -0800)] 
Improves options in the manual.
* doc/bison.texinfo (-g, -x): Add space before argument.
(Option Cross Key): Implement FIXME: listing directives also.
* build-aux/cross-options.pl:  Read from <STDIN> rather than <>.
(Short Option): Special case -d.  Put arguments inside @option.
(Bison Directive): Add column, automatically extracted from
src/scan-gram.l (actual name passed as the first argument)
with special case for %define.
* doc/local.mk (doc/cross-options.texi): Pass src/scan-gram.l
to build-aux/cross-options.pl.
* src/getargs.c (usage): Document limitations of cross-options.pl.
* src/scan-gram.l: Likewise.

16 years agoFix unexpanded macros in GLR defines file.
Joel E. Denny [Wed, 19 Nov 2008 04:46:50 +0000 (23:46 -0500)] 
Fix unexpanded macros in GLR defines file.

Reported by Csaba Raduly at
<http://lists.gnu.org/archive/html/bug-bison/2008-11/msg00048.html>.
* THANKS (Csaba Raduly): Add.
* data/glr.c: Fix overquoting on b4_prefix for yylval and yylloc.
* tests/calc.at (_AT_DATA_CALC_Y): If %defines is specified, generate
lexer in a separate module that includes the defines file.
(AT_CHECK_CALC): From AT_FULL_COMPILE, request compilation of lexer
source.
* tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Push AT_DEFINES_IF.
Adjust AT_LOC and AT_VAL to use AT_NAME_PREFIX.
(AT_BISON_OPTION_POPDEFS): Pop AT_DEFINES_IF.
(AT_DATA_SOURCE_PROLOGUE): New.
(AT_DATA_GRAMMAR_PROLOGUE): Use AT_DATA_SOURCE_PROLOGUE.
(AT_DATA_SOURCE): New.
(AT_FULL_COMPILE): Extend to support an additional source file.

16 years agoMore TODO.
Akim Demaille [Tue, 18 Nov 2008 13:35:21 +0000 (14:35 +0100)] 
More TODO.

* TODO: More short term issues.

16 years agoRegen.
Akim Demaille [Mon, 17 Nov 2008 07:49:35 +0000 (08:49 +0100)] 
Regen.

* src/parse-gram.h, src/parse-gram.c: Regen.

16 years agoUse b4_subtract where possible.
Akim Demaille [Mon, 17 Nov 2008 07:48:00 +0000 (08:48 +0100)] 
Use b4_subtract where possible.

* data/lalr1.cc (b4_subtract): Move to...
* data/bison.m4: here.
* data/glr.c (b4_rhs_data): Use it.
* data/yacc.c (b4_rhs_value, b4_rhs_location): Use it.

16 years agoRemove incorrect mode specification.
Akim Demaille [Sun, 16 Nov 2008 19:01:39 +0000 (20:01 +0100)] 
Remove incorrect mode specification.

* data/glr.cc: Don't pretend it's C code.

16 years agoSimplify last patch slightly.
Joel E. Denny [Mon, 17 Nov 2008 15:51:17 +0000 (10:51 -0500)] 
Simplify last patch slightly.

* src/getargs.c (getargs): Here.

16 years agoFix last warning from --enable-gcc-warnings.
Joel E. Denny [Mon, 17 Nov 2008 15:36:28 +0000 (10:36 -0500)] 
Fix last warning from --enable-gcc-warnings.

* src/getargs.c (getargs): Don't assign const address to non-const
pointer.

16 years agoDon't let maintainer-*-check targets force a version update.
Joel E. Denny [Mon, 17 Nov 2008 14:50:11 +0000 (09:50 -0500)] 
Don't let maintainer-*-check targets force a version update.

* cfg.mk (_is-dist-target): Implement.  maintainer-check* was already
handled.

16 years agoFix formatting and content of bison.texinfo menus
Di-an Jan [Mon, 17 Nov 2008 10:07:29 +0000 (11:07 +0100)] 
Fix formatting and content of bison.texinfo menus

* doc/bison.texinfo: Synchronize ``Detail Node Listing''.
Align menus.  Adjust word wrapping.  Use node names for menu names.
(Examples): Don't abbreviate node names.
(LocalWords): Remove abbreviations.
(Copying): Make description a sentence.
(Java Action Features): Remove period to match the rest of menu.

16 years agoHandles several --enable-gcc-warnings.
Di-an Jan [Mon, 17 Nov 2008 10:01:41 +0000 (11:01 +0100)] 
Handles several --enable-gcc-warnings.

* src/getargs.c (command_line_location): Set parameters to void.
* src/output.c (symbol_type_name_cmp): Make static.
(symbols_by_type_name): Set parameters to void.
(symbol_definitions_output): Remove unused parameter.  Rename as...
(prepare_symbol_definitions): this.
(muscles_output): Move symbol_definitions_output to...
(output): here as prepare_symbol_definitions.
* tests/c++.at (AT_CHECK_VARIANTS): Remove unused parameters of main.
(AT_CHECK_NAMESPACE): Make unused parameter lloc unnamed.

16 years agoUse AT_DATA_GRAMMAR for C++ variants compiled tests.
Di-an Jan [Mon, 17 Nov 2008 09:59:49 +0000 (10:59 +0100)] 
Use AT_DATA_GRAMMAR for C++ variants compiled tests.

* tests/c++.at (AT_CHECK_VARIANTS): Fixes tests 198-202.
Use AT_DATA_GRAMMAR instead of AT_DATA for compiled tests.

16 years agoFix ChangeLog.
Akim Demaille [Sun, 16 Nov 2008 18:52:33 +0000 (19:52 +0100)] 
Fix ChangeLog.

16 years agoAdd missing $(EXEEXT).
Akim Demaille [Sun, 16 Nov 2008 18:49:35 +0000 (19:49 +0100)] 
Add missing $(EXEEXT).

* doc/local.mk ($(CROSS_OPTIONS_TEXI)): The target is
"src/bison$(EXEEXT)".
Reported by Di-an Jan.

16 years agoUpdate ignores.
Akim Demaille [Sun, 16 Nov 2008 18:46:16 +0000 (19:46 +0100)] 
Update ignores.

* data/.cvsignore, data/.gitignore, examples/.cvsignore,
* examples/.gitignore:
Remove.
* build-aux/.cvsignore, build-aux/.gitignore, doc/.cvsignore,
* doc/.gitignore, etc/.cvsignore, etc/.gitignore, src/.cvsignore,
* src/.gitignore, tests/.cvsignore, tests/.gitignore:
Remove MAkefile and Makefile.in.

16 years agoUpdate TODO.
Akim Demaille [Sat, 15 Nov 2008 13:56:21 +0000 (14:56 +0100)] 
Update TODO.

* TODO: Update.

16 years agoFormatting changes.
Akim Demaille [Fri, 24 Oct 2008 01:05:27 +0000 (20:05 -0500)] 
Formatting changes.

* tests/input.at: here.

16 years agoRemove duplicate header inclusion.
Akim Demaille [Fri, 24 Oct 2008 01:02:52 +0000 (20:02 -0500)] 
Remove duplicate header inclusion.

* src/LR0.c: here.

16 years agoRegen.
Akim Demaille [Sat, 15 Nov 2008 13:42:37 +0000 (14:42 +0100)] 
Regen.

* src/parse-gram.h, src/parse-gram.c: Regen.

16 years agoFixes.
Akim Demaille [Sat, 15 Nov 2008 13:41:58 +0000 (14:41 +0100)] 
Fixes.

16 years agoSupport parametric types.
Akim Demaille [Fri, 24 Oct 2008 01:01:48 +0000 (20:01 -0500)] 
Support parametric types.

There are two issues to handle: first scanning nested angle bracket pairs
to support types such as std::pair< std::string, std::list<std::string> > >.

Another issue is to address idiosyncracies of C++: do not glue two closing
angle brackets together (otherwise it's operator>>), and avoid sticking
blindly a TYPE to the opening <, as it can result in '<:' which is a
digraph for '['.

* src/scan-gram.l (brace_level): Rename as...
(nesting): this.
(SC_TAG): New.
Implement support for complex tags.
(tag): Accept \n, but not <.
* data/lalr1.cc (b4_symbol_value, b4_symbol_value_template)
(b4_symbol_variant): Leave space around types as parameters.
* examples/variant.yy: Use nested template types and leading ::.
* src/parse-gram.y (TYPE, TYPE_TAG_ANY, TYPE_TAG_NONE, type.opt):
Rename as...
(TAG, TAG_ANY, TAG_NONE, tag.opt): these.
* tests/c++.at: Test parametric types.

16 years agoTest token.prefix.
Akim Demaille [Fri, 10 Oct 2008 15:04:23 +0000 (17:04 +0200)] 
Test token.prefix.

This is not sufficient, but we test at least that the make_SYMBOL
interface is not affected by token.prefix.  A more general test
will be implemented when the support of token.prefix is generalized
to more skeletons.

* tests/c++.at: One more variant test, using token.prefix.