$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r52644 - in trunk: boost/spirit/home/karma/detail boost/spirit/home/lex boost/spirit/home/lex/lexer boost/spirit/home/lex/lexer/lexertl libs/spirit/example/lex libs/spirit/example/lex/static_lexer
From: hartmut.kaiser_at_[hidden]
Date: 2009-04-27 20:56:23
Author: hkaiser
Date: 2009-04-27 20:56:20 EDT (Mon, 27 Apr 2009)
New Revision: 52644
URL: http://svn.boost.org/trac/boost/changeset/52644
Log:
Spirit: Fixed a couple of compilation errors when using gcc 4.3 
Text files modified: 
   trunk/boost/spirit/home/karma/detail/output_iterator.hpp         |     6 ------                                  
   trunk/boost/spirit/home/lex/lexer/lexer.hpp                      |     2 +-                                      
   trunk/boost/spirit/home/lex/lexer/lexertl/wrap_action.hpp        |     9 +++++++--                               
   trunk/boost/spirit/home/lex/lexer/string_token_def.hpp           |     2 +-                                      
   trunk/boost/spirit/home/lex/reference.hpp                        |     4 ++--                                    
   trunk/boost/spirit/home/lex/tokenize_and_parse.hpp               |     6 +++---                                  
   trunk/libs/spirit/example/lex/example1.cpp                       |     2 +-                                      
   trunk/libs/spirit/example/lex/example2.cpp                       |     2 +-                                      
   trunk/libs/spirit/example/lex/example3.cpp                       |     2 +-                                      
   trunk/libs/spirit/example/lex/example5.cpp                       |     2 +-                                      
   trunk/libs/spirit/example/lex/example6.cpp                       |     8 ++++----                                
   trunk/libs/spirit/example/lex/print_numbers.cpp                  |     2 +-                                      
   trunk/libs/spirit/example/lex/static_lexer/word_count_tokens.hpp |     2 +-                                      
   trunk/libs/spirit/example/lex/strip_comments.cpp                 |     2 +-                                      
   14 files changed, 25 insertions(+), 26 deletions(-)
Modified: trunk/boost/spirit/home/karma/detail/output_iterator.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/detail/output_iterator.hpp	(original)
+++ trunk/boost/spirit/home/karma/detail/output_iterator.hpp	2009-04-27 20:56:20 EDT (Mon, 27 Apr 2009)
@@ -254,13 +254,7 @@
             traits::is_not_unused<Derived>, Derived, output_iterator
         >::type most_derived_type;
 
-#if !defined(BOOST_NO_MEMBER_TEMPLATE_FRIENDS)
-    private:
-        friend struct counting_sink<output_iterator<OutputIterator, Derived> >;
-        friend struct enable_buffering<output_iterator<OutputIterator, Derived> >;
-#else
     public:
-#endif
         // functions related to counting
         counting_sink<most_derived_type>* chain_counting(
             counting_sink<most_derived_type>* count_data)
Modified: trunk/boost/spirit/home/lex/lexer/lexer.hpp
==============================================================================
--- trunk/boost/spirit/home/lex/lexer/lexer.hpp	(original)
+++ trunk/boost/spirit/home/lex/lexer/lexer.hpp	2009-04-27 20:56:20 EDT (Mon, 27 Apr 2009)
@@ -42,7 +42,7 @@
               , lexer_def_<LexerDef> >
           , qi::parser<lexer_def_<LexerDef> >
           , lex::lexer_type<lexer_def_<LexerDef> >
-          , noncopyable
+//           , noncopyable
         {
         private:
             // avoid warnings about using 'this' in constructor
Modified: trunk/boost/spirit/home/lex/lexer/lexertl/wrap_action.hpp
==============================================================================
--- trunk/boost/spirit/home/lex/lexer/lexertl/wrap_action.hpp	(original)
+++ trunk/boost/spirit/home/lex/lexer/lexertl/wrap_action.hpp	2009-04-27 20:56:20 EDT (Mon, 27 Apr 2009)
@@ -13,6 +13,7 @@
 #include <boost/spirit/home/phoenix/core/argument.hpp>
 #include <boost/spirit/home/phoenix/bind.hpp>
 #include <boost/spirit/home/phoenix/scope.hpp>
+#include <boost/spirit/home/support/attributes.hpp>
 
 ///////////////////////////////////////////////////////////////////////////////
 namespace boost { namespace spirit { namespace lex { namespace lexertl 
@@ -42,8 +43,12 @@
                   , Attribute const& attr, std::size_t id, bool& pass
                   , Context& ctx) const
                 {
-                    f (spirit::detail::pass_value<Attribute const>::call(attr)
-                      , id, pass, ctx);
+                    typedef typename 
+                        traits::pass_attribute<unused_type, Attribute const>::type
+                    attribute_type;
+
+                    attribute_type attr_wrap(attr);
+                    f (attr_wrap, id, pass, ctx);
                 }
             };
 
Modified: trunk/boost/spirit/home/lex/lexer/string_token_def.hpp
==============================================================================
--- trunk/boost/spirit/home/lex/lexer/string_token_def.hpp	(original)
+++ trunk/boost/spirit/home/lex/lexer/string_token_def.hpp	2009-04-27 20:56:20 EDT (Mon, 27 Apr 2009)
@@ -100,7 +100,7 @@
         template <typename Terminal>
         result_type operator()(Terminal const& term, unused_type) const
         {
-            return result_type(fusion::at_c<0>(term.args), no_case());
+            return result_type(fusion::at_c<0>(term.args));
         }
     };
 
Modified: trunk/boost/spirit/home/lex/reference.hpp
==============================================================================
--- trunk/boost/spirit/home/lex/reference.hpp	(original)
+++ trunk/boost/spirit/home/lex/reference.hpp	2009-04-27 20:56:20 EDT (Mon, 27 Apr 2009)
@@ -37,7 +37,7 @@
         template <typename LexerDef, typename String>
         void collect(LexerDef& lexdef, String const& state) const
         {
-            return ref.get().collect(lexdef, state);
+            return this->ref.get().collect(lexdef, state);
         }
     };
 
@@ -49,7 +49,7 @@
 
         IdType id() const 
         { 
-            return ref.get().id(); 
+            return this->ref.get().id(); 
         }
     };
 
Modified: trunk/boost/spirit/home/lex/tokenize_and_parse.hpp
==============================================================================
--- trunk/boost/spirit/home/lex/tokenize_and_parse.hpp	(original)
+++ trunk/boost/spirit/home/lex/tokenize_and_parse.hpp	2009-04-27 20:56:20 EDT (Mon, 27 Apr 2009)
@@ -176,15 +176,15 @@
         typedef
             typename result_of::compile<qi::domain, Skipper>::type
         skipper_type;
-        skipper_type const skipper_ = compile<qi::domain>(skipper);
+        skipper_type const skipper = compile<qi::domain>(skipper_);
 
         typename Lexer::iterator_type iter = lex.begin(first, last);
         if (!compile<qi::domain>(xpr).parse(
-                iter, lex.end(), unused, skipper_, attr))
+                iter, lex.end(), unused, skipper, attr))
             return false;
 
         // do a final post-skip
-        qi::skip_over(iter, lex.end(), skipper_);
+        qi::skip_over(iter, lex.end(), skipper);
         return true;
     }
 
Modified: trunk/libs/spirit/example/lex/example1.cpp
==============================================================================
--- trunk/libs/spirit/example/lex/example1.cpp	(original)
+++ trunk/libs/spirit/example/lex/example1.cpp	2009-04-27 20:56:20 EDT (Mon, 27 Apr 2009)
@@ -23,7 +23,7 @@
 
 #include <boost/config/warning_disable.hpp>
 #include <boost/spirit/include/qi.hpp>
-#include <boost/spirit/include/lex_lexer_lexertl.hpp>
+#include <boost/spirit/include/lex_lexertl.hpp>
 
 #include <iostream>
 #include <fstream>
Modified: trunk/libs/spirit/example/lex/example2.cpp
==============================================================================
--- trunk/libs/spirit/example/lex/example2.cpp	(original)
+++ trunk/libs/spirit/example/lex/example2.cpp	2009-04-27 20:56:20 EDT (Mon, 27 Apr 2009)
@@ -56,7 +56,7 @@
         // interpreted literally and never as special regex characters. This is
         // done to be able to assign single characters the id of their character
         // code value, allowing to reference those as literals in Qi grammars.
-        self = token_def<>(',') | '!' | '.' | '?' | ' ' | '\n' | word;
+        this->self = token_def<>(',') | '!' | '.' | '?' | ' ' | '\n' | word;
     }
 
     token_def<> word;
Modified: trunk/libs/spirit/example/lex/example3.cpp
==============================================================================
--- trunk/libs/spirit/example/lex/example3.cpp	(original)
+++ trunk/libs/spirit/example/lex/example3.cpp	2009-04-27 20:56:20 EDT (Mon, 27 Apr 2009)
@@ -23,7 +23,7 @@
 
 #include <boost/config/warning_disable.hpp>
 #include <boost/spirit/include/qi.hpp>
-#include <boost/spirit/include/lex_lexer_lexertl.hpp>
+#include <boost/spirit/include/lex_lexertl.hpp>
 
 #include <iostream>
 #include <fstream>
Modified: trunk/libs/spirit/example/lex/example5.cpp
==============================================================================
--- trunk/libs/spirit/example/lex/example5.cpp	(original)
+++ trunk/libs/spirit/example/lex/example5.cpp	2009-04-27 20:56:20 EDT (Mon, 27 Apr 2009)
@@ -25,7 +25,7 @@
 
 #include <boost/config/warning_disable.hpp>
 #include <boost/spirit/include/qi.hpp>
-#include <boost/spirit/include/lex_lexer_lexertl.hpp>
+#include <boost/spirit/include/lex_lexertl.hpp>
 #include <boost/spirit/include/phoenix_operator.hpp>
 
 #include <iostream>
Modified: trunk/libs/spirit/example/lex/example6.cpp
==============================================================================
--- trunk/libs/spirit/example/lex/example6.cpp	(original)
+++ trunk/libs/spirit/example/lex/example6.cpp	2009-04-27 20:56:20 EDT (Mon, 27 Apr 2009)
@@ -27,7 +27,7 @@
 
 #include <boost/config/warning_disable.hpp>
 #include <boost/spirit/include/qi.hpp>
-#include <boost/spirit/include/lex_lexer_lexertl.hpp>
+#include <boost/spirit/include/lex_lexertl.hpp>
 #include <boost/spirit/include/phoenix_operator.hpp>
 
 #include <iostream>
@@ -76,13 +76,13 @@
             ;
 
         // associate the tokens and the token set with the lexer
-        self = token_def<>('(') | ')' | '{' | '}' | '=' | ';';
+        this->self = token_def<>('(') | ')' | '{' | '}' | '=' | ';';
 
         // Token definitions can be added by using some special syntactic 
         // construct as shown below.
         // Note, that the token definitions added this way expose the iterator
         // pair pointing to the matched input stream as their attribute.
-        self.add
+        this->self.add
             (constant, ID_CONSTANT)
             ("if", ID_IF)
             ("else", ID_ELSE)
@@ -91,7 +91,7 @@
         ;
 
         // add whitespace tokens to another lexer state (here: "WS")
-        self("WS") = white_space;
+        this->self("WS") = white_space;
     }
 
     // The following two tokens have an associated value type, identifier 
Modified: trunk/libs/spirit/example/lex/print_numbers.cpp
==============================================================================
--- trunk/libs/spirit/example/lex/print_numbers.cpp	(original)
+++ trunk/libs/spirit/example/lex/print_numbers.cpp	2009-04-27 20:56:20 EDT (Mon, 27 Apr 2009)
@@ -21,7 +21,7 @@
 
 #include <boost/config/warning_disable.hpp>
 #include <boost/spirit/include/qi.hpp>
-#include <boost/spirit/include/lex_lexer_lexertl.hpp>
+#include <boost/spirit/include/lex_lexertl.hpp>
 #include <boost/spirit/include/phoenix_operator.hpp>
 
 #include <iostream>
Modified: trunk/libs/spirit/example/lex/static_lexer/word_count_tokens.hpp
==============================================================================
--- trunk/libs/spirit/example/lex/static_lexer/word_count_tokens.hpp	(original)
+++ trunk/libs/spirit/example/lex/static_lexer/word_count_tokens.hpp	2009-04-27 20:56:20 EDT (Mon, 27 Apr 2009)
@@ -31,7 +31,7 @@
     {
         // define tokens and associate them with the lexer
         word = "[^ \t\n]+";
-        this->self = word | '\n' | token_def<>(".", IDANY);
+        this->self = word | '\n' | boost::spirit::lex::token_def<>(".", IDANY);
     }
 
     boost::spirit::lex::token_def<std::string> word;
Modified: trunk/libs/spirit/example/lex/strip_comments.cpp
==============================================================================
--- trunk/libs/spirit/example/lex/strip_comments.cpp	(original)
+++ trunk/libs/spirit/example/lex/strip_comments.cpp	2009-04-27 20:56:20 EDT (Mon, 27 Apr 2009)
@@ -35,7 +35,7 @@
 
 #include <boost/config/warning_disable.hpp>
 #include <boost/spirit/include/qi.hpp>
-#include <boost/spirit/include/lex_lexer_lexertl.hpp>
+#include <boost/spirit/include/lex_lexertl.hpp>
 #include <boost/spirit/include/phoenix_operator.hpp>
 #include <boost/spirit/include/phoenix_container.hpp>