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.
This commit is contained in:
Akim Demaille
2008-08-28 14:07:29 +02:00
parent e51b0a82be
commit 1c4af3813e
2 changed files with 12 additions and 2 deletions

View File

@@ -1,3 +1,10 @@
2008-11-13 Akim Demaille <demaille@gostai.com>
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 <demaille@gostai.com> 2008-11-13 Akim Demaille <demaille@gostai.com>
Define the constructors of symbol_type in b4_symbol_constructor_definitions. Define the constructors of symbol_type in b4_symbol_constructor_definitions.

View File

@@ -233,6 +233,7 @@ m4_define([b4_symbol_constructor_specialization_],
b4_args(b4_symbol_if([$1], [has_type], b4_args(b4_symbol_if([$1], [has_type],
[const b4_symbol([$1], [type])& v]), [const b4_symbol([$1], [type])& v]),
b4_locations_if([const location_type& l]))); b4_locations_if([const location_type& l])));
])])]) ])])])
# b4_symbol_constructor_specializations # b4_symbol_constructor_specializations
@@ -739,7 +740,7 @@ m4_ifdef([b4_stype],
#endif #endif
/// Convert a scanner token number \a t to a symbol number. /// Convert a scanner token number \a t to a symbol number.
static token_number_type yytranslate_ (]b4_lex_symbol_if([token_type], [int])[ t); static inline token_number_type yytranslate_ (]b4_lex_symbol_if([token_type], [int])[ t);
/// A complete symbol, with its type. /// A complete symbol, with its type.
template <typename Exact> template <typename Exact>
@@ -873,6 +874,8 @@ m4_ifdef([b4_stype],
]b4_parse_param_vars[ ]b4_parse_param_vars[
}; };
]b4_lex_symbol_if([b4_yytranslate_definition])[
]b4_symbol_constructor_specializations[ ]b4_symbol_constructor_specializations[
]b4_namespace_close[ ]b4_namespace_close[
@@ -1614,7 +1617,7 @@ b4_error_verbose_if([int yystate, int yytoken],
} }
#endif // YYDEBUG #endif // YYDEBUG
]b4_yytranslate_definition[ ]b4_lex_symbol_if([], [b4_yytranslate_definition])[
]b4_namespace_close[ ]b4_namespace_close[
]b4_epilogue[]dnl ]b4_epilogue[]dnl