X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/6659366cda3f80390387c11b71b781d96a367a7d..202598d3ab40e58385028c842ff79a680e79bbe8:/ChangeLog diff --git a/ChangeLog b/ChangeLog index 23fd42e4..134e862d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,103 @@ +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. + * data/lalr1.cc (b4_symbol_constructor_specialization_): No need + to refer to the class name to use a type defined by the class for + arguments of member functions. + +2008-11-13 Akim Demaille + + Finer input type for yytranslate. + This patch is debatable: the tradition expects yylex to return an int + which happens to correspond to token_number (which is an enum). This + allows for instance to return characters (such as '*' etc.). But this + goes against the stronger typing I am trying to have with the new + lex interface which return a symbol_type. So in this case, feed + yytranslate_ with a token_type. + + * data/lalr1.cc (yytranslate_): When in %define lex-symbol, + expect a token_type. + +2008-11-13 Akim Demaille + + Honor lex-params in %define lex_symbol mode. + * data/lalr1.cc: Use b4_lex_param. + 2008-11-13 Akim Demaille Simplify names.