]> git.saurik.com Git - bison.git/blobdiff - ChangeLog
Work around Java's ``code too large'' problem for parser tables.
[bison.git] / ChangeLog
index b785bf9fb0ae8d7c5c6e9a0fdbec8f2103aa35a3..1af3ef25f3aac57857a5738fc193c924b0a011c9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,171 @@
+2008-11-10  Di-an Jan  <dianj@freeshell.org>
+
+       Workaround Java's ``code too large'' problem for parser tables
+       in most cases, by using one function per initialization.
+       * 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  Di-an Jan  <dianj@freeshell.org>
+
+       * 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  Akim Demaille  <demaille@gostai.com>
+
+       Update TODO.
+       * TODO (-D): is implemented.
+       (associativity): Same precedence must have the same associativity.
+       For instance, how can a * b / c be parsed if * is %left and / is
+       %right?
+       (YYERRORCODE, YYFAIL, YYBACKUP): New.
+
+2008-11-10  Akim Demaille  <demaille@gostai.com>
+
+       Formatting changes.
+
+2008-11-10  Akim Demaille  <demaille@gostai.com>
+
+       More information about the symbols.
+       * src/output.c (type_names_output): Document all the symbols,
+       including those that don't have a type-name.
+       (symbol_definitions_output): Define "is_token" and
+       "has_type_name".
+       * data/lalr1.cc (b4_type_action_): Skip symbols that have an empty
+       type-name, now that they are defined too in b4_type_names.
+
+2008-11-10  Akim Demaille  <demaille@gostai.com>
+
+       Regen.
+
+2008-11-10  Akim Demaille  <demaille@gostai.com>
+
+       Make parser::yytranslate static.
+       Small speedup (1%) on the list grammar.  And makes yytranslate_ available
+       in non member functions.
+       
+       * data/lalr1.cc (yytranslate_): Does not need to be a instance
+       function.
+
+2008-11-10  Akim Demaille  <demaille@gostai.com>
+
+       Avoid trailing spaces.
+       * data/c.m4: b4_comment(TEXT): Don't indent empty lines.
+       * data/lalr1.cc: Don't indent before rule and symbol actions, as
+       they can be empty, and anyway this incorrectly indents the first
+       action.
+
+2008-11-10  Akim Demaille  <demaille@gostai.com>
+
+       Comment changes.
+
+2008-11-10  Akim Demaille  <demaille@gostai.com>
+
+       Use "enum" for integral constants.
+       This is just nicer to read, I observed no speedup.
+       
+       * data/lalr1.cc (yyeof_, yylast_, yynnts_, yyempty_, yyfinal_)
+       (yterror_, yyerrcode_, yyntokens_): Define as members of an enum.
+       (yyuser_token_number_max_, yyundef_token_): Move into...
+       (yytranslate_): here.
+
+2008-11-10  Akim Demaille  <demaille@gostai.com>
+
+       Shortcuts in bench directives.
+       * etc/bench.pl.in (parse_dirs): New.
+       Use it.
+       (bench_variant_parser, bench_fusion_parser): Use %s and %d.
+       Create the benches in "benches/".
+
+2008-11-10  Akim Demaille  <demaille@gostai.com>
+
+       Formatting changes.
+       * data/lalr1.cc: here.
+
+2008-11-10  Akim Demaille  <demaille@gostai.com>
+
+       Adjust verbose message to using emacs.
+       * etc/bench.pl.in: Inform compilation-mode when we change the
+       directory.
+       (generate_grammar_list): Recognize %define "variant" in addition
+       to %define variant.
+
+2008-11-10  Akim Demaille  <demaille@gostai.com>
+
+       Classify symbols by type-name.
+       * src/uniqstr.h (UNIQSTR_CMP): New.
+       * src/output.c (symbol_type_name_cmp, symbols_by_type_name)
+       (type_names_output): New.
+       (muscles_output): Use it.
+       * data/lalr1.cc (b4_symbol_action_): Remove.
+       (b4_symbol_case_, b4_type_action_): New.
+       Adjust uses of b4_symbol_action_ to use b4_type_action_.
+
 2008-11-10  Akim Demaille  <demaille@gostai.com>
 
        Change the handling of the symbols in the skeletons.