Boost logo

Boost-Commit :

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;
         };
 


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk