Commit Graph

22 Commits

Author SHA1 Message Date
Joel E. Denny
110ef36a1a Rename "default rule" to "default reduction".
This includes changing variable names in code, changing
comments, and renaming %define lr.default_rules to %define
lr.default_reductions.
* NEWS (2.5): Update IELR documentation.
* data/bison.m4 (b4_integral_parser_tables_map): Adjust YYDEFACT
documentation.
* data/glr.c, data/lalr1.java: Sync copyright dates.
* doc/bison.texinfo (Decl Summary): Adjust lr.default_reductions
and lr.type documentation.  Make some other wording
improvements.
(Glossary): Adjust cross-references and Default Reduction
definition.
* src/lalr.c (state_lookahead_tokens_count): Adjust code.
Remove a confusing comment pointed out by Akim Demaille.
(initialize_LA): Adjust code.
* src/print-xml.c (print_reductions): Adjust code.
* src/print.c (print_reductions): Adjust code.
* src/reader.c (reader): Adjust code.
* src/tables.c (action_row): Adjust code.
(token_actions): Adjust code.
* src/tables.h: Adjust YYDEFACT documentation.
* tests/input.at (%define lr.default_rules invalid values):
Rename test group to...
(%define lr.default_reductions invalid values): ... this, and
update grammar file and expected output.
* tests/reduce.at (AT_TEST_LR_DEFAULT_RULES): Rename to...
(AT_TEST_LR_DEFAULT_REDUCTIONS): ... this, and update.
2009-04-23 04:18:13 -04:00
Akim Demaille
fa81950916 variables: use parse.assert' instead of debug'.
* src/getargs.c (getargs): Map -t to %define trace.parse.
	* src/scan-gram.l (%debug): Map to %define trace.parse.
	* data/bison.m4 (b4_percent_define_if_define): Map `.' in variable
	names to `_' in macro names.
	(b4_debug_if): Replace with...
	(b4_parse_trace_if): this.
	* data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java,
	* data/yacc.c: Adjust.
	* doc/bison.texinfo (Decl Summary): Document %debug as obsoleted.
	Use @code to label the variable list.
	Document the variable parse.trace.
	(Tracing): Promote the parse.trace variable.
	* TODO: %printer is not documented.
2009-04-14 08:11:16 +02:00
Akim Demaille
0ce615753e Treat %debug as %define debug.
* data/bison.m4 (b4_debug_if): New.
	* data/glr.c, data/glr.cc, data/lalr1.cc, data/yacc.c,
	* data/lalr1.java: Use it instead of b4_debug_flag.
	* src/getargs.h, src/getargs.c (debug_flag): Remove.
	* src/output.c (prepare): Don't output it.
	* src/parse-gram.y: Treat %debug as %define debug.
2009-04-03 10:26:10 +02: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
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
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
2c1bf9bd68 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.
2008-11-26 10:08:41 +01:00
Akim Demaille
b4f1840114 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.
2008-11-25 22:50:10 +01:00
Akim Demaille
c4ddc0fb0b Formatting changes.
* data/lalr1.java: here.
2008-11-25 22:11:09 +01:00
Akim Demaille
11707b2b48 Get rid of tabulations in the Java output.
Test 214 was failing: it greps with a pattern containing [    ]* which
obviously meant to catch spaces and tabs, but contained only tabs.
Tabulations in sources are a nuisance, so to simplify the matter, get rid
of all the tabulations in the Java sources.  The other skeletons will be
treated equally later.

	* data/java.m4, data/lalr1.java: Untabify.
	* tests/java.at: Simplify AT_CHECK_JAVA_GREP invocations:
	tabulations are no longer generated.
2008-11-11 14:42:35 +01:00
Di-an Jan
09ccae9b18 Work around Java's ``code too large'' problem for parser tables.
* data/java.m4 (b4_typed_parser_table, b4_integral_parser_table): New.
* data/lalr1.java (yypact_, yydefact_, yypgoto_, yydefgoto_,
yytable_, yycheck_, yystos_, yytoken_number_, yyr1_, yyr2_, yyrhs_
yyprhs_, yyrline_, yytranslate_table_): Use b4_integral_parser_table.
(yytname_): Use b4_typed_parser_table.
* doc/bison.texinfo (Java Bison Interface): Add note on Java's
``code too large'' error.
2008-11-10 14:34:53 +01:00
Di-an Jan
1979121c96 Various Java skeleton improvements.
* NEWS: Document them.

General Java skeleton improvements.
* configure.ac (gt_JAVACOMP): Request target of 1.4, which allows
using gcj < 4.3 in the testsuite, according to comments in
gnulib/m4/javacomp.m4.
* data/java.m4 (stype, parser_class_name, lex_throws, throws,
location_type, position_type): Remove extraneous brackets from
b4_percent_define_default.
(b4_lex_param, b4_parse_param): Remove extraneous brackets from
m4_define and m4_define_default.
* data/lalr1.java (b4_pre_prologue): Change to b4_user_post_prologue,
which marks the end of user code with appropriate syncline, like all
the other skeletons.
(b4_user_post_prologue): Add.  Don't silently drop.
(yylex): Remove.
(parse): Inline yylex.
* doc/bison.texinfo (bisonVersion, bisonSkeleton): Document.
(%{...%}): Fix typo of %code imports.
* tests/java.at (AT_JAVA_COMPILE): Add "java" keyword.
Support annotations on parser class with %define annotations.
* data/lalr1.java (annotations): Add to parser class modifier.
* doc/bison.texinfo (Java Parser Interface): Document
%define annotations.
(Java Declarations Summary): Document %define annotations.
* tests/java.at (Java parser class modifiers): Test annotations.
Do not generate code for %error-verbose unless requested.
* data/lalr1.java (errorVerbose): Rename to yyErrorVerbose.
Make private.  Make conditional on %error-verbose.
(getErrorVerbose, setErrorVerbose): New.
(yytnamerr_): Make conditional on %error-verbose.
(yysyntax_error): Make some code conditional on %error-verbose.
* doc/bison.texinfo (Java Bison Interface): Remove the parts
about %error-verbose having no effect.
(getErrorVerbose, setErrorVerbose): Document.
Move constants for token names to Lexer interface.
* data/lalr1.java (Lexer): Move EOF, b4_token_enums(b4_tokens) here.
* data/java.m4 (b4_token_enum): Indent for move to Lexer interface.
(parse): Qualify EOF to Lexer.EOF.
* doc/bison.texinfo (Java Parser Interface): Move documentation of
EOF and token names to Java Lexer Interface.
* tests/java.at (_AT_DATA_JAVA_CALC_Y): Remove Calc qualifier.
Make yyerror public.
* data/lalr1.java (Lexer.yyerror): Use longer parameter name.
(yyerror): Change to public.  Add Javadoc comments.  Use longer
parameter names.  Make the body rather than the declarator
conditional on %locations.
* doc/bison.texinfo (yyerror): Document.  Don't mark as protected.
Allow user to add code to the constructor with %code init.
* data/java.m4 (b4_init_throws): New, for %define init_throws.
* data/lalr1.java (YYParser.YYParser): Add b4_init_throws.
Add %code init to the front of the constructor body.
* doc/bison.texinfo (YYParser.YYParser): Document %code init
and %define init_throws.
(Java Declarations Summary): Document %code init and
%define init_throws.
* tests/java.at (Java %parse-param and %lex-param): Adjust grep.
(Java constructor init and init_throws): Add tests.
2008-11-10 14:34:52 +01:00
Akim Demaille
a0d4650a09 Remove spurious initial empty lines.
* data/glr.c, data/glr.cc, data/lalr1.cc, data/lalr1.java,
	* data/yacc.c: End the @output lines with an @.
2008-11-04 21:43:36 +01:00
Di-an Jan
e254a580b5 Java parser improvements
2008-11-01  Di-an Jan  <dianj@freeshell.org>
	    Paolo Bonzini  <bonzini@gnu.org>

	Support all Java parser class modifiers.
	* data/java.m4 (b4_percent_define_get3): New.
	(b4_final_if, b4_strictfp_if): New.
	* data/lalr1.java (final, strictfp, extends, implements): Support.
	* doc/bison.texinfo (final, strictfp, extends, implements): Add
	documentation.
	* tests/java.at (AT_CHECK_JAVA_MINIMAL): New.
	(AT_CHECK_JAVA_MINIMAL_W_LEXER): New.
	(AT_CHECK_JAVA_GREP): New.
	(Java parser class modifiers): New test.
	(Java parser class extends and implements): New test.

	Model exception propagation better with throws and lex_throws.
	* data/java.m4 (b4_list2): New.
	(throws): Change default.
	* data/lalr1.java (yyaction): Add throws.
	(parse): Add lex_throws in addition to throws.
	* doc/bison.texinfo (throws, lex_throws): Add documentation.
	* tests/java.at (Java throws specifications): New test.

	Improve documentation for Java parsers.
	* doc/bison.texinfo (Java Parsers): Add subsections.
	Don't quote first argument of %define.
	(Java Bison Interface): Document output files.  Move documentation
	of parser class and merge into Java Parser Interface.  Document
	features that error out.  Document directives with no effect.
	Move note about Javadoc higher.
	(Java Semantic Values): Explicitly mention stype.
	Document that generic types cannot be used.
	(Java Location Values): Use @deftypeivar.  Document constructors.
	Correct return value for toString.
	(Java Parser Interface): List undocumented constants/fields.
	Move documentation of fields added by %parse-param closer to list
	of members.  Document that token names are added as fields.
	Document constructors accurately.  Remove error method.
	(Java Scanner Interface): Move note on %pure-parser to Java Bison
	Interface.  Describe %code lexer and yylex accutately.
	Remove documentation that does not match the code.
	(Java Action Features): New.
	(Java Differences): Add reference.  Add item on semantic values.
	Add note about @{ ... @}.  Clarify %% epilogue placement.
	(Java Declarations Summary): New.

	Fix Java skeleton.
	* data/java.m4 (b4_prefix): Correct quoting for m4_define_default.
	(b4_remove_comma): Quote test argument.
	* tests/java.at (Java parser class and package names): New test.
	(Java %parse-param and %lex-param): New test.
	(Java stype, position_class and location_class): New test.
2008-11-01 20:00:01 +01:00
Di-an Jan
74d6c0fe17 Correct visible errors in generated Javadoc.
2008-10-27  Di-an Jan  <dianj@freeshell.org>

    * data/lalr1.jave: Update copyright years.
    (YYParser): Correct name of "generated from" file in Javadoc:
    use b4_file_name instead of @ofile@.
    (Location constructor): Correct Javadoc parameter name.
    (yylloc): Add missing opening m4 quote after b4_location_if.
    This removes a stray [ in the Javadoc of Lexer.getStartPos.
    (Lexer.yyerror): Fix incorrect m4 and Javadoc.
    (YYParser constructor): Correct Javadoc parameter name.
2008-10-31 13:42:08 +01:00
Paolo Bonzini
ddf17a6e0e small but important bugfixes for the Java skeleton
2008-10-08  Di-an Jan  <dianj@freeshell.org>  (tiny change)

	Small but important bugfixes for the Java skeleton.
	* data/lalr1.java (yyerror): Change Location to b4_location_type.
	(yy_symbol_print): Call toString on yyvaluep.
2008-10-09 21:26:29 +02:00
Paolo Bonzini
d0ee410565 2007-11-08 Paolo Bonzini <bonzini@gnu.org>
* data/lalr1.java (Lexer): Remove usage of b4_pure_if.
2007-11-08 09:08:45 +00:00
Paul Eggert
f16b08196c Update to GPLv3.
* doc/gpl-3.0.texi: New file.
* doc/gpl.texi: Remove.
* COPYING, GNUmakefile, HACKING, Makefile.am, Makefile.cfg:
* Makefile.maint, NEWS, PACKAGING, README, README-alpha:
* README-hacking, TODO, bootstrap, bootstrap.conf:
* configure.ac, data/Makefile.am, data/README, data/bison.m4:
* data/c++-skel.m4, data/c++.m4, data/c-skel.m4, data/c.m4:
* data/glr.c, data/glr.cc, data/java-skel.m4, data/java.m4:
* data/lalr1.cc, data/lalr1.java, data/location.cc:
* data/push.c, data/yacc.c, data/m4sugar/m4sugar.m4:
* djgpp/Makefile.maint, djgpp/README.in, djgpp/config.bat:
* djgpp/config.sed, djgpp/config.site, djgpp/config_h.sed:
* djgpp/djunpack.bat, djgpp/subpipe.c, djgpp/subpipe.h:
* djgpp/testsuite.sed, doc/Makefile.am, doc/bison.texinfo:
* doc/fdl.texi, doc/refcard.tex, etc/Makefile.am, etc/README:
* etc/bench.pl.in, examples/Makefile.am, examples/extexi:
* examples/calc++/Makefile.am, lib/Makefile.am, lib/abitset.c:
* lib/abitset.h, lib/bbitset.h, lib/bitset.c, lib/bitset.h:
* lib/bitset_stats.c, lib/bitset_stats.h, lib/bitsetv-print.c:
* lib/bitsetv-print.h, lib/bitsetv.c, lib/bitsetv.h:
* lib/ebitset.c, lib/ebitset.h, lib/get-errno.c:
* lib/get-errno.h, lib/lbitset.c, lib/lbitset.h:
* lib/libiberty.h, lib/main.c, lib/subpipe.c, lib/subpipe.h:
* lib/timevar.c, lib/timevar.def, lib/timevar.h:
* lib/vbitset.c, lib/vbitset.h, lib/yyerror.c:
* m4/c-working.m4, m4/cxx.m4, m4/m4.m4, m4/subpipe.m4:
* m4/timevar.m4, src/LR0.c, src/LR0.h, src/Makefile.am:
* src/assoc.c, src/assoc.h, src/closure.c, src/closure.h:
* src/complain.c, src/complain.h, src/conflicts.c:
* src/conflicts.h, src/derives.c, src/derives.h, src/files.c:
* src/files.h, src/flex-scanner.h, src/getargs.c:
* src/getargs.h, src/gram.c, src/gram.h, src/graphviz.c:
* src/lalr.c, src/lalr.h, src/location.c, src/location.h:
* src/main.c, src/muscle_tab.c, src/muscle_tab.h:
* src/nullable.c, src/nullable.h, src/output.c, src/output.h:
* src/parse-gram.c, src/parse-gram.h, src/parse-gram.y:
* src/print.c, src/print.h, src/print_graph.c:
* src/print_graph.h, src/reader.c, src/reader.h, src/reduce.c:
* src/reduce.h, src/relation.c, src/relation.h:
* src/revision.h, src/scan-code.h, src/scan-code.l:
* src/scan-gram.h, src/scan-gram.l, src/scan-skel.h:
* src/scan-skel.l, src/state.c, src/state.h, src/symlist.c:
* src/symlist.h, src/symtab.c, src/symtab.h, src/system.h:
* src/tables.c, src/tables.h, src/uniqstr.c, src/uniqstr.h:
* tests/Makefile.am, tests/actions.at, tests/c++.at:
* tests/calc.at, tests/conflicts.at, tests/cxx-type.at:
* tests/existing.at, tests/glr-regression.at:
* tests/headers.at, tests/input.at, tests/java.at:
* tests/local.at, tests/output.at, tests/push.at:
* tests/reduce.at, tests/regression.at, tests/sets.at:
* tests/skeletons.at, tests/synclines.at, tests/testsuite.at:
* tests/torture.at:
Update to GPLv3.
2007-08-15 20:21:33 +00:00
Paolo Bonzini
01b477c6b6 2007-03-07 Paolo Bonzini <bonzini@gnu.org>
* data/java.m4 (b4_single_class_if): Remove.
        (b4_abstract_if): Look at "%define abstract".
        (b4_lexer_if): New.
        (b4_union_name): Rename...
        (b4_yystype): ... to this.  Map to "%define stype".
        (b4_rhs_value, b4_parse_param_decl, b4_lex_param_decl,
        b4_maybe_throws): Fix quoting.
        (b4_lex_param_call): Move below to keep b4_*_param_decl close.
        * data/lalr1.java (Lexer interface): Always define.
        (Lexer interface within parser class): Remove.
        (YYLexer class): New, used when "%code lexer" is present.
        (constructor): When "%code lexer" is used, pass %lex-param
        to the lexer constructor.
        (yylex, yyparse): Remove %lex-param from method invocations
        (YYStack, yyaction, yyparse): Rename b4_union_name to b4_yystype.

        * doc/bison.texinfo (Java Bison Interface): Mention "%define
        abstract".  Rename "%define union_name" to "%define stype".
        Rename method names according to previous patch.
        (Java Scanner Interface): Describe "%code lexer" instead of
        "%pure-parser" and "%define single_class".
        (Java Differences): Mention "%code lexer".

        * tests/java.at (_AT_DATA_JAVA_CALC_Y): Remove final argument.
        Include scanner here, using macros from tests/local.at.
        (AT_DATA_CALC_Y): Remove final argument.
        (_AT_CHECK_JAVA_CALC): Likewise.
        (AT_CHECK_JAVA_CALC): Likewise.  Test all four combinations
        of %locations and %error-verbose.
        (main): Test with and without %lex-param.
        * tests/local.at (_AT_BISON_OPTION_PUSHDEFS): Push AT_LEXPARAM_IF.
        (AT_BISON_OPTION_POPDEFS): Pop it.
2007-03-09 09:13:43 +00:00
Paolo Bonzini
d3b129885f 2007-02-27 Paolo Bonzini <bonzini@gnu.org>
* data/lalr1.java: Prefix all private members with yy.
2007-02-27 07:31:19 +00:00
Paolo Bonzini
8a93f8e60c 2007-02-05 Paolo Bonzini <bonzini@gnu.org>
* data/lalr1.java (Stack): Work around old verifiers that disallow
	access to the private fields of an inner class, from the outer class.
	We can make Stack's fields public because user code doesn't have access
	to the instance of Stack used by parse().
2007-02-05 09:58:04 +00:00
Paolo Bonzini
8405b70c05 2007-01-29 Paolo Bonzini <bonzini@gnu.org>
* NEWS: Mention java.
	* TODO: Remove things that are done.
	* bootstrap.conf: Add javacomp-script and javaexec-script.
	* configure.ac: Invoke gt_JAVACOMP and gt_JAVAEXEC.

	* data/Makefile.am: Add new files.
	* data/java-skel.m4: New.
	* data/java.m4: New.
	* data/lalr1.java: New.

	* doc/bison.texinfo: Put "A Complete C++ Example" under
	C++ Parsers.  Add Java Parsers.  Put C++ Parsers and Java Parsers
	under Other Languages.

	* src/getargs.c (valid_languages): Add Java.
	* src/getargs.h (struct bison_language): Update size of string fields.

	* tests/Makefile.am: Add java.at.
	* tests/atlocal.in: Add CONF_JAVA and CONF_JAVAC.
	* tests/java.at: New.
	* tests/testsuite.at: Include it.
2007-01-29 10:54:42 +00:00