]> git.saurik.com Git - bison.git/commitdiff
Use "enum" for integral constants.
authorAkim Demaille <demaille@gostai.com>
Sat, 16 Aug 2008 08:22:09 +0000 (10:22 +0200)
committerAkim Demaille <demaille@gostai.com>
Mon, 10 Nov 2008 10:41:00 +0000 (11:41 +0100)
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
data/lalr1.cc
data/yacc.c

index 84f378a0b26939230f924c4b6931e4712038cf55..0f64fe1be2ca2f37c46da4f7735a53f789eded7e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2008-11-10  Akim Demaille  <demaille@gostai.com>
+
+       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  <demaille@gostai.com>
 
        Shortcuts in bench directives.
 2008-11-10  Akim Demaille  <demaille@gostai.com>
 
        Shortcuts in bench directives.
index e9a1b02ea10f1158aa79c9b490971426a2c7538e..578e24f4171bafda243c22c5f0f54b16d07416c7 100644 (file)
@@ -605,17 +605,18 @@ m4_ifdef([b4_stype],
     inline void yypop_ (unsigned int n = 1);
 
     /* Constants.  */
     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[
   };
 
 ]b4_parse_param_vars[
   };
 
@@ -1403,26 +1404,17 @@ b4_error_verbose_if([ tok])[)
     const token_number_type
     translate_table[] =
     {
     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<unsigned int> (t) <= user_token_number_max_)
       return translate_table[t];
     else
       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
 ]b4_namespace_close[
 
 ]b4_epilogue[]dnl
index 12ce13874cb96b4a848e0f9cab38baeccf7892a8..d16e385f5e6650a43a8f8954d3a4c484bef02ca5 100644 (file)
@@ -482,7 +482,7 @@ union yyalloc
 #define YYNNTS  ]b4_nterms_number[
 /* YYNRULES -- Number of rules.  */
 #define YYNRULES  ]b4_rules_number[
 #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.  */
 #define YYNSTATES  ]b4_states_number[
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */