mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 20:33:03 +00:00
Share b4_yytranslate_define.
* data/lalr1.cc (b4_yytranslate_define): Move to... * data/c++.m4: here.
This commit is contained in:
@@ -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.
|
||||
|
||||
28
data/c++.m4
28
data/c++.m4
@@ -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])
|
||||
# --------------------
|
||||
|
||||
@@ -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])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user