From 914202bdac3436018291207f75508959f5597323 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Sat, 16 Aug 2008 10:22:09 +0200 Subject: [PATCH 1/1] Use "enum" for integral constants. This is just nicer to read, I observed no speedup. * data/lalr1.cc (yyeof_, yylast_, yynnts_, yyempty_, yyfinal_) (yterror_, yyerrcode_, yyntokens_): Define as members of an enum. (yyuser_token_number_max_, yyundef_token_): Move into... (yytranslate_): here. --- ChangeLog | 10 ++++++++++ data/lalr1.cc | 44 ++++++++++++++++++-------------------------- data/yacc.c | 2 +- 3 files changed, 29 insertions(+), 27 deletions(-) diff --git a/ChangeLog b/ChangeLog index 84f378a0..0f64fe1b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2008-11-10 Akim Demaille + + Use "enum" for integral constants. + This is just nicer to read, I observed no speedup. + + * data/lalr1.cc (yyeof_, yylast_, yynnts_, yyempty_, yyfinal_) + (yterror_, yyerrcode_, yyntokens_): Define as members of an enum. + (yyuser_token_number_max_, yyundef_token_): Move into... + (yytranslate_): here. + 2008-11-10 Akim Demaille Shortcuts in bench directives. diff --git a/data/lalr1.cc b/data/lalr1.cc index e9a1b02e..578e24f4 100644 --- a/data/lalr1.cc +++ b/data/lalr1.cc @@ -605,17 +605,18 @@ m4_ifdef([b4_stype], inline void yypop_ (unsigned int n = 1); /* Constants. */ - static const int yyeof_; - /* LAST_ -- Last index in TABLE_. */ - static const int yylast_; - static const int yynnts_; - static const int yyempty_; - static const int yyfinal_; - static const int yyterror_; - static const int yyerrcode_; - static const int yyntokens_; - static const unsigned int yyuser_token_number_max_; - static const token_number_type yyundef_token_; + enum + { + yyeof_ = 0, + yylast_ = ]b4_last[, //< Last index in yytable_. + yynnts_ = ]b4_nterms_number[, //< Number of nonterminal symbols. + yyempty_ = -2, + yyfinal_ = ]b4_final_state_number[, //< Termination state number. + yyterror_ = 1, + yyerrcode_ = 256, + yyntokens_ = ]b4_tokens_number[, //< Number of tokens. + }; + ]b4_parse_param_vars[ }; @@ -1403,26 +1404,17 @@ b4_error_verbose_if([ tok])[) const token_number_type translate_table[] = { - ]b4_translate[ +]b4_translate[ }; - if ((unsigned int) t <= yyuser_token_number_max_) + 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 (t) <= user_token_number_max_) return translate_table[t]; else - return yyundef_token_; + return undef_token_; } - const int ]b4_parser_class_name[::yyeof_ = 0; - const int ]b4_parser_class_name[::yylast_ = ]b4_last[; - const int ]b4_parser_class_name[::yynnts_ = ]b4_nterms_number[; - const int ]b4_parser_class_name[::yyempty_ = -2; - const int ]b4_parser_class_name[::yyfinal_ = ]b4_final_state_number[; - const int ]b4_parser_class_name[::yyterror_ = 1; - const int ]b4_parser_class_name[::yyerrcode_ = 256; - const int ]b4_parser_class_name[::yyntokens_ = ]b4_tokens_number[; - - const unsigned int ]b4_parser_class_name[::yyuser_token_number_max_ = ]b4_user_token_number_max[; - const ]b4_parser_class_name[::token_number_type ]b4_parser_class_name[::yyundef_token_ = ]b4_undef_token_number[; - ]b4_namespace_close[ ]b4_epilogue[]dnl diff --git a/data/yacc.c b/data/yacc.c index 12ce1387..d16e385f 100644 --- a/data/yacc.c +++ b/data/yacc.c @@ -482,7 +482,7 @@ union yyalloc #define YYNNTS ]b4_nterms_number[ /* YYNRULES -- Number of rules. */ #define YYNRULES ]b4_rules_number[ -/* YYNRULES -- Number of states. */ +/* YYNSTATES -- Number of states. */ #define YYNSTATES ]b4_states_number[ /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ -- 2.45.2