X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/c1e6c88ca353012a086858dc83d0a3c981681d14..cd409e3b50c48def3561ac56366d6b45e6d0f6ce:/ChangeLog diff --git a/ChangeLog b/ChangeLog index b3e5658c..707aad9d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,148 @@ +2008-11-15 Akim Demaille + + Remove examples/local.mk. + examples/calc++/Makefile.am might be interesting to keep as is, since + it is an example in itself. + + * examples/Makefile.am: Rename as... + * examples/local.mk: this. + Adjust. + * Makefile.am, configure.ac: Adjust. + +2008-11-15 Akim Demaille + + Remove build-aux/Makefile.am. + Recursive Makefiles are really way too slow, let's get rid of some of + them. + + * build-aux/Makefile.am: Rename as... + * build-aux/local.mk: this. + Adjust paths. + * Makefile.am, configure.ac: Adjust. + +2008-11-15 Akim Demaille + + Provide convenience constructors for locations and positions. + * data/location.cc (position::position): Accept file, line and + column as arguments with default values. + Always qualify initial line and column literals as unsigned. + (location::location): Provide convenience constructors. + +2008-11-15 Akim Demaille + + Instead of using make_symbol, generate make_FOO for each token type. + Using template buys us nothing, and makes it uselessly complex to + construct a symbol. Besides, it could not be generalized to other + languages, while make_FOO would work in C/Java etc. + + * data/lalr1.cc (b4_symbol_): New. + (b4_symbol): Use it. + (b4_symbol_constructor_declaration_) + (b4_symbol_constructor_definition_): Instead of generating + specializations of an overloaded template function, just generate + several functions whose names are forged from the token names + without the token.prefix. + (b4_symbol_constructor_declarations): Generate them for all the + symbols, not just by class of symbol type, now that instead of + specializing a function template by the token, we generate a + function named after the token. + (b4_symbol_constructor_specialization_) + (b4_symbol_constructor_specializations): Remove. + * etc/bench.pl.in: Adjust to this new API. + +2008-11-13 Akim Demaille + + %define token.prefix. + Provide a means to add a prefix to the name of the tokens as output in the + generated files. Because of name clashes, it is good to have such a + prefix such as TOK_ that protects from names such as EOF, FILE etc. + But it clutters the grammar itself. + + * data/bison.m4 (token.prefix): Empty by default. + * data/c.m4 (b4_token_enum, b4_token_define): Use it. + * data/lalr1.cc (b4_symbol): Ditto. + +2008-11-13 Akim Demaille + + Compute at M4 time some of the subtractions. + * data/lalr1.cc (b4_substract): New. + (b4_rhs_data): Use it. + +2008-11-13 Akim Demaille + + symbol::token. + This is allows the user to get the type of a token return by + yylex. + + * data/lalr1.cc (symbol::token): New. + (yytoknum_): Define when %define lex_symbol, independently of + %debug. + (yytoken_number_): Move into... + (symbol::token): here, since that's the only use. + The other one is YYPRINT which was not officially supported + by lalr1.cc, and anyway it did not work since YYPRINT uses this + array under a different name (yytoknum). + +2008-11-13 Akim Demaille + + YYERRCODE. + * TODO (YYERRCODE): Mention the case of $undef. + +2008-11-13 Akim Demaille + + TODO: YYPRINT. + * TODO (YYPRINT): New. + +2008-11-13 Akim Demaille + + Comment changes. + * data/lalr1.cc, data/yacc.c: Fix the description of the + yytranslate and yytoknum tables. + +2008-11-13 Akim Demaille + + Define make_symbol in the header. + To reach good performances these functions should be inlined (yet this is + to measure precisely). To this end they must be available to the caller. + + * data/lalr1.cc (b4_symbol_constructor_definition_): Qualify + location_type with the class name. + Since will now be output in the header, declare "inline". + No longer use b4_symbol_constructor_specializations, but + b4_symbol_constructor_definitions in the header. + Don't call it in the *.cc file. + +2008-11-13 Akim Demaille + + Define yytranslate in the header for lex_symbol. + * data/lalr1.cc: Move the invocation of b4_yytranslate_definition + into the header file when using %define lex_symbol. + (yytranslate_): Declare inline. + +2008-11-13 Akim Demaille + + Define the constructors of symbol_type in b4_symbol_constructor_definitions. + The constructors are called by the make_symbol functions, which a + forthcoming patch will move elsewhere. Hence the interest of putting them + together. + + The stack_symbol_type does not need to be moved, it is used only by the + parser. + + * data/lalr1.cc: Move symbol_type and symbol_base_type + constructors into... + (b4_symbol_constructor_definitions): here. + Adjust. + +2008-11-13 Akim Demaille + + Make it easier to move the definition of yytranslate_. + Forthcoming changes will make it possible to use yytranslate_ + from outside the parser implementation file. + + * data/lalr1.cc (b4_yytranslate_definition): New. + Use it. + 2008-11-13 Akim Demaille Remove useless class specification.