bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

FYI: lalr1.cc: Remove the traits


From: Akim Demaille
Subject: FYI: lalr1.cc: Remove the traits
Date: Mon, 19 Sep 2005 09:35:36 +0200
User-agent: Gnus/5.110004 (No Gnus v0.4) Emacs/21.4 (gnu/linux)

Index: ChangeLog
from  Akim Demaille  <address@hidden>

        Remove the traits, failed experiment.
        It never proved useful, and anyway because of the current
        definition, it was not possible to have several specialization of
        this traits, making it useless.
        * data/lalr1.cc (yy:traits): Remove.
        Inline its definitions in the parser class.

Index: data/lalr1.cc
===================================================================
RCS file: /cvsroot/bison/bison/data/lalr1.cc,v
retrieving revision 1.100
diff -u -u -r1.100 lalr1.cc
--- data/lalr1.cc 19 Sep 2005 07:21:39 -0000 1.100
+++ data/lalr1.cc 19 Sep 2005 07:34:29 -0000
@@ -118,33 +118,14 @@
 
 namespace yy
 {
-  class ]b4_parser_class_name[;
 
-  template <typename P>
-  struct traits
-  {
-  };
-
-  template <>
-  struct traits<]b4_parser_class_name[>
-  {
-    typedef ]b4_int_type_for([b4_translate])[ token_number_type;
-    typedef ]b4_int_type_for([b4_rhs])[       rhs_number_type;
-    typedef int state_type;
-    typedef YYSTYPE semantic_type;
-    typedef ]b4_location_type[ location_type;
-  };
-}
-
-namespace yy
-{
   /// A Bison parser.
   class ]b4_parser_class_name[
   {
     /// Symbol semantic values.
-    typedef traits<]b4_parser_class_name[>::semantic_type semantic_type;
+    typedef YYSTYPE semantic_type;
     /// Symbol locations.
-    typedef traits<]b4_parser_class_name[>::location_type location_type;
+    typedef ]b4_location_type[ location_type;
 
   public:
     /// Build a parser object.
@@ -196,7 +177,7 @@
 
 
     /// State numbers.
-    typedef traits<]b4_parser_class_name[>::state_type state_type;
+    typedef int state_type;
     /// State stack type.
     typedef stack<state_type>    state_stack_type;
     /// Semantic value stack type.
@@ -212,7 +193,7 @@
     location_stack_type yylocation_stack_;
 
     /// Internal symbol numbers.
-    typedef traits<]b4_parser_class_name[>::token_number_type 
token_number_type;
+    typedef ]b4_int_type_for([b4_translate])[ token_number_type;
     /* Tables.  */
     /// For a state, the index in \a yytable_ of its portion.
     static const ]b4_int_type_for([b4_pact])[ yypact_[];
@@ -256,7 +237,7 @@
 
 #if YYDEBUG
     /// A type to store symbol numbers and -1.
-    typedef traits<]b4_parser_class_name[>::rhs_number_type rhs_number_type;
+    typedef ]b4_int_type_for([b4_rhs])[ rhs_number_type;
     /// A `-1'-separated list of the rules' RHS.
     static const rhs_number_type yyrhs_[];
     /// For each rule, the index of the first RHS symbol in \a yyrhs_.





reply via email to

[Prev in Thread] Current Thread [Next in Thread]