$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r52185 - trunk/boost/spirit/home/support/detail/lexer
From: jamin.hanson_at_[hidden]
Date: 2009-04-05 08:19:52
Author: ben_hanson
Date: 2009-04-05 08:19:49 EDT (Sun, 05 Apr 2009)
New Revision: 52185
URL: http://svn.boost.org/trac/boost/changeset/52185
Log:
Copyright date update
Text files modified: 
   trunk/boost/spirit/home/support/detail/lexer/char_traits.hpp   |     2                                         
   trunk/boost/spirit/home/support/detail/lexer/consts.hpp        |     4                                         
   trunk/boost/spirit/home/support/detail/lexer/debug.hpp         |   190 ++++++++++++++++++++++++----------------
   trunk/boost/spirit/home/support/detail/lexer/file_input.hpp    |    28 +++--                                   
   trunk/boost/spirit/home/support/detail/lexer/generate_cpp.hpp  |    12 +                                       
   trunk/boost/spirit/home/support/detail/lexer/input.hpp         |    51 +++++-----                              
   trunk/boost/spirit/home/support/detail/lexer/rules.hpp         |    22 ++++                                    
   trunk/boost/spirit/home/support/detail/lexer/runtime_error.hpp |     2                                         
   trunk/boost/spirit/home/support/detail/lexer/size_t.hpp        |     2                                         
   trunk/boost/spirit/home/support/detail/lexer/string_token.hpp  |     2                                         
   10 files changed, 188 insertions(+), 127 deletions(-)
Modified: trunk/boost/spirit/home/support/detail/lexer/char_traits.hpp
==============================================================================
--- trunk/boost/spirit/home/support/detail/lexer/char_traits.hpp	(original)
+++ trunk/boost/spirit/home/support/detail/lexer/char_traits.hpp	2009-04-05 08:19:49 EDT (Sun, 05 Apr 2009)
@@ -1,5 +1,5 @@
 // char_traits.hpp
-// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2009 Ben Hanson (http://www.benhanson.net/)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: trunk/boost/spirit/home/support/detail/lexer/consts.hpp
==============================================================================
--- trunk/boost/spirit/home/support/detail/lexer/consts.hpp	(original)
+++ trunk/boost/spirit/home/support/detail/lexer/consts.hpp	2009-04-05 08:19:49 EDT (Sun, 05 Apr 2009)
@@ -1,5 +1,5 @@
 // consts.h
-// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2009 Ben Hanson (http://www.benhanson.net/)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -20,7 +20,7 @@
     enum {end_state_index, id_index, state_index, bol_index, eol_index,
         dead_state_index, dfa_offset};
 
-    const std::size_t max_macro_len = 20;
+    const std::size_t max_macro_len = 30;
     const std::size_t num_chars = 256;
     const std::size_t num_wchar_ts =
         (boost::integer_traits<wchar_t>::const_max < 0x110000) ?
Modified: trunk/boost/spirit/home/support/detail/lexer/debug.hpp
==============================================================================
--- trunk/boost/spirit/home/support/detail/lexer/debug.hpp	(original)
+++ trunk/boost/spirit/home/support/detail/lexer/debug.hpp	2009-04-05 08:19:49 EDT (Sun, 05 Apr 2009)
@@ -1,5 +1,5 @@
 // debug.hpp
-// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2009 Ben Hanson (http://www.benhanson.net/)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -8,6 +8,7 @@
 
 #include <map>
 #include <ostream>
+#include "rules.hpp"
 #include "size_t.hpp"
 #include "state_machine.hpp"
 #include "string_token.hpp"
@@ -112,6 +113,24 @@
         }
     }
 
+    static void dump (const basic_state_machine<CharT> &state_machine_,
+        basic_rules<CharT> &rules_, ostream &stream_)
+    {
+        typename basic_state_machine<CharT>::iterator iter_ =
+            state_machine_.begin ();
+        typename basic_state_machine<CharT>::iterator end_ =
+            state_machine_.end ();
+
+        for (std::size_t dfa_ = 0, dfas_ = state_machine_.size ();
+            dfa_ < dfas_; ++dfa_)
+        {
+            lexer_state (stream_);
+            stream_ << rules_.state (dfa_) << std::endl << std::endl;
+
+            dump_ex (iter_, stream_);
+        }
+    }
+
     static void dump (const basic_state_machine<CharT> &state_machine_, ostream &stream_)
     {
         typename basic_state_machine<CharT>::iterator iter_ =
@@ -122,173 +141,192 @@
         for (std::size_t dfa_ = 0, dfas_ = state_machine_.size ();
             dfa_ < dfas_; ++dfa_)
         {
-            const std::size_t states_ = iter_->states;
+            lexer_state (stream_);
+            stream_ << dfa_ << std::endl << std::endl;
 
-            for (std::size_t i_ = 0; i_ < states_; ++i_)
+            dump_ex (iter_, stream_);
+        }
+    }
+
+protected:
+    typedef std::basic_stringstream<CharT> stringstream;
+
+    static void dump_ex (typename basic_state_machine<CharT>::iterator &iter_,
+        ostream &stream_)
+    {
+        const std::size_t states_ = iter_->states;
+
+        for (std::size_t i_ = 0; i_ < states_; ++i_)
+        {
+            state (stream_);
+            stream_ << i_ << std::endl;
+
+            if (iter_->end_state)
             {
-                state (stream_);
-                stream_ << i_ << std::endl;
+                end_state (stream_);
+                stream_ << iter_->id;
+                dfa (stream_);
+                stream_ << iter_->goto_dfa;
+                stream_ << std::endl;
+            }
 
-                if (iter_->end_state)
-                {
-                    end_state (stream_);
-                    stream_ << iter_->id;
-                    dfa (stream_);
-                    stream_ << iter_->goto_dfa;
-                    stream_ << std::endl;
-                }
+            if (iter_->bol_index != npos)
+            {
+                bol (stream_);
+                stream_ << iter_->bol_index << std::endl;
+            }
 
-                if (iter_->bol_index != npos)
-                {
-                    bol (stream_);
-                    stream_ << iter_->bol_index << std::endl;
-                }
+            if (iter_->eol_index != npos)
+            {
+                eol (stream_);
+                stream_ << iter_->eol_index << std::endl;
+            }
 
-                if (iter_->eol_index != npos)
-                {
-                    eol (stream_);
-                    stream_ << iter_->eol_index << std::endl;
-                }
+            const std::size_t transitions_ = iter_->transitions;
+
+            if (transitions_ == 0)
+            {
+                ++iter_;
+            }
 
-                const std::size_t transitions_ = iter_->transitions;
+            for (std::size_t t_ = 0; t_ < transitions_; ++t_)
+            {
+                std::size_t goto_state_ = iter_->goto_state;
 
-                if (transitions_ == 0)
+                if (iter_->token.any ())
                 {
-                    ++iter_;
+                    any (stream_);
                 }
-
-                for (std::size_t t_ = 0; t_ < transitions_; ++t_)
+                else
                 {
-                    std::size_t goto_state_ = iter_->goto_state;
+                    open_bracket (stream_);
 
-                    if (iter_->token.any ())
+                    if (iter_->token._negated)
                     {
-                        any (stream_);
+                        negated (stream_);
                     }
-                    else
-                    {
-                        open_bracket (stream_);
 
-                        if (iter_->token._negated)
-                        {
-                            negated (stream_);
-                        }
-
-                        string charset_;
-                        CharT c_ = 0;
-
-                        escape_control_chars (iter_->token._charset,
-                            charset_);
-                        c_ = *charset_.c_str ();
-
-                        if (!iter_->token._negated &&
-                            (c_ == '^' || c_ == ']'))
-                        {
-                            stream_ << '\\';
-                        }
+                    string charset_;
+                    CharT c_ = 0;
 
-                        stream_ << charset_;
-                        close_bracket (stream_);
+                    escape_control_chars (iter_->token._charset,
+                        charset_);
+                    c_ = *charset_.c_str ();
+
+                    if (!iter_->token._negated &&
+                        (c_ == '^' || c_ == ']'))
+                    {
+                        stream_ << '\\';
                     }
 
-                    stream_ << goto_state_ << std::endl;
-                    ++iter_;
+                    stream_ << charset_;
+                    close_bracket (stream_);
                 }
 
-                stream_ << std::endl;
+                stream_ << goto_state_ << std::endl;
+                ++iter_;
             }
+
+            stream_ << std::endl;
         }
     }
 
-protected:
-    typedef std::basic_stringstream<CharT> stringstream;
+    static void lexer_state (std::ostream &stream_)
+    {
+        stream_ << "Lexer state: ";
+    }
+
+    static void lexer_state (std::wostream &stream_)
+    {
+        stream_ << L"Lexer state: ";
+    }
 
-    static void state (std::basic_ostream<char> &stream_)
+    static void state (std::ostream &stream_)
     {
         stream_ << "State: ";
     }
 
-    static void state (std::basic_ostream<wchar_t> &stream_)
+    static void state (std::wostream &stream_)
     {
         stream_ << L"State: ";
     }
 
-    static void bol (std::basic_ostream<char> &stream_)
+    static void bol (std::ostream &stream_)
     {
         stream_ << "  BOL -> ";
     }
 
-    static void bol (std::basic_ostream<wchar_t> &stream_)
+    static void bol (std::wostream &stream_)
     {
         stream_ << L"  BOL -> ";
     }
 
-    static void eol (std::basic_ostream<char> &stream_)
+    static void eol (std::ostream &stream_)
     {
         stream_ << "  EOL -> ";
     }
 
-    static void eol (std::basic_ostream<wchar_t> &stream_)
+    static void eol (std::wostream &stream_)
     {
         stream_ << L"  EOL -> ";
     }
 
-    static void end_state (std::basic_ostream<char> &stream_)
+    static void end_state (std::ostream &stream_)
     {
         stream_ << "  END STATE, Id = ";
     }
 
-    static void end_state (std::basic_ostream<wchar_t> &stream_)
+    static void end_state (std::wostream &stream_)
     {
         stream_ << L"  END STATE, Id = ";
     }
 
-    static void any (std::basic_ostream<char> &stream_)
+    static void any (std::ostream &stream_)
     {
         stream_ << "  . -> ";
     }
 
-    static void any (std::basic_ostream<wchar_t> &stream_)
+    static void any (std::wostream &stream_)
     {
         stream_ << L"  . -> ";
     }
 
-    static void open_bracket (std::basic_ostream<char> &stream_)
+    static void open_bracket (std::ostream &stream_)
     {
         stream_ << "  [";
     }
 
-    static void open_bracket (std::basic_ostream<wchar_t> &stream_)
+    static void open_bracket (std::wostream &stream_)
     {
         stream_ << L"  [";
     }
 
-    static void negated (std::basic_ostream<char> &stream_)
+    static void negated (std::ostream &stream_)
     {
         stream_ << "^";
     }
 
-    static void negated (std::basic_ostream<wchar_t> &stream_)
+    static void negated (std::wostream &stream_)
     {
         stream_ << L"^";
     }
 
-    static void close_bracket (std::basic_ostream<char> &stream_)
+    static void close_bracket (std::ostream &stream_)
     {
         stream_ << "] -> ";
     }
 
-    static void close_bracket (std::basic_ostream<wchar_t> &stream_)
+    static void close_bracket (std::wostream &stream_)
     {
         stream_ << L"] -> ";
     }
 
-    static void dfa (std::basic_ostream<char> &stream_)
+    static void dfa (std::ostream &stream_)
     {
         stream_ << ", dfa = ";
     }
 
-    static void dfa (std::basic_ostream<wchar_t> &stream_)
+    static void dfa (std::wostream &stream_)
     {
         stream_ << L", dfa = ";
     }
Modified: trunk/boost/spirit/home/support/detail/lexer/file_input.hpp
==============================================================================
--- trunk/boost/spirit/home/support/detail/lexer/file_input.hpp	(original)
+++ trunk/boost/spirit/home/support/detail/lexer/file_input.hpp	2009-04-05 08:19:49 EDT (Sun, 05 Apr 2009)
@@ -1,5 +1,5 @@
 // file_input.hpp
-// Copyright (c) 2008 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2008-2009 Ben Hanson (http://www.benhanson.net/)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -96,19 +96,21 @@
 
         void next_token ()
         {
+            const detail::internals &internals_ = _input->_state_machine->data ();
+
             _data.start = _data.end;
 
-            if (_input->_state_machine->_dfa->size () == 1)
+            if (internals_._dfa->size () == 1)
             {
-                _data.id = _input->next (&_input->_state_machine->_lookup->
-                    front ()->front (), _input->_state_machine->_dfa_alphabet.
-                    front (), &_input->_state_machine->_dfa->front ()->
-                    front (), _data.start, _data.end);
+                _data.id = _input->next (&internals_._lookup->front ()->
+                    front (), internals_._dfa_alphabet.front (),
+                    &internals_._dfa->front ()->front (), _data.start,
+                    _data.end);
             }
             else
             {
-                _data.id = _input->next (*_input->_state_machine, _data.state,
-                    _data.start, _data.end);
+                _data.id = _input->next (internals_, _data.state, _data.start,
+                    _data.end);
             }
 
             if (_data.id == 0)
@@ -197,16 +199,16 @@
     const CharT *_end_token;
     CharT *_end_buffer;
 
-    std::size_t next (const basic_state_machine<CharT> &state_machine_,
+    std::size_t next (const detail::internals &internals_,
         std::size_t &start_state_, const CharT * &start_, const CharT * &end_)
     {
         _start_token = _end_token;
 
 again:
-        const std::size_t * lookup_ = &state_machine_._lookup[start_state_]->
+        const std::size_t * lookup_ = &internals_._lookup[start_state_]->
             front ();
-        std::size_t dfa_alphabet_ = state_machine_._dfa_alphabet[start_state_];
-        const std::size_t *dfa_ = &state_machine_._dfa[start_state_]->front ();
+        std::size_t dfa_alphabet_ = internals_._dfa_alphabet[start_state_];
+        const std::size_t *dfa_ = &internals_._dfa[start_state_]->front ();
         const std::size_t *ptr_ = dfa_ + dfa_alphabet_;
         const CharT *curr_ = _start_token;
         bool end_state_ = *ptr_ != 0;
@@ -416,9 +418,9 @@
             else if (_start_token < _end_buffer)
             {
                 const std::size_t len_ = _end_buffer - _start_token;
+                // Some systems have memcpy in namespace std.
                 using namespace std;
 
-                // Some systems have memcpy in namespace std.
                 memcpy (_start_buffer, _start_token - 1, (len_ + 1) * sizeof (CharT));
                 _stream->read (_start_buffer + len_ + 1,
                     static_cast<std::streamsize> (_buffer.size () - len_ - 1));
Modified: trunk/boost/spirit/home/support/detail/lexer/generate_cpp.hpp
==============================================================================
--- trunk/boost/spirit/home/support/detail/lexer/generate_cpp.hpp	(original)
+++ trunk/boost/spirit/home/support/detail/lexer/generate_cpp.hpp	2009-04-05 08:19:49 EDT (Sun, 05 Apr 2009)
@@ -1,5 +1,5 @@
 // generate_cpp_code.hpp
-// Copyright (c) 2008 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2008-2009 Ben Hanson (http://www.benhanson.net/)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -8,6 +8,7 @@
 
 #include "char_traits.hpp"
 #include "consts.hpp"
+#include "internals.hpp"
 #include <iostream>
 #include <boost/detail/iterator.hpp>
 #include "runtime_error.hpp"
@@ -20,10 +21,13 @@
 namespace lexer
 {
 template<typename CharT>
-void generate_cpp (const basic_state_machine<CharT> &sm_, std::ostream &os_,
-    const bool use_pointers_ = false, const bool skip_unknown_ = true,
-    const bool optimise_parameters_ = true, const char *name_ = "next_token")
+void generate_cpp (const basic_state_machine<CharT> &state_machine_,
+    std::ostream &os_, const bool use_pointers_ = false,
+    const bool skip_unknown_ = true, const bool optimise_parameters_ = true,
+    const char *name_ = "next_token")
 {
+    const detail::internals &sm_ = state_machine_.data ();
+
     if (sm_._lookup->size () == 0)
     {
         throw runtime_error ("Cannot generate code from an empty state machine");
Modified: trunk/boost/spirit/home/support/detail/lexer/input.hpp
==============================================================================
--- trunk/boost/spirit/home/support/detail/lexer/input.hpp	(original)
+++ trunk/boost/spirit/home/support/detail/lexer/input.hpp	2009-04-05 08:19:49 EDT (Sun, 05 Apr 2009)
@@ -1,5 +1,5 @@
 // input.hpp
-// Copyright (c) 2008 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2008-2009 Ben Hanson (http://www.benhanson.net/)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -7,7 +7,7 @@
 #define BOOST_LEXER_INPUT
 
 #include "char_traits.hpp"
-#include <iterator>
+#include <boost/detail/iterator.hpp>
 #include "size_t.hpp"
 #include "state_machine.hpp"
 
@@ -102,38 +102,39 @@
 
         void next_token ()
         {
+            const detail::internals &internals_ = _input->_state_machine->data ();
+
             _data.start = _data.end;
 
-            if (_input->_state_machine->_dfa->size () == 1)
+            if (internals_._dfa->size () == 1)
             {
-                if (_input->_state_machine->_seen_BOL_assertion ||
-                    _input->_state_machine->_seen_EOL_assertion)
+                if (internals_._seen_BOL_assertion ||
+                    internals_._seen_EOL_assertion)
                 {
                     _data.id = next
-                        (&_input->_state_machine->_lookup->front ()->front (),
-                        _input->_state_machine->_dfa_alphabet.front (),
-                        &_input->_state_machine->_dfa->front ()->front (),
+                        (&internals_._lookup->front ()->front (),
+                        internals_._dfa_alphabet.front (),
+                        &internals_._dfa->front ()->front (),
                         _data.bol, _data.end, _input->_end);
                 }
                 else
                 {
-                    _data.id = next (&_input->_state_machine->_lookup->
-                        front ()->front (), _input->_state_machine->
-                        _dfa_alphabet.front (), &_input->_state_machine->
+                    _data.id = next (&internals_._lookup->front ()->front (),
+                        internals_._dfa_alphabet.front (), &internals_.
                         _dfa->front ()->front (), _data.end, _input->_end);
                 }
             }
             else
             {
-                if (_input->_state_machine->_seen_BOL_assertion ||
-                    _input->_state_machine->_seen_EOL_assertion)
+                if (internals_._seen_BOL_assertion ||
+                    internals_._seen_EOL_assertion)
                 {
-                    _data.id = next (*_input->_state_machine, _data.state,
+                    _data.id = next (internals_, _data.state,
                         _data.bol, _data.end, _input->_end);
                 }
                 else
                 {
-                    _data.id = next (*_input->_state_machine, _data.state,
+                    _data.id = next (internals_, _data.state,
                         _data.end, _input->_end);
                 }
             }
@@ -145,18 +146,17 @@
             }
         }
 
-        std::size_t next (const basic_state_machine
-            <typename Traits::char_type> &state_machine_,
+        std::size_t next (const detail::internals &internals_,
             std::size_t &start_state_, bool bol_,
             FwdIter &start_token_, const FwdIter &end_)
         {
             if (start_token_ == end_) return 0;
 
         again:
-            const std::size_t * lookup_ = &state_machine_._lookup[start_state_]->
+            const std::size_t * lookup_ = &internals_._lookup[start_state_]->
                 front ();
-            std::size_t dfa_alphabet_ = state_machine_._dfa_alphabet[start_state_];
-            const std::size_t *dfa_ = &state_machine_._dfa[start_state_]->front ();
+            std::size_t dfa_alphabet_ = internals_._dfa_alphabet[start_state_];
+            const std::size_t *dfa_ = &internals_._dfa[start_state_]->front ();
             const std::size_t *ptr_ = dfa_ + dfa_alphabet_;
             FwdIter curr_ = start_token_;
             bool end_state_ = *ptr_ != 0;
@@ -244,18 +244,17 @@
             return id_;
         }
 
-        std::size_t next (const basic_state_machine
-            <typename Traits::char_type> &state_machine_,
+        std::size_t next (const detail::internals &internals_,
             std::size_t &start_state_, FwdIter &start_token_,
             FwdIter const &end_)
         {
             if (start_token_ == end_) return 0;
 
         again:
-            const std::size_t * lookup_ = &state_machine_._lookup[start_state_]->
+            const std::size_t * lookup_ = &internals_._lookup[start_state_]->
                 front ();
-            std::size_t dfa_alphabet_ = state_machine_._dfa_alphabet[start_state_];
-            const std::size_t *dfa_ = &state_machine_._dfa[start_state_]->front ();
+            std::size_t dfa_alphabet_ = internals_._dfa_alphabet[start_state_];
+            const std::size_t *dfa_ = &internals_._dfa[start_state_]->front ();
             const std::size_t *ptr_ = dfa_ + dfa_alphabet_;
             FwdIter curr_ = start_token_;
             bool end_state_ = *ptr_ != 0;
@@ -456,7 +455,7 @@
         iter_._data.id = npos;
         iter_._data.start = _begin;
         iter_._data.end = _begin;
-        iter_._data.bol = _state_machine->_seen_BOL_assertion;
+        iter_._data.bol = _state_machine->data ()._seen_BOL_assertion;
         iter_._data.state = 0;
         ++iter_;
         return iter_;
Modified: trunk/boost/spirit/home/support/detail/lexer/rules.hpp
==============================================================================
--- trunk/boost/spirit/home/support/detail/lexer/rules.hpp	(original)
+++ trunk/boost/spirit/home/support/detail/lexer/rules.hpp	2009-04-05 08:19:49 EDT (Sun, 05 Apr 2009)
@@ -1,5 +1,5 @@
 // rules.hpp
-// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2009 Ben Hanson (http://www.benhanson.net/)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -129,6 +129,18 @@
         return state_;
     }
 
+    const CharT *state (const std::size_t index_) const
+    {
+        if (index_ == 0)
+        {
+            return initial ();
+        }
+        else
+        {
+            return _lexer_state_names[index_ - 1].c_str ();
+        }
+    }
+
     void add_state (const CharT *name_)
     {
         validate (name_);
@@ -139,6 +151,11 @@
             _regexes.push_back (string_deque ());
             _ids.push_back (id_vector ());
             _states.push_back (id_vector ());
+
+            if (string (name_) != initial ())
+            {
+                _lexer_state_names.push_back (name_);
+            }
         }
     }
 
@@ -320,6 +337,7 @@
     id_vector_deque _states;
     regex_flags _flags;
     std::locale _locale;
+    string_deque _lexer_state_names;
 
     void add (const CharT *curr_state_, const string ®ex_,
         const std::size_t id_, const CharT *new_state_, const bool check_)
@@ -403,7 +421,7 @@
                     std::ostringstream os_;
 
                     os_ << "Unknown state name '";
-                    curr_state_ = state_.c_str();
+                    curr_state_ = state_.c_str ();
 
                     while (*curr_state_)
                     {
Modified: trunk/boost/spirit/home/support/detail/lexer/runtime_error.hpp
==============================================================================
--- trunk/boost/spirit/home/support/detail/lexer/runtime_error.hpp	(original)
+++ trunk/boost/spirit/home/support/detail/lexer/runtime_error.hpp	2009-04-05 08:19:49 EDT (Sun, 05 Apr 2009)
@@ -1,5 +1,5 @@
 // runtime_error.hpp
-// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2009 Ben Hanson (http://www.benhanson.net/)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: trunk/boost/spirit/home/support/detail/lexer/size_t.hpp
==============================================================================
--- trunk/boost/spirit/home/support/detail/lexer/size_t.hpp	(original)
+++ trunk/boost/spirit/home/support/detail/lexer/size_t.hpp	2009-04-05 08:19:49 EDT (Sun, 05 Apr 2009)
@@ -1,5 +1,5 @@
 // size_t.h
-// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2009 Ben Hanson (http://www.benhanson.net/)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Modified: trunk/boost/spirit/home/support/detail/lexer/string_token.hpp
==============================================================================
--- trunk/boost/spirit/home/support/detail/lexer/string_token.hpp	(original)
+++ trunk/boost/spirit/home/support/detail/lexer/string_token.hpp	2009-04-05 08:19:49 EDT (Sun, 05 Apr 2009)
@@ -1,5 +1,5 @@
 // string_token.hpp
-// Copyright (c) 2007-2008 Ben Hanson (http://www.benhanson.net/)
+// Copyright (c) 2007-2009 Ben Hanson (http://www.benhanson.net/)
 //
 // Distributed under the Boost Software License, Version 1.0. (See accompanying
 // file licence_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)