Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r78313 - in trunk/boost/spirit/repository/home/qi/operator: . detail
From: joel_at_[hidden]
Date: 2012-05-02 20:50:20


Author: djowel
Date: 2012-05-02 20:50:19 EDT (Wed, 02 May 2012)
New Revision: 78313
URL: http://svn.boost.org/trac/boost/changeset/78313

Log:
patches from teejay
Text files modified:
   trunk/boost/spirit/repository/home/qi/operator/detail/keywords.hpp | 15 ++++---
   trunk/boost/spirit/repository/home/qi/operator/keywords.hpp | 78 ++++++++++++++++++++--------------------
   2 files changed, 47 insertions(+), 46 deletions(-)

Modified: trunk/boost/spirit/repository/home/qi/operator/detail/keywords.hpp
==============================================================================
--- trunk/boost/spirit/repository/home/qi/operator/detail/keywords.hpp (original)
+++ trunk/boost/spirit/repository/home/qi/operator/detail/keywords.hpp 2012-05-02 20:50:19 EDT (Wed, 02 May 2012)
@@ -369,8 +369,8 @@
 
                         // Make the keyword/parse index entry in the tst parser
                         lookup->add(
- traits::get_begin<char_type>(parser.subject.keyword.str),
- traits::get_end<char_type>(parser.subject.keyword.str),
+ traits::get_begin<char_type>(get_string(parser.subject.keyword)),
+ traits::get_end<char_type>(get_string(parser.subject.keyword)),
                                 position
                                 );
                         // Get the initial state of the flags array and store it in the flags initializer
@@ -397,8 +397,8 @@
                     {
                         // Make the keyword/parse index entry in the tst parser
                         lookup->add(
- traits::get_begin<char_type>(parser.subject.keyword.str),
- traits::get_end<char_type>(parser.subject.keyword.str),
+ traits::get_begin<char_type>(get_string(parser.subject.keyword)),
+ traits::get_end<char_type>(get_string(parser.subject.keyword)),
                                 position
                                 );
                         // Get the initial state of the flags array and store it in the flags initializer
@@ -406,19 +406,20 @@
                         return 0;
                     }
 
+
                 template <typename String, bool no_attribute>
- const String & get_string(const boost::spirit::qi::literal_string<String,no_attribute> &parser) const
+ const String get_string(const boost::spirit::qi::literal_string<String,no_attribute> &parser) const
                 {
                         return parser.str;
                 }
 
- template <typename String, bool no_attribute>
+ template <typename String, bool no_attribute>
                 const typename boost::spirit::qi::no_case_literal_string<String,no_attribute>::string_type &
                         get_string(const boost::spirit::qi::no_case_literal_string<String,no_attribute> &parser) const
                 {
                         return parser.str_lo;
                 }
-
+
 
 
                 shared_ptr<keywords_type> lookup;

Modified: trunk/boost/spirit/repository/home/qi/operator/keywords.hpp
==============================================================================
--- trunk/boost/spirit/repository/home/qi/operator/keywords.hpp (original)
+++ trunk/boost/spirit/repository/home/qi/operator/keywords.hpp 2012-05-02 20:50:19 EDT (Wed, 02 May 2012)
@@ -166,7 +166,7 @@
         {};
 
         // filter out the string kwd directives
- typedef typename mpl::filter_view< Elements, is_kwd_parser<mpl_::_> >::type string_keywords;
+ typedef typename mpl::filter_view< Elements, is_kwd_parser<mpl::_> >::type string_keywords;
 
         typedef typename mpl::filter_view< parser_index_vector ,
                                          is_kwd_parser_filter< mpl::_ >
@@ -272,27 +272,27 @@
                     save = first;
                 }
                 else {
- // restore the position to the last successful keyword parse
- first = save;
- if(!complex_keywords_inst.parse(complex_function))
- {
- first = save;
- // Check that we are leaving the keywords parser in a successfull state
- BOOST_FOREACH(bool &valid,flags)
- {
- if(!valid)
- {
- return false;
- }
- }
- return true;
- }
- else
- save = first;
- }
+ // restore the position to the last successful keyword parse
+ first = save;
+ if(!complex_keywords_inst.parse(complex_function))
+ {
+ first = save;
+ // Check that we are leaving the keywords parser in a successfull state
+ BOOST_FOREACH(bool &valid,flags)
+ {
+ if(!valid)
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+ else
+ save = first;
+ }
             }
             return false;
- }
+ }
 
         // Handle the mixed kwd and ikwd case
         template <typename Iterator, typename Context
@@ -353,29 +353,29 @@
                     save = first;
                 }
                 else {
- first = save;
+ first = save;
 
- if(!complex_keywords_inst.parse(complex_function))
- {
- first = save;
- // Check that we are leaving the keywords parser in a successfull state
- BOOST_FOREACH(bool &valid,flags)
- {
- if(!valid)
- {
- return false;
- }
- }
- return true;
- }
- else
- {
- save = first;
- }
+ if(!complex_keywords_inst.parse(complex_function))
+ {
+ first = save;
+ // Check that we are leaving the keywords parser in a successfull state
+ BOOST_FOREACH(bool &valid,flags)
+ {
+ if(!valid)
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+ else
+ {
+ save = first;
+ }
                 }
             }
             return false;
- }
+ }
 
         template <typename Context>
         info what(Context& context) const


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