Share b4_yytranslate_define.

* data/lalr1.cc (b4_yytranslate_define): Move to...
	* data/c++.m4: here.
This commit is contained in:
Akim Demaille
2008-12-31 17:21:56 +01:00
parent 882f02ed83
commit cbf25ce74f
3 changed files with 34 additions and 29 deletions

View File

@@ -1,3 +1,9 @@
2009-03-02 Akim Demaille <demaille@gostai.com>
Share b4_yytranslate_define.
* data/lalr1.cc (b4_yytranslate_define): Move to...
* data/c++.m4: here.
2009-03-02 Akim Demaille <demaille@gostai.com>
Use locations in the variant example.

View File

@@ -294,6 +294,34 @@ m4_define([b4_symbol_constructor_declare], [])
m4_define([b4_symbol_constructor_define], [])
# b4_yytranslate_define
# ---------------------
# Define yytranslate_. Sometimes used in the header file,
# sometimes in the cc file.
m4_define([b4_yytranslate_define],
[[ // Symbol number corresponding to token number t.
]b4_parser_class_name[::token_number_type
]b4_parser_class_name[::yytranslate_ (]b4_lex_symbol_if([token_type],
[int])[ t)
{
static
const token_number_type
translate_table[] =
{
]b4_translate[
};
const unsigned int user_token_number_max_ = ]b4_user_token_number_max[;
const token_number_type undef_token_ = ]b4_undef_token_number[;
if (static_cast<int>(t) <= yyeof_)
return yyeof_;
else if (static_cast<unsigned int> (t) <= user_token_number_max_)
return translate_table[t];
else
return undef_token_;
}
]])
# b4_lhs_value([TYPE])
# --------------------

View File

@@ -115,35 +115,6 @@ m4_popdef([b4_dollar_dollar])dnl
])])
# b4_yytranslate_define
# ---------------------
# Define yytranslate_. Sometimes we want it in the header file,
# sometimes the cc file suffices.
m4_define([b4_yytranslate_define],
[[ // Symbol number corresponding to token number t.
]b4_parser_class_name[::token_number_type
]b4_parser_class_name[::yytranslate_ (]b4_lex_symbol_if([token_type],
[int])[ t)
{
static
const token_number_type
translate_table[] =
{
]b4_translate[
};
const unsigned int user_token_number_max_ = ]b4_user_token_number_max[;
const token_number_type undef_token_ = ]b4_undef_token_number[;
if (static_cast<int>(t) <= yyeof_)
return yyeof_;
else if (static_cast<unsigned int> (t) <= user_token_number_max_)
return translate_table[t];
else
return undef_token_;
}
]])
m4_pushdef([b4_copyright_years],
[2002, 2003, 2004, 2005, 2006, 2007, 2008])