Commit Graph

2337 Commits

Author SHA1 Message Date
Akim Demaille 882f02ed83 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.
2009-03-02 16:30:57 +01:00
Akim Demaille 0623bacc05 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.
2009-03-02 16:27:48 +01:00
Akim Demaille 5f5a90dff6 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.
2009-03-02 16:24:21 +01:00
Akim Demaille b47b6ff7fd 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.
2009-03-02 16:20:26 +01:00
Akim Demaille 1d6b689b26 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.
2009-03-02 16:15:28 +01:00
Akim Demaille 4f84717d23 b4_public_types_declare.
* data/c++.m4 (b4_public_types_declare): New.
	* data/glr.cc, data/lalr1.cc: Use it.
2009-03-02 16:12:11 +01:00
Akim Demaille b9e4eb5b72 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.
2009-03-02 16:08:07 +01:00
Akim Demaille 6a6e7f0c65 Upgrade gnulib.
* gnulib: Upgrade from master.
	* lib/.cvsignore, lib/.gitignore, m4/.cvsignore, m4/.gitignore:
	Regen.
2009-02-26 00:12:14 +01:00
Akim Demaille e9e61b0002 Remove useless arguments.
* data/glr.c (yy_reduce_print): $$ and @$ are not used and not
	relevant.
2009-02-25 23:45:46 +01:00
Akim Demaille 3eead995a4 Comment changes.
* data/lalr1.cc: here.
2009-02-25 23:41:40 +01:00
Akim Demaille 87f28efe7e 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.
2009-02-25 23:38:27 +01:00
Akim Demaille 9be2a009c4 Copyright years.
* data/glr.c: Add 2007 and 2008 here, consistenly with the comments.
2009-02-25 23:34:45 +01:00
Akim Demaille 07a6e87d46 Style changes.
* etc/bench.pl.in (generate_grammar_list): Consitently use
	location_type, not yy::location.
2009-02-25 23:31:34 +01:00
Akim Demaille 33c78bd23e Comment change.
* data/lalr1.cc: here.
2009-02-25 23:28:15 +01:00
Akim Demaille 49572920dd 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.
2009-02-19 22:16:19 +01:00
Akim Demaille 88654b47c9 Comment changes.
* data/glr.cc: here.
2009-02-19 22:12:44 +01:00
Akim Demaille 4524c55bcf 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:".
2009-02-19 22:08:08 +01:00
Akim Demaille 6ceccee88d Use b4_c_modern.
* data/c.m4 (b4_c_function_decl): Here.
2009-02-19 22:02:56 +01:00
Akim Demaille 9c6a89660e Comment changes.
* data/lalr1.cc: here.
2009-02-19 21:58:13 +01:00
Akim Demaille 507aa0e2a8 Extract variant.hh
* data/variant.hh: New, extracted from...
	* data/lalr1.cc: here.
	Adjust.
	* data/local.mk: Adjust.
2009-02-19 21:53:58 +01:00
Akim Demaille 51bacae6b5 Extract stack.hh from lalr1.cc.
* data/stack.hh: New.
	* data/lalr1.cc: Extract from here.
	* data/local.mk: Adjust.
2009-02-19 21:49:46 +01:00
Joel E. Denny 06c3084fb5 Add reminder about uploading public key to keys.gnupg.net.
* HACKING (Release Procedure): Here.
2009-02-03 03:14:12 -05:00
Akim Demaille 0ea583d250 Update NEWS.
* NEWS: Import changes in 2.4.1 and 2.4.2.
2009-01-28 15:45:00 +01:00
Akim Demaille 402b123d0c Reformat NEWS.
* NEWS: Use more outline-mode markup.
	Suggested by Jim Meyering.
2009-01-28 15:39:30 +01:00
Akim Demaille 74553c98a2 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.
2009-01-28 15:29:47 +01:00
Akim Demaille 84eedf86fe 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.
2008-12-11 10:47:14 +01:00
Akim Demaille 5860cc8c1c Formatting changes.
* data/glr.c: Formatting changes.
2008-12-11 10:47:10 +01:00
Akim Demaille 2b008529ed 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.
2008-12-11 10:47:06 +01:00
Akim Demaille 2cd1af957a 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.
2008-12-11 10:46:25 +01:00
Akim Demaille eeb2942237 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.
2008-12-11 10:45:52 +01:00
Akim Demaille 6617622c9a 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.
2008-12-08 10:34:01 +01:00
Akim Demaille 2ca1136c7c Update data/README.
* data/README: Document glr.cc, lalr1.java, m4sugar and xslt.
2008-12-08 09:47:35 +01:00
Akim Demaille 6c63b895fb 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.
2008-12-08 09:47:31 +01:00
Akim Demaille 417e31d2c3 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.
2008-12-08 09:47:26 +01:00
Akim Demaille 97abf54412 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.
2008-12-08 09:44:38 +01:00
Di-an Jan e8cd1ad655 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.
2008-12-07 21:54:45 -08:00
Akim Demaille ce9447fc6a Update gnulib.
* gnulib: Update from master.
2008-12-07 22:16:37 +01:00
Eric Blake d333175f63 Avoid compiler warning.
* src/output.c (muscle_insert_item_number_table): Delete unused
function.

Signed-off-by: Eric Blake <ebb9@byu.net>
2008-12-05 16:16:15 -07:00
Eric Blake 215b40ac9e 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>
2008-12-02 10:59:17 -07:00
Akim Demaille 30c10fafcc Fixes in the ChangeLog.
* ChangeLog: Fix typos.
	Formatting changes.
2008-12-01 22:56:43 +01:00
Akim Demaille 3bb211139b 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.
2008-12-01 22:32:33 +01:00
Akim Demaille fb7c5b1f23 Use b4_symbol_case_.
* data/lalr1.cc, data/bison.m4 (b4_symbol_action): Use
	b4_symbol_case_.
2008-12-01 22:29:20 +01:00
Akim Demaille cf6fb2226d 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
2008-12-01 22:25:51 +01:00
Akim Demaille e3c52a6362 b4_symbol/type_foreach.
* data/lalr1.cc (b4_symbol_foreach, b4_type_foreach): New.
	Use them.
2008-12-01 22:22:35 +01:00
Akim Demaille 2bde91138d 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.
2008-12-01 22:19:11 +01:00
Akim Demaille 44494bf684 Avoid capturing variables too easily.
* src/muscle_tab.h (MUSCLE_INSERT_BOOL, MUSCLE_OBSTACK_SGROW): Use
	v__ and p__ instead of v and p.
2008-12-01 22:15:51 +01:00
Akim Demaille fad814bd0c Remove spurious empty line before syncline.
* data/bison.m4 (b4_syncline): Don't output an empty line before
	the output.
2008-12-01 22:11:50 +01:00
Akim Demaille feda5527b3 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.
2008-11-26 11:09:19 +01:00
Akim Demaille 56ddee7f8d s/_FLAGS/FLAGS/.
* tests/local.mk (TESTSUITE_FLAGS, AUTOTEST_FLAGS): Rename as...
	(TESTSUITEFLAGS, AUTOTESTFLAGS): these to compy with the GCS.
	Reported by Eric Blake.
2008-11-26 10:31:53 +01:00
Akim Demaille 728e89a09b 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.
2008-11-26 10:11:46 +01:00