$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: hartmut.kaiser_at_[hidden]
Date: 2008-04-20 22:04:07
Author: hkaiser
Date: 2008-04-20 22:04:06 EDT (Sun, 20 Apr 2008)
New Revision: 44672
URL: http://svn.boost.org/trac/boost/changeset/44672
Log:
Spirit.Lex: pending commits, fixed static lexer.
Text files modified: 
   trunk/boost/spirit/home/lex/lexer/lexertl/lexertl_functor.hpp                   |     2 +-                                      
   trunk/boost/spirit/home/lex/lexer/lexertl/lexertl_static_functor.hpp            |     7 ++++++-                                 
   trunk/boost/spirit/home/lex/lexer/lexertl/lexertl_static_lexer.hpp              |     4 ++++                                    
   trunk/boost/spirit/home/support/iterators/detail/combine_policies.hpp           |     2 +-                                      
   trunk/boost/spirit/home/support/iterators/detail/split_functor_input_policy.hpp |     1 -                                       
   5 files changed, 12 insertions(+), 4 deletions(-)
Modified: trunk/boost/spirit/home/lex/lexer/lexertl/lexertl_functor.hpp
==============================================================================
--- trunk/boost/spirit/home/lex/lexer/lexertl/lexertl_functor.hpp	(original)
+++ trunk/boost/spirit/home/lex/lexer/lexertl/lexertl_functor.hpp	2008-04-20 22:04:06 EDT (Sun, 20 Apr 2008)
@@ -352,7 +352,7 @@
             return mp.shared->ftor.rules.state(statename);
         }
         
-        // we don't need this
+        // we don't need this, but it must be there
         template <typename MultiPass>
         static void destroy(MultiPass const& mp)
         {}  
Modified: trunk/boost/spirit/home/lex/lexer/lexertl/lexertl_static_functor.hpp
==============================================================================
--- trunk/boost/spirit/home/lex/lexer/lexertl/lexertl_static_functor.hpp	(original)
+++ trunk/boost/spirit/home/lex/lexer/lexertl/lexertl_static_functor.hpp	2008-04-20 22:04:06 EDT (Sun, 20 Apr 2008)
@@ -257,7 +257,7 @@
 
         ///////////////////////////////////////////////////////////////////////
         template <typename MultiPass>
-        result_type& operator()(MultiPass& mp, result_type& result)
+        static result_type& get_next(MultiPass& mp, result_type& result)
         {
             shared& data = mp.shared->ftor;
             if (data.first == data.last) 
@@ -342,6 +342,11 @@
         { 
             return mp.shared->ftor.rules.state(statename);
         }
+        
+        // we don't need this, but it must be there
+        template <typename MultiPass>
+        static void destroy(MultiPass const& mp)
+        {}  
     };
 
 #if defined(BOOST_SPIRIT_STATIC_EOF)
Modified: trunk/boost/spirit/home/lex/lexer/lexertl/lexertl_static_lexer.hpp
==============================================================================
--- trunk/boost/spirit/home/lex/lexer/lexertl/lexertl_static_lexer.hpp	(original)
+++ trunk/boost/spirit/home/lex/lexer/lexertl/lexertl_static_lexer.hpp	2008-04-20 22:04:06 EDT (Sun, 20 Apr 2008)
@@ -69,6 +69,9 @@
         typedef std::basic_string<char_type> string_type;
 
     public:
+        typedef Token token_type;
+        typedef typename Token::id_type id_type;
+
         // interface for token definition management
         void add_token (char_type const* state, string_type const& tokendef, 
             std::size_t token_id)
@@ -167,6 +170,7 @@
         //  Every lexer type to be used as a lexer for Spirit has to conform to 
         //  a public interface 
         typedef Token token_type;
+        typedef typename Token::id_type id_type;
         typedef TokenSet token_set;
         typedef lexertl_iterator<Functor> iterator_type;
 
Modified: trunk/boost/spirit/home/support/iterators/detail/combine_policies.hpp
==============================================================================
--- trunk/boost/spirit/home/support/iterators/detail/combine_policies.hpp	(original)
+++ trunk/boost/spirit/home/support/iterators/detail/combine_policies.hpp	2008-04-20 22:04:06 EDT (Sun, 20 Apr 2008)
@@ -414,7 +414,7 @@
     //  multi_pass template, combining 4 separate policies into one. Any other
     //  multi_pass policy class needs to follow the scheme as shown below.
     template<
-        typename Input, typename Ownership, typename Checking,
+        typename Ownership, typename Checking, typename Input, 
         typename Storage
     >
     struct default_policy
Modified: trunk/boost/spirit/home/support/iterators/detail/split_functor_input_policy.hpp
==============================================================================
--- trunk/boost/spirit/home/support/iterators/detail/split_functor_input_policy.hpp	(original)
+++ trunk/boost/spirit/home/support/iterators/detail/split_functor_input_policy.hpp	2008-04-20 22:04:06 EDT (Sun, 20 Apr 2008)
@@ -154,7 +154,6 @@
                 return ftor;
             }
 
-        protected:
             mutable functor_type ftor;
         };