|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r49658 - in trunk/boost/spirit/home: karma/action karma/auxiliary karma/binary karma/char karma/directive karma/nonterminal karma/numeric karma/operator karma/stream karma/string lex lex/lexer lex/qi/state lex/qi/utility qi/action qi/auxiliary qi/binary qi/char qi/nonterminal qi/numeric qi/operator qi/stream qi/string support support/auxiliary support/meta_grammar support/nonterminal
From: eric_at_[hidden]
Date: 2008-11-08 20:24:10
Author: eric_niebler
Date: 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
New Revision: 49658
URL: http://svn.boost.org/trac/boost/changeset/49658
Log:
port Spirit2 to Proto v4, fixes #2488
Text files modified:
trunk/boost/spirit/home/karma/action/meta_grammar.hpp | 2
trunk/boost/spirit/home/karma/auxiliary/confix.hpp | 8
trunk/boost/spirit/home/karma/binary/meta_grammar.hpp | 6
trunk/boost/spirit/home/karma/char/meta_grammar.hpp | 6
trunk/boost/spirit/home/karma/directive/center_alignment.hpp | 8
trunk/boost/spirit/home/karma/directive/left_alignment.hpp | 8
trunk/boost/spirit/home/karma/directive/right_alignment.hpp | 8
trunk/boost/spirit/home/karma/nonterminal/nonterminal.hpp | 2
trunk/boost/spirit/home/karma/numeric/meta_grammar.hpp | 12
trunk/boost/spirit/home/karma/operator/meta_grammar.hpp | 2
trunk/boost/spirit/home/karma/stream/meta_grammar.hpp | 4
trunk/boost/spirit/home/karma/string/meta_grammar.hpp | 6
trunk/boost/spirit/home/lex/lexer/meta_grammar.hpp | 4
trunk/boost/spirit/home/lex/lexer/terminal_holder.hpp | 2
trunk/boost/spirit/home/lex/qi/state/in_state.hpp | 2
trunk/boost/spirit/home/lex/qi/state/state_switcher.hpp | 4
trunk/boost/spirit/home/lex/qi/utility/plain_token.hpp | 2
trunk/boost/spirit/home/lex/set_state.hpp | 2
trunk/boost/spirit/home/qi/action/meta_grammar.hpp | 2
trunk/boost/spirit/home/qi/auxiliary/confix.hpp | 8
trunk/boost/spirit/home/qi/binary/meta_grammar.hpp | 6
trunk/boost/spirit/home/qi/char/meta_grammar.hpp | 10
trunk/boost/spirit/home/qi/nonterminal/nonterminal.hpp | 2
trunk/boost/spirit/home/qi/numeric/meta_grammar.hpp | 4
trunk/boost/spirit/home/qi/operator/meta_grammar.hpp | 2
trunk/boost/spirit/home/qi/stream/meta_grammar.hpp | 2
trunk/boost/spirit/home/qi/string/meta_grammar.hpp | 4
trunk/boost/spirit/home/qi/string/symbols.hpp | 12
trunk/boost/spirit/home/support/ascii.hpp | 2
trunk/boost/spirit/home/support/auxiliary/functor_holder.hpp | 2
trunk/boost/spirit/home/support/component.hpp | 44 +-
trunk/boost/spirit/home/support/iso8859_1.hpp | 2
trunk/boost/spirit/home/support/meta_grammar/basic_rules.hpp | 4
trunk/boost/spirit/home/support/meta_grammar/basic_transforms.hpp | 656 ++++++++++++++++++---------------------
trunk/boost/spirit/home/support/nonterminal/nonterminal.hpp | 2
trunk/boost/spirit/home/support/placeholders.hpp | 2
trunk/boost/spirit/home/support/standard.hpp | 2
trunk/boost/spirit/home/support/standard_wide.hpp | 2
38 files changed, 414 insertions(+), 444 deletions(-)
Modified: trunk/boost/spirit/home/karma/action/meta_grammar.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/action/meta_grammar.hpp (original)
+++ trunk/boost/spirit/home/karma/action/meta_grammar.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -35,7 +35,7 @@
struct action_meta_grammar :
meta_grammar::binary_rule<
karma::domain, proto::tag::subscript, action,
- main_meta_grammar, proto::when<proto::_, proto::_arg>
+ main_meta_grammar, proto::when<proto::_, proto::_child>
>
{
};
Modified: trunk/boost/spirit/home/karma/auxiliary/confix.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/auxiliary/confix.hpp (original)
+++ trunk/boost/spirit/home/karma/auxiliary/confix.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -76,7 +76,7 @@
// generate the prefix
generate_helper(sink, ctx, d,
spirit::detail::confix_extractor::prefix(
- proto::arg_c<0>(spirit::argument1(component))));
+ proto::child_c<0>(spirit::argument1(component))));
// generate the embedded items
typedef typename
@@ -88,7 +88,7 @@
// append the suffix
generate_helper(sink, ctx, d,
spirit::detail::confix_extractor::suffix(
- proto::arg_c<0>(spirit::argument1(component))));
+ proto::child_c<0>(spirit::argument1(component))));
return result;
}
@@ -99,11 +99,11 @@
std::string result = "confix(";
result += what_helper(spirit::detail::confix_extractor::prefix(
- proto::arg_c<0>(spirit::argument1(component))), ctx);
+ proto::child_c<0>(spirit::argument1(component))), ctx);
result += ", ";
result += what_helper(spirit::detail::confix_extractor::suffix(
- proto::arg_c<0>(spirit::argument1(component))), ctx);
+ proto::child_c<0>(spirit::argument1(component))), ctx);
result += ")[";
typedef typename
Modified: trunk/boost/spirit/home/karma/binary/meta_grammar.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/binary/meta_grammar.hpp (original)
+++ trunk/boost/spirit/home/karma/binary/meta_grammar.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -199,7 +199,7 @@
struct int_binary_meta_grammar
: meta_grammar::compose_empty<
proto::if_<
- is_int_lit_tag<proto::_arg, karma::domain>()
+ is_int_lit_tag<proto::_child, karma::domain>()
>,
karma::domain,
mpl::identity<extract_literal_bin_director<mpl::_> >
@@ -211,7 +211,7 @@
: proto::or_<
meta_grammar::compose_empty<
proto::if_<
- is_binary_tag<proto::_arg, karma::domain>()
+ is_binary_tag<proto::_child, karma::domain>()
>,
karma::domain,
mpl::identity<extract_binary_director<mpl::_> >
@@ -219,7 +219,7 @@
meta_grammar::compose_function1_eval<
proto::function<
proto::if_<
- is_binary_tag<proto::_arg, karma::domain>()
+ is_binary_tag<proto::_child, karma::domain>()
>,
int_binary_meta_grammar
>,
Modified: trunk/boost/spirit/home/karma/char/meta_grammar.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/char/meta_grammar.hpp (original)
+++ trunk/boost/spirit/home/karma/char/meta_grammar.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -163,7 +163,7 @@
// char_, wchar, space
meta_grammar::compose_empty<
proto::if_<
- is_char_tag<proto::_arg, karma::domain>()
+ is_char_tag<proto::_child, karma::domain>()
>,
karma::domain,
mpl::identity<extract_any_char_director<mpl::_> >
@@ -172,7 +172,7 @@
meta_grammar::compose_function1_eval<
proto::function<
proto::if_<
- is_char_tag<proto::_arg, karma::domain>()
+ is_char_tag<proto::_child, karma::domain>()
>,
basic_char_literal_meta_grammar
>,
@@ -183,7 +183,7 @@
meta_grammar::compose_function1_eval<
proto::function<
proto::if_<
- is_lit_tag<proto::_arg, karma::domain>()
+ is_lit_tag<proto::_child, karma::domain>()
>,
basic_char_literal_meta_grammar
>,
Modified: trunk/boost/spirit/home/karma/directive/center_alignment.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/directive/center_alignment.hpp (original)
+++ trunk/boost/spirit/home/karma/directive/center_alignment.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -96,7 +96,7 @@
Context& ctx, Delimiter const& d, Parameter const& param)
{
return detail::center_generate(sink, ctx, d, param,
- subject(component), proto::arg_c<0>(argument1(component)), ' ');
+ subject(component), proto::child_c<0>(argument1(component)), ' ');
}
template <typename Component, typename Context>
@@ -105,7 +105,7 @@
std::string result = "center(";
result += boost::lexical_cast<std::string>(
- proto::arg_c<0>(argument1(component)));
+ proto::child_c<0>(argument1(component)));
result += ")[";
typedef typename
@@ -194,7 +194,7 @@
Context& ctx, Delimiter const& d, Parameter const& param)
{
return detail::center_generate(sink, ctx, d, param,
- subject(component), proto::arg_c<0>(argument1(component)),
+ subject(component), proto::child_c<0>(argument1(component)),
argument2(component));
}
@@ -204,7 +204,7 @@
std::string result = "center(";
result += boost::lexical_cast<std::string>(
- proto::arg_c<0>(argument1(component)));
+ proto::child_c<0>(argument1(component)));
result += ", ";
typedef typename
Modified: trunk/boost/spirit/home/karma/directive/left_alignment.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/directive/left_alignment.hpp (original)
+++ trunk/boost/spirit/home/karma/directive/left_alignment.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -95,7 +95,7 @@
Context& ctx, Delimiter const& d, Parameter const& param)
{
return detail::left_align_generate(sink, ctx, d, param,
- subject(component), proto::arg_c<0>(argument1(component)), ' ');
+ subject(component), proto::child_c<0>(argument1(component)), ' ');
}
template <typename Component, typename Context>
@@ -104,7 +104,7 @@
std::string result = "left_align(";
result += boost::lexical_cast<std::string>(
- proto::arg_c<0>(argument1(component)));
+ proto::child_c<0>(argument1(component)));
result += ")[";
typedef typename
@@ -193,7 +193,7 @@
Context& ctx, Delimiter const& d, Parameter const& param)
{
return detail::left_align_generate(sink, ctx, d, param,
- subject(component), proto::arg_c<0>(argument1(component)),
+ subject(component), proto::child_c<0>(argument1(component)),
argument2(component));
}
@@ -203,7 +203,7 @@
std::string result = "left_align(";
result += boost::lexical_cast<std::string>(
- proto::arg_c<0>(argument1(component)));
+ proto::child_c<0>(argument1(component)));
result += ", ";
typedef typename
Modified: trunk/boost/spirit/home/karma/directive/right_alignment.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/directive/right_alignment.hpp (original)
+++ trunk/boost/spirit/home/karma/directive/right_alignment.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -96,7 +96,7 @@
Context& ctx, Delimiter const& d, Parameter const& param)
{
return detail::right_align_generate(sink, ctx, d, param,
- subject(component), proto::arg_c<0>(argument1(component)), ' ');
+ subject(component), proto::child_c<0>(argument1(component)), ' ');
}
template <typename Component, typename Context>
@@ -105,7 +105,7 @@
std::string result = "right_align(";
result += boost::lexical_cast<std::string>(
- proto::arg_c<0>(argument1(component)));
+ proto::child_c<0>(argument1(component)));
result += ")[";
typedef typename
@@ -194,7 +194,7 @@
Context& ctx, Delimiter const& d, Parameter const& param)
{
return detail::right_align_generate(sink, ctx, d, param,
- subject(component), proto::arg_c<0>(argument1(component)),
+ subject(component), proto::child_c<0>(argument1(component)),
argument2(component));
}
@@ -204,7 +204,7 @@
std::string result = "right_align(";
result += boost::lexical_cast<std::string>(
- proto::arg_c<0>(argument1(component)));
+ proto::child_c<0>(argument1(component)));
result += ", ";
typedef typename
Modified: trunk/boost/spirit/home/karma/nonterminal/nonterminal.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/nonterminal/nonterminal.hpp (original)
+++ trunk/boost/spirit/home/karma/nonterminal/nonterminal.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -15,7 +15,7 @@
#include <boost/spirit/home/support/nonterminal/locals.hpp>
#include <boost/spirit/home/support/argument.hpp>
-#include <boost/xpressive/proto/proto.hpp>
+#include <boost/proto/core.hpp>
#include <boost/function_types/result_type.hpp>
#include <boost/function_types/parameter_types.hpp>
#include <boost/function_types/is_function.hpp>
Modified: trunk/boost/spirit/home/karma/numeric/meta_grammar.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/numeric/meta_grammar.hpp (original)
+++ trunk/boost/spirit/home/karma/numeric/meta_grammar.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -359,7 +359,7 @@
struct int_literal_meta_grammar
: meta_grammar::compose_empty<
proto::if_<
- is_int_lit_tag<proto::_arg, karma::domain>()
+ is_int_lit_tag<proto::_child, karma::domain>()
>,
karma::domain,
mpl::identity<extract_literal_int_director<mpl::_> >
@@ -372,7 +372,7 @@
: proto::or_<
meta_grammar::compose_empty<
proto::if_<
- is_int_tag<proto::_arg, karma::domain>()
+ is_int_tag<proto::_child, karma::domain>()
>,
karma::domain,
mpl::identity<extract_int_director_plain<mpl::_> >
@@ -380,7 +380,7 @@
meta_grammar::compose_function1_eval<
proto::function<
proto::if_<
- is_int_tag<proto::_arg, karma::domain>()
+ is_int_tag<proto::_child, karma::domain>()
>,
int_literal_meta_grammar
>,
@@ -394,7 +394,7 @@
struct real_literal_meta_grammar
: meta_grammar::compose_empty<
proto::if_<
- is_real_lit_tag<proto::_arg, karma::domain>()
+ is_real_lit_tag<proto::_child, karma::domain>()
>,
karma::domain,
mpl::identity<extract_literal_real_director<mpl::_> >
@@ -405,7 +405,7 @@
: proto::or_<
meta_grammar::compose_single<
proto::if_<
- is_real_tag<proto::_arg, karma::domain>()
+ is_real_tag<proto::_child, karma::domain>()
>,
karma::domain,
mpl::identity<extract_real_director_plain<mpl::_> >
@@ -413,7 +413,7 @@
meta_grammar::compose_function1_full<
proto::function<
proto::if_<
- is_real_tag<proto::_arg, karma::domain>()
+ is_real_tag<proto::_child, karma::domain>()
>,
real_literal_meta_grammar
>,
Modified: trunk/boost/spirit/home/karma/operator/meta_grammar.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/operator/meta_grammar.hpp (original)
+++ trunk/boost/spirit/home/karma/operator/meta_grammar.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -70,7 +70,7 @@
main_meta_grammar
>,
meta_grammar::unary_rule<
- karma::domain, proto::tag::posit, plus,
+ karma::domain, proto::tag::unary_plus, plus,
main_meta_grammar
>,
meta_grammar::binary_rule<
Modified: trunk/boost/spirit/home/karma/stream/meta_grammar.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/stream/meta_grammar.hpp (original)
+++ trunk/boost/spirit/home/karma/stream/meta_grammar.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -75,7 +75,7 @@
// stream, wstream
meta_grammar::compose_empty<
proto::if_<
- is_stream_tag<proto::_arg, karma::domain>()
+ is_stream_tag<proto::_child, karma::domain>()
>,
karma::domain,
mpl::identity<extract_any_stream_director<mpl::_> >
@@ -84,7 +84,7 @@
meta_grammar::compose_function1_eval<
proto::function<
proto::if_<
- is_stream_tag<proto::_arg, karma::domain>()
+ is_stream_tag<proto::_child, karma::domain>()
>,
proto::_
>,
Modified: trunk/boost/spirit/home/karma/string/meta_grammar.hpp
==============================================================================
--- trunk/boost/spirit/home/karma/string/meta_grammar.hpp (original)
+++ trunk/boost/spirit/home/karma/string/meta_grammar.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -185,7 +185,7 @@
std_string_meta_grammar,
meta_grammar::compose_empty<
proto::if_<
- is_lit_tag<proto::_arg, karma::domain>()
+ is_lit_tag<proto::_child, karma::domain>()
>,
karma::domain,
mpl::identity<extract_lit_director_plain<mpl::_> >
@@ -193,7 +193,7 @@
meta_grammar::compose_function1_eval<
proto::function<
proto::if_<
- is_lit_tag<proto::_arg, karma::domain>()
+ is_lit_tag<proto::_child, karma::domain>()
>,
proto::or_<
basic_string_literal_meta_grammar,
@@ -206,7 +206,7 @@
meta_grammar::function1_rule<
karma::domain, tag::lit, lazy_string,
proto::if_<
- detail::is_not_convertible_to_int<proto::_arg>()
+ detail::is_not_convertible_to_int<proto::_child>()
>
>
>
Modified: trunk/boost/spirit/home/lex/lexer/meta_grammar.hpp
==============================================================================
--- trunk/boost/spirit/home/lex/lexer/meta_grammar.hpp (original)
+++ trunk/boost/spirit/home/lex/lexer/meta_grammar.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -94,11 +94,11 @@
// semantic actions for tokens
meta_grammar::binary_rule<
lex::domain, proto::tag::subscript, action,
- token_def_meta_grammar, proto::when<proto::_, proto::_arg>
+ token_def_meta_grammar, proto::when<proto::_, proto::_child>
>,
meta_grammar::binary_rule<
lex::domain, proto::tag::subscript, action,
- action_lexer_meta_grammar, proto::when<proto::_, proto::_arg>
+ action_lexer_meta_grammar, proto::when<proto::_, proto::_child>
>
>
{
Modified: trunk/boost/spirit/home/lex/lexer/terminal_holder.hpp
==============================================================================
--- trunk/boost/spirit/home/lex/lexer/terminal_holder.hpp (original)
+++ trunk/boost/spirit/home/lex/lexer/terminal_holder.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -7,7 +7,7 @@
#if !defined(BOOST_SPIRIT_LEX_TERMINAL_HOLDER_MAR_22_2007_0217PM)
#define BOOST_SPIRIT_LEX_TERMINAL_HOLDER_MAR_22_2007_0217PM
-#include <boost/xpressive/proto/proto.hpp>
+#include <boost/proto/core.hpp>
namespace boost { namespace spirit { namespace lex
{
Modified: trunk/boost/spirit/home/lex/qi/state/in_state.hpp
==============================================================================
--- trunk/boost/spirit/home/lex/qi/state/in_state.hpp (original)
+++ trunk/boost/spirit/home/lex/qi/state/in_state.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -10,7 +10,7 @@
#pragma once // MS compatible compilers support #pragma once
#endif
-#include <boost/xpressive/proto/proto.hpp>
+#include <boost/proto/core.hpp>
///////////////////////////////////////////////////////////////////////////////
namespace boost { namespace spirit { namespace qi
Modified: trunk/boost/spirit/home/lex/qi/state/state_switcher.hpp
==============================================================================
--- trunk/boost/spirit/home/lex/qi/state/state_switcher.hpp (original)
+++ trunk/boost/spirit/home/lex/qi/state/state_switcher.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -142,7 +142,7 @@
// the state has to be reset at exit in any case
detail::reset_state_on_exit<Iterator> guard(
- first, proto::arg_c<0>(argument1(component)).name);
+ first, proto::child_c<0>(argument1(component)).name);
return director::parse(spirit::subject(component), first,
last, context, skipper, attr);
@@ -153,7 +153,7 @@
{
std::string result("in_state(\"");
result += spirit::detail::to_narrow_string(
- proto::arg_c<0>(argument1(component)).name);
+ proto::child_c<0>(argument1(component)).name);
result += "\")[";
typedef typename
Modified: trunk/boost/spirit/home/lex/qi/utility/plain_token.hpp
==============================================================================
--- trunk/boost/spirit/home/lex/qi/utility/plain_token.hpp (original)
+++ trunk/boost/spirit/home/lex/qi/utility/plain_token.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -11,7 +11,7 @@
#endif
#include <boost/lexical_cast.hpp>
-#include <boost/xpressive/proto/proto.hpp>
+#include <boost/proto/core.hpp>
#include <boost/range/iterator_range.hpp>
namespace boost { namespace spirit { namespace qi
Modified: trunk/boost/spirit/home/lex/set_state.hpp
==============================================================================
--- trunk/boost/spirit/home/lex/set_state.hpp (original)
+++ trunk/boost/spirit/home/lex/set_state.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -10,7 +10,7 @@
#pragma once // MS compatible compilers support #pragma once
#endif
-#include <boost/xpressive/proto/proto.hpp>
+#include <boost/proto/core.hpp>
///////////////////////////////////////////////////////////////////////////////
namespace boost { namespace spirit
Modified: trunk/boost/spirit/home/qi/action/meta_grammar.hpp
==============================================================================
--- trunk/boost/spirit/home/qi/action/meta_grammar.hpp (original)
+++ trunk/boost/spirit/home/qi/action/meta_grammar.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -31,7 +31,7 @@
struct action_meta_grammar :
meta_grammar::binary_rule<
qi::domain, proto::tag::subscript, action
- , main_meta_grammar, proto::when<proto::_, proto::_arg>
+ , main_meta_grammar, proto::when<proto::_, proto::_child>
>
{
};
Modified: trunk/boost/spirit/home/qi/auxiliary/confix.hpp
==============================================================================
--- trunk/boost/spirit/home/qi/auxiliary/confix.hpp (original)
+++ trunk/boost/spirit/home/qi/auxiliary/confix.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -82,7 +82,7 @@
// parse the prefix
parse_helper(first, last, context, skipper,
spirit::detail::confix_extractor::prefix(
- proto::arg_c<0>(spirit::argument1(component))));
+ proto::child_c<0>(spirit::argument1(component))));
// generate the embedded items
typedef typename
@@ -94,7 +94,7 @@
// append the suffix
parse_helper(first, last, context, skipper,
spirit::detail::confix_extractor::suffix(
- proto::arg_c<0>(spirit::argument1(component))));
+ proto::child_c<0>(spirit::argument1(component))));
return result;
}
@@ -105,11 +105,11 @@
std::string result = "confix(";
result += what_helper(spirit::detail::confix_extractor::prefix(
- proto::arg_c<0>(spirit::argument1(component))), ctx);
+ proto::child_c<0>(spirit::argument1(component))), ctx);
result += ", ";
result += what_helper(spirit::detail::confix_extractor::suffix(
- proto::arg_c<0>(spirit::argument1(component))), ctx);
+ proto::child_c<0>(spirit::argument1(component))), ctx);
result += ")[";
typedef typename
Modified: trunk/boost/spirit/home/qi/binary/meta_grammar.hpp
==============================================================================
--- trunk/boost/spirit/home/qi/binary/meta_grammar.hpp (original)
+++ trunk/boost/spirit/home/qi/binary/meta_grammar.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -197,7 +197,7 @@
struct int_binary_meta_grammar
: meta_grammar::compose_empty<
proto::if_<
- is_int_lit_tag<proto::_arg, qi::domain>()
+ is_int_lit_tag<proto::_child, qi::domain>()
>,
qi::domain,
mpl::identity<extract_literal_bin_director<mpl::_> >
@@ -209,7 +209,7 @@
: proto::or_<
meta_grammar::compose_empty<
proto::if_<
- is_binary_tag<proto::_arg, qi::domain>()
+ is_binary_tag<proto::_child, qi::domain>()
>,
qi::domain,
mpl::identity<extract_binary_director<mpl::_> >
@@ -217,7 +217,7 @@
meta_grammar::compose_function1_eval<
proto::function<
proto::if_<
- is_binary_tag<proto::_arg, qi::domain>()
+ is_binary_tag<proto::_child, qi::domain>()
>,
int_binary_meta_grammar
>,
Modified: trunk/boost/spirit/home/qi/char/meta_grammar.hpp
==============================================================================
--- trunk/boost/spirit/home/qi/char/meta_grammar.hpp (original)
+++ trunk/boost/spirit/home/qi/char/meta_grammar.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -263,7 +263,7 @@
// char_, wchar --> any_char
meta_grammar::compose_empty<
proto::if_<
- is_char_tag<proto::_arg, qi::domain>()
+ is_char_tag<proto::_child, qi::domain>()
>
, qi::domain
, mpl::identity<extract_any_char_director<mpl::_> >
@@ -272,7 +272,7 @@
, meta_grammar::compose_function1_eval<
proto::function<
proto::if_<
- is_char_tag<proto::_arg, qi::domain>()
+ is_char_tag<proto::_child, qi::domain>()
>
, single_char_literal_meta_grammar
>
@@ -283,7 +283,7 @@
, meta_grammar::compose_function1_eval<
proto::function<
proto::if_<
- is_lit_tag<proto::_arg, qi::domain>()
+ is_lit_tag<proto::_child, qi::domain>()
>
, basic_char_literal_meta_grammar
>
@@ -294,7 +294,7 @@
, meta_grammar::compose_function1_eval<
proto::function<
proto::if_<
- is_char_tag<proto::_arg, qi::domain>()>
+ is_char_tag<proto::_child, qi::domain>()>
, proto::or_<basic_string_literal_meta_grammar, basic_std_string_meta_grammar>
>
, qi::domain
@@ -310,7 +310,7 @@
, meta_grammar::compose_function2_eval<
proto::function<
proto::if_<
- is_char_tag<proto::_arg, qi::domain>()
+ is_char_tag<proto::_child, qi::domain>()
>
, basic_char_literal_meta_grammar
, basic_char_literal_meta_grammar
Modified: trunk/boost/spirit/home/qi/nonterminal/nonterminal.hpp
==============================================================================
--- trunk/boost/spirit/home/qi/nonterminal/nonterminal.hpp (original)
+++ trunk/boost/spirit/home/qi/nonterminal/nonterminal.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -11,7 +11,7 @@
#include <boost/spirit/home/support/nonterminal/locals.hpp>
#include <boost/spirit/home/support/argument.hpp>
-#include <boost/xpressive/proto/proto.hpp>
+#include <boost/proto/core.hpp>
#include <boost/function_types/result_type.hpp>
#include <boost/function_types/parameter_types.hpp>
#include <boost/function_types/is_function.hpp>
Modified: trunk/boost/spirit/home/qi/numeric/meta_grammar.hpp
==============================================================================
--- trunk/boost/spirit/home/qi/numeric/meta_grammar.hpp (original)
+++ trunk/boost/spirit/home/qi/numeric/meta_grammar.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -271,7 +271,7 @@
///////////////////////////////////////////////////////////////////////////
struct int_meta_grammar
: meta_grammar::compose_empty<
- proto::if_<is_int_tag<proto::_arg, qi::domain>()>
+ proto::if_<is_int_tag<proto::_child, qi::domain>()>
, qi::domain
, mpl::identity<extract_int_director<mpl::_> >
>
@@ -279,7 +279,7 @@
struct real_meta_grammar
: meta_grammar::compose_single<
- proto::if_<is_real_tag<proto::_arg, qi::domain>()>
+ proto::if_<is_real_tag<proto::_child, qi::domain>()>
, qi::domain
, mpl::identity<extract_real_director<mpl::_> >
>
Modified: trunk/boost/spirit/home/qi/operator/meta_grammar.hpp
==============================================================================
--- trunk/boost/spirit/home/qi/operator/meta_grammar.hpp (original)
+++ trunk/boost/spirit/home/qi/operator/meta_grammar.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -99,7 +99,7 @@
>
// +a
, meta_grammar::unary_rule<
- qi::domain, proto::tag::posit, plus
+ qi::domain, proto::tag::unary_plus, plus
, main_meta_grammar
>
// &a
Modified: trunk/boost/spirit/home/qi/stream/meta_grammar.hpp
==============================================================================
--- trunk/boost/spirit/home/qi/stream/meta_grammar.hpp (original)
+++ trunk/boost/spirit/home/qi/stream/meta_grammar.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -95,7 +95,7 @@
// stream, wstream
meta_grammar::compose_empty<
proto::if_<
- is_stream_tag<proto::_arg, qi::domain>()
+ is_stream_tag<proto::_child, qi::domain>()
>,
qi::domain,
mpl::identity<extract_stream_director<mpl::_> >
Modified: trunk/boost/spirit/home/qi/string/meta_grammar.hpp
==============================================================================
--- trunk/boost/spirit/home/qi/string/meta_grammar.hpp (original)
+++ trunk/boost/spirit/home/qi/string/meta_grammar.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -159,7 +159,7 @@
, meta_grammar::compose_function1_eval<
proto::function<
proto::if_<
- is_lit_tag<proto::_arg, qi::domain>()>
+ is_lit_tag<proto::_child, qi::domain>()>
, proto::or_<basic_string_literal_meta_grammar, basic_std_string_meta_grammar>
>
, qi::domain
@@ -170,7 +170,7 @@
, tag::lit
, lazy_string
, proto::if_<
- detail::is_not_convertible_to_int<proto::_arg >() >
+ detail::is_not_convertible_to_int<proto::_child >() >
>
, meta_grammar::terminal_rule<
qi::domain
Modified: trunk/boost/spirit/home/qi/string/symbols.hpp
==============================================================================
--- trunk/boost/spirit/home/qi/string/symbols.hpp (original)
+++ trunk/boost/spirit/home/qi/string/symbols.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -13,7 +13,7 @@
#include <boost/spirit/home/support/modifier.hpp>
#include <boost/spirit/home/qi/detail/assign_to.hpp>
#include <boost/fusion/include/at.hpp>
-#include <boost/xpressive/proto/proto.hpp>
+#include <boost/proto/core.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/range.hpp>
#include <boost/type_traits/add_reference.hpp>
@@ -92,7 +92,7 @@
: add(*this)
, remove(*this)
{
- proto::arg(*this).lookup = ptr_type(new Lookup());
+ proto::child(*this).lookup = ptr_type(new Lookup());
}
template <typename Symbols>
@@ -100,7 +100,7 @@
: add(*this)
, remove(*this)
{
- proto::arg(*this).lookup = ptr_type(new Lookup());
+ proto::child(*this).lookup = ptr_type(new Lookup());
typename range_const_iterator<Symbols>::type si = boost::begin(syms);
while (si != boost::end(syms))
add(*si++);
@@ -111,7 +111,7 @@
: add(*this)
, remove(*this)
{
- proto::arg(*this).lookup = ptr_type(new Lookup());
+ proto::child(*this).lookup = ptr_type(new Lookup());
typename range_const_iterator<Symbols>::type si = boost::begin(syms);
typename range_const_iterator<Data>::type di = boost::begin(data);
while (si != boost::end(syms))
@@ -121,7 +121,7 @@
symbols&
operator=(symbols const& rhs)
{
- proto::arg(*this) = proto::arg(rhs);
+ proto::child(*this) = proto::child(rhs);
return *this;
}
@@ -154,7 +154,7 @@
ptr_type lookup() const
{
- return proto::arg(*this).lookup;
+ return proto::child(*this).lookup;
}
template <typename F>
Modified: trunk/boost/spirit/home/support/ascii.hpp
==============================================================================
--- trunk/boost/spirit/home/support/ascii.hpp (original)
+++ trunk/boost/spirit/home/support/ascii.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -8,7 +8,7 @@
#define SPIRIT_ASCII_JAN_31_2006_0529PM
#include <boost/spirit/home/support/char_class.hpp>
-#include <boost/xpressive/proto/proto.hpp>
+#include <boost/proto/core.hpp>
namespace boost { namespace spirit { namespace ascii
{
Modified: trunk/boost/spirit/home/support/auxiliary/functor_holder.hpp
==============================================================================
--- trunk/boost/spirit/home/support/auxiliary/functor_holder.hpp (original)
+++ trunk/boost/spirit/home/support/auxiliary/functor_holder.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -10,7 +10,7 @@
#pragma once // MS compatible compilers support #pragma once
#endif
-#include <boost/xpressive/proto/proto.hpp>
+#include <boost/proto/core.hpp>
namespace boost { namespace spirit
{
Modified: trunk/boost/spirit/home/support/component.hpp
==============================================================================
--- trunk/boost/spirit/home/support/component.hpp (original)
+++ trunk/boost/spirit/home/support/component.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -9,7 +9,7 @@
#include <boost/spirit/home/support/unused.hpp>
#include <boost/spirit/home/support/meta_grammar/grammar.hpp>
-#include <boost/xpressive/proto/proto.hpp>
+#include <boost/proto/core.hpp>
#include <boost/fusion/include/at.hpp>
#include <boost/fusion/include/value_at.hpp>
#include <boost/mpl/void.hpp>
@@ -198,12 +198,8 @@
{
typedef typename meta_grammar::grammar<Domain>::type grammar;
typedef typename proto::result_of::as_expr<Expr>::type proto_xpr;
-
- typedef typename
- grammar::template result<
- void(proto_xpr, State, Visitor)
- >::type
- type;
+ typedef typename grammar::template impl<proto_xpr, State, Visitor> callable;
+ typedef typename callable::result_type type;
};
// special case for arrays
@@ -214,12 +210,8 @@
{
typedef typename meta_grammar::grammar<Domain>::type grammar;
typedef typename proto::result_of::as_expr<T const*>::type proto_xpr;
-
- typedef typename
- grammar::template result<
- void(proto_xpr, State, Visitor)
- >::type
- type;
+ typedef typename grammar::template impl<proto_xpr, State, Visitor> callable;
+ typedef typename callable::result_type type;
};
// special case for components
@@ -229,24 +221,36 @@
{
};
}
+
+ namespace detail
+ {
+ template<typename T>
+ T &decay(T &t)
+ {
+ return t;
+ }
+
+ template<typename T, int N>
+ T *decay(T (&t)[N])
+ {
+ return t;
+ }
+ }
template <typename Domain, typename Expr>
inline typename result_of::as_component<Domain, Expr>::type
as_component(Domain, Expr const& xpr)
{
- unused_type unused;
- typedef typename result_of::as_component<Domain, Expr>::grammar grammar;
- return grammar()(proto::as_expr(xpr), unused, unused);
+ typedef typename result_of::as_component<Domain, Expr>::callable callable;
+ return callable()(proto::as_expr(detail::decay(xpr)), unused_type(), unused_type());
}
template <typename Domain, typename Expr, typename State, typename Visitor>
inline typename result_of::as_component<Domain, Expr>::type
as_component(Domain, Expr const& xpr, State const& state, Visitor& visitor)
{
- typedef typename
- result_of::as_component<Domain, Expr, State, Visitor>::grammar
- grammar;
- return grammar()(proto::as_expr(xpr), state, visitor);
+ typedef typename result_of::as_component<Domain, Expr, State, Visitor>::callable callable;
+ return callable()(proto::as_expr(detail::decay(xpr)), state, visitor);
}
template <typename Domain, typename Director, typename Elements>
Modified: trunk/boost/spirit/home/support/iso8859_1.hpp
==============================================================================
--- trunk/boost/spirit/home/support/iso8859_1.hpp (original)
+++ trunk/boost/spirit/home/support/iso8859_1.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -8,7 +8,7 @@
#define SPIRIT_ISO8859_1_JAN_31_2006_0529PM
#include <boost/spirit/home/support/char_class.hpp>
-#include <boost/xpressive/proto/proto.hpp>
+#include <boost/proto/core.hpp>
namespace boost { namespace spirit { namespace iso8859_1
{
Modified: trunk/boost/spirit/home/support/meta_grammar/basic_rules.hpp
==============================================================================
--- trunk/boost/spirit/home/support/meta_grammar/basic_rules.hpp (original)
+++ trunk/boost/spirit/home/support/meta_grammar/basic_rules.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -11,8 +11,8 @@
#include <boost/spirit/home/support/meta_grammar/basic_transforms.hpp>
#include <boost/spirit/home/support/component.hpp>
#include <boost/fusion/include/cons.hpp>
-#include <boost/xpressive/proto/proto.hpp>
-#include <boost/xpressive/proto/transform.hpp>
+#include <boost/proto/core.hpp>
+#include <boost/proto/transform.hpp>
#include <boost/mpl/identity.hpp>
namespace boost { namespace spirit { namespace meta_grammar
Modified: trunk/boost/spirit/home/support/meta_grammar/basic_transforms.hpp
==============================================================================
--- trunk/boost/spirit/home/support/meta_grammar/basic_transforms.hpp (original)
+++ trunk/boost/spirit/home/support/meta_grammar/basic_transforms.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -12,8 +12,8 @@
#include <boost/spirit/home/support/component.hpp>
#include <boost/spirit/home/support/modifier.hpp>
-#include <boost/xpressive/proto/proto.hpp>
-#include <boost/xpressive/proto/transform.hpp>
+#include <boost/proto/core.hpp>
+#include <boost/proto/transform.hpp>
#include <boost/fusion/include/cons.hpp>
#include <boost/fusion/include/list.hpp>
@@ -25,6 +25,21 @@
namespace boost { namespace spirit { namespace meta_grammar
{
///////////////////////////////////////////////////////////////////////////
+ // Invoke the specified grammar in the "Proto v2" way, dropping top
+ // level const and reference on the three parameters
+ //template<typename Grammar, typename Expr, typename State, typename Data>
+ //typename Grammar::template impl<Expr, State, Data>::result_type
+ //invoke_grammar(Expr const &expr, State const &state, Data &data)
+ //{
+ // return typename Grammar::template impl<Expr, State, Data>()(expr, state, data);
+ //}
+
+ template<typename Grammar, typename Expr, typename State, typename Data>
+ struct invoke_grammar
+ : Grammar::template impl<Expr, State, Data>
+ {};
+
+ ///////////////////////////////////////////////////////////////////////////
// A proto transform for creating empty component meta descriptions
// (proto expressions) usable for defining meta grammars. Additionally,
// this is used to make the corresponding spirit component.
@@ -37,35 +52,33 @@
// domain (i.e.: any_char)
///////////////////////////////////////////////////////////////////////////
template <typename Grammar, typename Domain, typename DirectorF>
- struct compose_empty : Grammar
+ struct compose_empty : proto::transform<compose_empty<Grammar, Domain, DirectorF> >, Grammar
{
- template<typename Sig>
- struct result;
-
- template <typename This, typename Expr, typename State, typename Visitor>
- struct result<This(Expr, State, Visitor)>
+ template<typename Expr, typename State, typename Data>
+ struct impl : proto::transform_impl<Expr, State, Data>
{
- typedef typename proto::result_of::arg<Expr>::type arg_type;
+ typedef typename proto::result_of::child<Expr>::type arg_type;
typedef
traits::make_component<
Domain
, typename mpl::apply1<DirectorF, arg_type>::type
, fusion::nil
- , Visitor
+ , Data
>
make_component;
- typedef typename make_component::type type;
- };
+ typedef typename make_component::type result_type;
- template<typename Expr, typename State, typename Visitor>
- typename result<void(Expr, State, Visitor)>::type
- operator ()(Expr const&, State const&, Visitor&) const
- {
- typedef typename result<void(Expr, State, Visitor)>::make_component result;
- return result::call(fusion::nil());
- }
+ result_type operator ()(
+ typename impl::expr_param
+ , typename impl::state_param
+ , typename impl::data_param
+ ) const
+ {
+ return make_component::call(fusion::nil());
+ }
+ };
};
///////////////////////////////////////////////////////////////////////////
@@ -80,43 +93,41 @@
// domain (i.e.: negated_char_parser<...>)
///////////////////////////////////////////////////////////////////////////
template <typename Grammar, typename Domain, typename DirectorF>
- struct compose_single : Grammar
+ struct compose_single : proto::transform<compose_single<Grammar, Domain, DirectorF> >, Grammar
{
- template<typename Sig>
- struct result;
-
- template <typename This, typename Expr, typename State, typename Visitor>
- struct result<This(Expr, State, Visitor)>
+ template<typename Expr, typename State, typename Data>
+ struct impl : proto::transform_impl<Expr, State, Data>
{
typedef typename
- proto::result_of::arg<
- typename Grammar::template result<void(Expr, State, Visitor)>::type
+ proto::result_of::child<
+ typename Grammar::template impl<Expr, State, Data>::result_type
>::type
arg_type;
-
+
typedef
traits::make_component<
Domain
, typename mpl::apply1<DirectorF, arg_type>::type
, typename fusion::result_of::make_cons<arg_type>::type
- , Visitor
+ , Data
>
make_component;
- typedef typename make_component::type type;
- };
+ typedef typename make_component::type result_type;
- template<typename Expr, typename State, typename Visitor>
- typename result<void(Expr, State, Visitor)>::type
- operator ()(Expr const& expr, State const& state, Visitor& visitor) const
- {
- typedef typename result<void(Expr, State, Visitor)>::make_component result;
- return result::call(
- fusion::make_cons(
- proto::arg(Grammar()(expr, state, visitor))
- )
- );
- }
+ result_type operator ()(
+ typename impl::expr_param expr
+ , typename impl::state_param state
+ , typename impl::data_param data
+ ) const
+ {
+ return make_component::call(
+ fusion::make_cons(
+ proto::child(invoke_grammar<Grammar, Expr, State, Data>()(expr, state, data))
+ )
+ );
+ }
+ };
};
///////////////////////////////////////////////////////////////////////////
@@ -131,16 +142,13 @@
// domain (i.e.: difference)
///////////////////////////////////////////////////////////////////////////
template <typename Grammar, typename Domain, typename DirectorF>
- struct compose_double : Grammar
+ struct compose_double : proto::transform<compose_double<Grammar, Domain, DirectorF> >, Grammar
{
- template<typename Sig>
- struct result;
-
- template <typename This, typename Expr, typename State, typename Visitor>
- struct result<This(Expr, State, Visitor)>
+ template<typename Expr, typename State, typename Data>
+ struct impl : proto::transform_impl<Expr, State, Data>
{
typedef typename
- Grammar::template result<void(Expr, State, Visitor)>::type
+ Grammar::template impl<Expr, State, Data>::result_type
trans;
typedef typename proto::result_of::left<trans>::type left_type;
@@ -154,26 +162,24 @@
Domain
, typename mpl::apply1<DirectorF, list_type>::type
, list_type
- , Visitor
+ , Data
>
make_component;
- typedef typename make_component::type type;
- };
+ typedef typename make_component::type result_type;
- template<typename Expr, typename State, typename Visitor>
- typename result<void(Expr, State, Visitor)>::type
- operator ()(Expr const& expr, State const& state, Visitor& visitor) const
- {
- typedef result<void(Expr, State, Visitor)> apply;
- typedef typename apply::make_component result;
- typedef typename apply::list_type list_type;
-
- typename apply::trans trans = Grammar()(expr, state, visitor);
- return result::call(
- fusion::make_list(proto::left(trans), proto::right(trans))
- );
- }
+ result_type operator ()(
+ typename impl::expr_param expr
+ , typename impl::state_param state
+ , typename impl::data_param data
+ ) const
+ {
+ trans t = invoke_grammar<Grammar, Expr, State, Data>()(expr, state, data);
+ return make_component::call(
+ fusion::make_list(proto::left(t), proto::right(t))
+ );
+ }
+ };
};
///////////////////////////////////////////////////////////////////////////
@@ -189,21 +195,18 @@
///////////////////////////////////////////////////////////////////////////
template <typename Grammar, typename Domain, typename DirectorF>
- struct compose_triple : Grammar
+ struct compose_triple : proto::transform<compose_triple<Grammar, Domain, DirectorF> >, Grammar
{
- template<typename Sig>
- struct result;
-
- template <typename This, typename Expr, typename State, typename Visitor>
- struct result<This(Expr, State, Visitor)>
+ template<typename Expr, typename State, typename Data>
+ struct impl : proto::transform_impl<Expr, State, Data>
{
typedef typename
- Grammar::template result<void(Expr, State, Visitor)>::type
+ Grammar::template impl<Expr, State, Data>::result_type
trans;
- typedef typename proto::result_of::arg_c<trans, 0>::type arg0_type;
- typedef typename proto::result_of::arg_c<trans, 1>::type arg1_type;
- typedef typename proto::result_of::arg_c<trans, 2>::type arg2_type;
+ typedef typename proto::result_of::child_c<trans, 0>::type arg0_type;
+ typedef typename proto::result_of::child_c<trans, 1>::type arg1_type;
+ typedef typename proto::result_of::child_c<trans, 2>::type arg2_type;
typedef typename
fusion::result_of::make_list<arg0_type, arg1_type, arg2_type>::type
@@ -214,26 +217,24 @@
Domain
, typename mpl::apply1<DirectorF, list_type>::type
, list_type
- , Visitor
+ , Data
>
make_component;
- typedef typename make_component::type type;
- };
+ typedef typename make_component::type result_type;
- template<typename Expr, typename State, typename Visitor>
- typename result<void(Expr, State, Visitor)>::type
- operator ()(Expr const& expr, State const& state, Visitor& visitor) const
- {
- typedef result<void(Expr, State, Visitor)> apply;
- typedef typename apply::make_component result;
- typedef typename apply::list_type list_type;
-
- typename apply::trans trans = Grammar()(expr, state, visitor);
- return result::call(
- fusion::make_list(proto::arg_c<0>(trans), proto::arg_c<1>(trans), proto::arg_c<2>(trans))
- );
- }
+ result_type operator ()(
+ typename impl::expr_param expr
+ , typename impl::state_param state
+ , typename impl::data_param data
+ ) const
+ {
+ trans t = invoke_grammar<Grammar, Expr, State, Data>()(expr, state, data);
+ return make_component::call(
+ fusion::make_list(proto::child_c<0>(t), proto::child_c<1>(t), proto::child_c<2>(t))
+ );
+ }
+ };
};
///////////////////////////////////////////////////////////////////////////
@@ -249,16 +250,13 @@
// domain (i.e.: difference)
///////////////////////////////////////////////////////////////////////////
template <typename Grammar, typename Domain, typename DirectorF>
- struct compose_right : Grammar
+ struct compose_right : proto::transform<compose_right<Grammar, Domain, DirectorF> >, Grammar
{
- template<typename Sig>
- struct result;
-
- template <typename This, typename Expr, typename State, typename Visitor>
- struct result<This(Expr, State, Visitor)>
+ template<typename Expr, typename State, typename Data>
+ struct impl : proto::transform_impl<Expr, State, Data>
{
typedef typename
- Grammar::template result<void(Expr, State, Visitor)>::type
+ Grammar::template impl<Expr, State, Data>::result_type
trans;
typedef typename proto::result_of::right<trans>::type right_type;
@@ -271,26 +269,24 @@
Domain
, typename mpl::apply1<DirectorF, list_type>::type
, list_type
- , Visitor
+ , Data
>
make_component;
- typedef typename make_component::type type;
- };
+ typedef typename make_component::type result_type;
- template<typename Expr, typename State, typename Visitor>
- typename result<void(Expr, State, Visitor)>::type
- operator ()(Expr const& expr, State const& state, Visitor& visitor) const
- {
- typedef result<void(Expr, State, Visitor)> apply;
- typedef typename apply::make_component result;
- typedef typename apply::list_type list_type;
-
- typename apply::trans trans = Grammar()(expr, state, visitor);
- return result::call(
- fusion::make_list(proto::right(trans))
- );
- }
+ result_type operator ()(
+ typename impl::expr_param expr
+ , typename impl::state_param state
+ , typename impl::data_param data
+ ) const
+ {
+ trans t = invoke_grammar<Grammar, Expr, State, Data>()(expr, state, data);
+ return make_component::call(
+ fusion::make_list(proto::right(t))
+ );
+ }
+ };
};
///////////////////////////////////////////////////////////////////////////
@@ -299,7 +295,7 @@
///////////////////////////////////////////////////////////////////////////
template <typename Pred, typename TransformF>
struct if_transform
- : proto::when<proto::if_<Pred>, proto::bind<TransformF> >
+ : proto::when<proto::if_<Pred>, proto::lazy<TransformF> >
{
};
@@ -307,33 +303,30 @@
// A proto transform that composes components from a fusion::list
///////////////////////////////////////////////////////////////////////////
template <typename Grammar, typename Domain, typename Director>
- struct compose_list : Grammar
+ struct compose_list : proto::transform<compose_list<Grammar, Domain, Director> >, Grammar
{
- template<typename Sig>
- struct result;
-
- template <typename This, typename Expr, typename State, typename Visitor>
- struct result<This(Expr, State, Visitor)>
+ template<typename Expr, typename State, typename Data>
+ struct impl : proto::transform_impl<Expr, State, Data>
{
typedef
traits::make_component<
Domain, Director
- , typename Grammar::template
- result<void(Expr, State, Visitor)>::type
- , Visitor
+ , typename Grammar::template impl<Expr, State, Data>::result_type
+ , Data
>
make_component;
- typedef typename make_component::type type;
- };
+ typedef typename make_component::type result_type;
- template<typename Expr, typename State, typename Visitor>
- typename result<void(Expr, State, Visitor)>::type
- operator ()(Expr const& expr, State const& state, Visitor& visitor) const
- {
- typedef typename result<void(Expr, State, Visitor)>::make_component result;
- return result::call(Grammar()(expr, state, visitor));
- }
+ result_type operator ()(
+ typename impl::expr_param expr
+ , typename impl::state_param state
+ , typename impl::data_param data
+ ) const
+ {
+ return make_component::call(invoke_grammar<Grammar, Expr, State, Data>()(expr, state, data));
+ }
+ };
};
///////////////////////////////////////////////////////////////////////////
@@ -341,17 +334,14 @@
// from a 1-arity proto function expression (e.g. f(x))
///////////////////////////////////////////////////////////////////////////
template <typename Grammar, typename Domain, typename Director>
- struct compose_function1 : Grammar
+ struct compose_function1 : proto::transform<compose_function1<Grammar, Domain, Director> >, Grammar
{
- template<typename Sig>
- struct result;
-
- template <typename This, typename Expr, typename State, typename Visitor>
- struct result<This(Expr, State, Visitor)>
+ template<typename Expr, typename State, typename Data>
+ struct impl : proto::transform_impl<Expr, State, Data>
{
typedef typename
- proto::result_of::arg<
- typename proto::result_of::arg_c<Expr, 1>::type
+ proto::result_of::child<
+ typename proto::result_of::child_c<Expr, 1>::type
>::type
arg1;
@@ -359,41 +349,39 @@
traits::make_component<
Domain, Director
, typename fusion::result_of::make_cons<arg1>::type
- , Visitor
+ , Data
>
make_component;
- typedef typename make_component::type type;
- };
+ typedef typename make_component::type result_type;
- template<typename Expr, typename State, typename Visitor>
- typename result<void(Expr, State, Visitor)>::type
- operator ()(Expr const& expr, State const&, Visitor&) const
- {
- typedef typename result<void(Expr, State, Visitor)>::make_component result;
- return result::call(fusion::make_cons(proto::arg(proto::arg_c<1>(expr))));
- }
+ result_type operator ()(
+ typename impl::expr_param expr
+ , typename impl::state_param state
+ , typename impl::data_param data
+ ) const
+ {
+ return make_component::call(fusion::make_cons(proto::child(proto::child_c<1>(expr))));
+ }
+ };
};
// Same as compose_function1, except that DirectorF is a meta-function to
// be evaluated to get the director
template <typename Grammar, typename Domain, typename DirectorF>
- struct compose_function1_eval : Grammar
+ struct compose_function1_eval : proto::transform<compose_function1_eval<Grammar, Domain, DirectorF> >, Grammar
{
- template<typename Sig>
- struct result;
-
- template <typename This, typename Expr, typename State, typename Visitor>
- struct result<This(Expr, State, Visitor)>
+ template<typename Expr, typename State, typename Data>
+ struct impl : proto::transform_impl<Expr, State, Data>
{
typedef typename
- proto::result_of::arg<
- typename proto::result_of::arg_c<Expr, 0>::type
+ proto::result_of::child<
+ typename proto::result_of::child_c<Expr, 0>::type
>::type
function;
typedef typename
- proto::result_of::arg<
- typename proto::result_of::arg_c<Expr, 1>::type
+ proto::result_of::child<
+ typename proto::result_of::child_c<Expr, 1>::type
>::type
arg1;
@@ -402,42 +390,41 @@
Domain
, typename mpl::apply2<DirectorF, function, arg1>::type
, typename fusion::result_of::make_cons<arg1>::type
- , Visitor
+ , Data
>
make_component;
- typedef typename make_component::type type;
- };
+ typedef typename make_component::type result_type;
- template<typename Expr, typename State, typename Visitor>
- typename result<void(Expr, State, Visitor)>::type
- operator ()(Expr const& expr, State const&, Visitor&) const
- {
- typedef typename result<void(Expr, State, Visitor)>::make_component result;
- return result::call(
- fusion::make_cons(proto::arg(proto::arg_c<1>(expr))));
- }
+ result_type operator ()(
+ typename impl::expr_param expr
+ , typename impl::state_param state
+ , typename impl::data_param data
+ ) const
+ {
+ return make_component::call(
+ fusion::make_cons(proto::child(proto::child_c<1>(expr))));
+ }
+ };
};
// Same as compose_function1, except that the generated component holds
// not only the function argument, but the function tag as well
template <typename Grammar, typename Domain, typename DirectorF>
- struct compose_function1_full : Grammar
+ struct compose_function1_full : proto::transform<compose_function1_full<Grammar, Domain, DirectorF> >, Grammar
{
- template<typename Sig>
- struct result;
-
- template <typename This, typename Expr, typename State, typename Visitor>
- struct result<This(Expr, State, Visitor)>
+ template<typename Expr, typename State, typename Data>
+ struct impl : proto::transform_impl<Expr, State, Data>
{
typedef typename
- proto::result_of::arg<
- typename proto::result_of::arg_c<Expr, 0>::type
+ proto::result_of::child<
+ typename proto::result_of::child_c<Expr, 0>::type
>::type
function;
+
typedef typename
- proto::result_of::arg<
- typename proto::result_of::arg_c<Expr, 1>::type
+ proto::result_of::child<
+ typename proto::result_of::child_c<Expr, 1>::type
>::type
arg1;
@@ -446,23 +433,24 @@
Domain
, typename mpl::apply2<DirectorF, function, arg1>::type
, typename fusion::result_of::make_list<function, arg1>::type
- , Visitor
+ , Data
>
make_component;
- typedef typename make_component::type type;
- };
+ typedef typename make_component::type result_type;
- template<typename Expr, typename State, typename Visitor>
- typename result<void(Expr, State, Visitor)>::type
- operator ()(Expr const& expr, State const& /*state*/, Visitor& /*visitor*/) const
- {
- typedef typename result<void(Expr, State, Visitor)>::make_component result;
- return result::call(fusion::make_list(
- proto::arg(proto::arg_c<0>(expr)),
- proto::arg(proto::arg_c<1>(expr))
- ));
- }
+ result_type operator ()(
+ typename impl::expr_param expr
+ , typename impl::state_param
+ , typename impl::data_param
+ ) const
+ {
+ return make_component::call(fusion::make_list(
+ proto::child(proto::child_c<0>(expr)),
+ proto::child(proto::child_c<1>(expr))
+ ));
+ }
+ };
};
///////////////////////////////////////////////////////////////////////////
@@ -470,23 +458,20 @@
// from a 2-arity proto function expression (e.g. f(x, y))
///////////////////////////////////////////////////////////////////////////
template <typename Grammar, typename Domain, typename Director>
- struct compose_function2 : Grammar
+ struct compose_function2 : proto::transform<compose_function2<Grammar, Domain, Director> >, Grammar
{
- template<typename Sig>
- struct result;
-
- template <typename This, typename Expr, typename State, typename Visitor>
- struct result<This(Expr, State, Visitor)>
+ template<typename Expr, typename State, typename Data>
+ struct impl : proto::transform_impl<Expr, State, Data>
{
typedef typename
- proto::result_of::arg<
- typename proto::result_of::arg_c<Expr, 1>::type
+ proto::result_of::child<
+ typename proto::result_of::child_c<Expr, 1>::type
>::type
arg1;
typedef typename
- proto::result_of::arg<
- typename proto::result_of::arg_c<Expr, 2>::type
+ proto::result_of::child<
+ typename proto::result_of::child_c<Expr, 2>::type
>::type
arg2;
@@ -494,49 +479,49 @@
traits::make_component<
Domain, Director
, typename fusion::result_of::make_list<arg1, arg2>::type
- , Visitor
+ , Data
>
make_component;
- typedef typename make_component::type type;
- };
+ typedef typename make_component::type result_type;
- template<typename Expr, typename State, typename Visitor>
- typename result<void(Expr, State, Visitor)>::type
- operator ()(Expr const& expr, State const& /*state*/, Visitor& /*visitor*/) const
- {
- typedef typename result<void(Expr, State, Visitor)>::make_component result;
- return result::call(fusion::make_list(
- proto::arg(proto::arg_c<1>(expr))
- , proto::arg(proto::arg_c<2>(expr))
- ));
- }
+ result_type operator ()(
+ typename impl::expr_param expr
+ , typename impl::state_param
+ , typename impl::data_param
+ ) const
+ {
+ return make_component::call(fusion::make_list(
+ proto::child(proto::child_c<1>(expr))
+ , proto::child(proto::child_c<2>(expr))
+ ));
+ }
+ };
};
// Same as compose_function2, except that DirectorF is a meta-function to
// be evaluated to get the director
template <typename Grammar, typename Domain, typename DirectorF>
- struct compose_function2_eval : Grammar
+ struct compose_function2_eval : proto::transform<compose_function2_eval<Grammar, Domain, DirectorF> >, Grammar
{
- template<typename Sig>
- struct result;
-
- template <typename This, typename Expr, typename State, typename Visitor>
- struct result<This(Expr, State, Visitor)>
+ template<typename Expr, typename State, typename Data>
+ struct impl : proto::transform_impl<Expr, State, Data>
{
typedef typename
- proto::result_of::arg<
- typename proto::result_of::arg_c<Expr, 0>::type
+ proto::result_of::child<
+ typename proto::result_of::child_c<Expr, 0>::type
>::type
function;
+
typedef typename
- proto::result_of::arg<
- typename proto::result_of::arg_c<Expr, 1>::type
+ proto::result_of::child<
+ typename proto::result_of::child_c<Expr, 1>::type
>::type
arg1;
+
typedef typename
- proto::result_of::arg<
- typename proto::result_of::arg_c<Expr, 2>::type
+ proto::result_of::child<
+ typename proto::result_of::child_c<Expr, 2>::type
>::type
arg2;
@@ -545,65 +530,59 @@
Domain
, typename mpl::apply2<DirectorF, function, arg1>::type
, typename fusion::result_of::make_list<arg1, arg2>::type
- , Visitor
+ , Data
>
make_component;
- typedef typename make_component::type type;
- };
+ typedef typename make_component::type result_type;
- template<typename Expr, typename State, typename Visitor>
- typename result<void(Expr, State, Visitor)>::type
- operator ()(Expr const& expr, State const& /*state*/, Visitor& /*visitor*/) const
- {
- typedef typename result<void(Expr, State, Visitor)>::make_component result;
- return result::call(fusion::make_list(
- proto::arg(proto::arg_c<1>(expr))
- , proto::arg(proto::arg_c<2>(expr))
- ));
- }
+ result_type operator ()(
+ typename impl::expr_param expr
+ , typename impl::state_param
+ , typename impl::data_param
+ ) const
+ {
+ return make_component::call(fusion::make_list(
+ proto::child(proto::child_c<1>(expr))
+ , proto::child(proto::child_c<2>(expr))
+ ));
+ }
+ };
};
///////////////////////////////////////////////////////////////////////////
// A proto transform for directives. The directive (terminal) tag
- // is pushed into the modifier state (the Visitor).
+ // is pushed into the modifier state (the Data).
///////////////////////////////////////////////////////////////////////////
template <typename Grammar>
- struct compose_deep_directive : Grammar
+ struct compose_deep_directive : proto::transform<compose_deep_directive<Grammar> >, Grammar
{
- template<typename Sig>
- struct result;
-
- template <typename This, typename Expr, typename State, typename Visitor>
- struct result<This(Expr, State, Visitor)>
+ template<typename Expr, typename State, typename Data>
+ struct impl : proto::transform_impl<Expr, State, Data>
{
typedef typename
add_modifier<
- Visitor
- , typename proto::result_of::arg<
- typename proto::result_of::arg_c<Expr, 0>::type
+ Data
+ , typename proto::result_of::child<
+ typename proto::result_of::child_c<Expr, 0>::type
>::type
>::type
modifier_type;
typedef typename
- Grammar::template result<void(Expr, State, modifier_type)>::type
- type;
- };
+ Grammar::template impl<Expr, State, modifier_type>::result_type
+ result_type;
- template<typename Expr, typename State, typename Visitor>
- typename result<void(Expr, State, Visitor)>::type
- operator ()(Expr const& expr, State const& state, Visitor&) const
- {
- typename add_modifier<
- Visitor
- , typename proto::result_of::arg<
- typename proto::result_of::arg_c<Expr, 0>::type
- >::type
- >::type
- modifier;
- return Grammar()(expr, state, modifier);
- }
+ result_type operator ()(
+ typename impl::expr_param expr
+ , typename impl::state_param state
+ , typename impl::data_param
+ ) const
+ {
+ modifier_type modifier;
+ return invoke_grammar<Grammar, Expr, State, modifier_type>()(expr, state, modifier);
+ }
+ };
};
///////////////////////////////////////////////////////////////////////////
@@ -615,48 +594,43 @@
//
///////////////////////////////////////////////////////////////////////////
template <typename Grammar, typename Domain, typename Director>
- struct compose_subscript : Grammar
+ struct compose_subscript : proto::transform<compose_subscript<Grammar, Domain, Director> >, Grammar
{
- template<typename Sig>
- struct result;
-
- template <typename This, typename Expr, typename State, typename Visitor>
- struct result<This(Expr, State, Visitor)>
+ template<typename Expr, typename State, typename Data>
+ struct impl : proto::transform_impl<Expr, State, Data>
{
// apply all grammar transformations mandated for the whole
// expression
typedef typename
- Grammar::template result<void(Expr, State, Visitor)>::type
+ Grammar::template impl<Expr, State, Data>::result_type
trans;
// this calculates the type of the directive
- typedef typename proto::result_of::arg_c<trans, 0>::type directive;
+ typedef typename proto::result_of::child_c<trans, 0>::type directive;
// this calculates the type of the embedded expression
- typedef typename proto::result_of::arg_c<trans, 1>::type embedded;
+ typedef typename proto::result_of::child_c<trans, 1>::type embedded;
// this is the type of the contained data
typedef fusion::list<embedded, directive> list_type;
typedef
- traits::make_component<Domain, Director, list_type, Visitor>
+ traits::make_component<Domain, Director, list_type, Data>
make_component;
- typedef typename make_component::type type;
- };
-
- template<typename Expr, typename State, typename Visitor>
- typename result<void(Expr, State, Visitor)>::type
- operator ()(Expr const& expr, State const& state, Visitor& visitor) const
- {
- typedef result<void(Expr, State, Visitor)> apply;
- typedef typename apply::make_component result;
- typedef typename apply::list_type list_type;
- typename apply::trans trans = Grammar()(expr, state, visitor);
+ typedef typename make_component::type result_type;
- return result::call(
- list_type(proto::arg_c<1>(trans), proto::arg_c<0>(trans)));
- }
+ result_type operator ()(
+ typename impl::expr_param expr
+ , typename impl::state_param state
+ , typename impl::data_param data
+ ) const
+ {
+ trans t = invoke_grammar<Grammar, Expr, State, Data>()(expr, state, data);
+ return make_component::call(
+ list_type(proto::child_c<1>(t), proto::child_c<0>(t)));
+ }
+ };
};
///////////////////////////////////////////////////////////////////////////
@@ -668,27 +642,24 @@
//
///////////////////////////////////////////////////////////////////////////
template <typename Grammar, typename Domain, typename Director>
- struct compose_subscript_function1 : Grammar
+ struct compose_subscript_function1 : proto::transform<compose_subscript_function1<Grammar, Domain, Director> >, Grammar
{
- template<typename Sig>
- struct result;
-
- template <typename This, typename Expr, typename State, typename Visitor>
- struct result<This(Expr, State, Visitor)>
+ template<typename Expr, typename State, typename Data>
+ struct impl : proto::transform_impl<Expr, State, Data>
{
// apply all grammar transformations mandated for the whole
// expression
typedef typename
- Grammar::template result<void(Expr, State, Visitor)>::type
+ Grammar::template impl<Expr, State, Data>::result_type
trans;
// this calculates the type of the embedded expression
- typedef typename proto::result_of::arg_c<trans, 1>::type embedded;
+ typedef typename proto::result_of::child_c<trans, 1>::type embedded;
// this calculates the type of the argument of the function
typedef typename
- proto::result_of::arg_c<
- typename proto::result_of::arg_c<trans, 0>::type, 1
+ proto::result_of::child_c<
+ typename proto::result_of::child_c<trans, 0>::type, 1
>::type
arg1;
@@ -699,26 +670,25 @@
traits::make_component<
Domain, Director,
list_type,
- Visitor
+ Data
>
make_component;
- typedef typename make_component::type type;
- };
+ typedef typename make_component::type result_type;
- template<typename Expr, typename State, typename Visitor>
- typename result<void(Expr, State, Visitor)>::type
- operator ()(Expr const& expr, State const& state, Visitor& visitor) const
- {
- typedef result<void(Expr, State, Visitor)> apply;
- typedef typename apply::make_component result;
- typedef typename apply::list_type list_type;
- typename apply::trans trans = Grammar()(expr, state, visitor);
+ result_type operator ()(
+ typename impl::expr_param expr
+ , typename impl::state_param state
+ , typename impl::data_param data
+ ) const
+ {
+ trans t = invoke_grammar<Grammar, Expr, State, Data>()(expr, state, data);
- return result::call(list_type(
- proto::arg_c<1>(trans),
- proto::arg_c<1>(proto::arg_c<0>(trans))));
- }
+ return make_component::call(list_type(
+ proto::child_c<1>(t),
+ proto::child_c<1>(proto::child_c<0>(t))));
+ }
+ };
};
///////////////////////////////////////////////////////////////////////////
@@ -730,54 +700,50 @@
//
///////////////////////////////////////////////////////////////////////////
template <typename Grammar, typename Domain, typename Director>
- struct compose_subscript_function2 : Grammar
+ struct compose_subscript_function2 : proto::transform<compose_subscript_function2<Grammar, Domain, Director> >, Grammar
{
- template<typename Sig>
- struct result;
-
- template <typename This, typename Expr, typename State, typename Visitor>
- struct result<This(Expr, State, Visitor)>
+ template<typename Expr, typename State, typename Data>
+ struct impl : proto::transform_impl<Expr, State, Data>
{
// apply all grammar transformations mandated for the whole
// expression
typedef typename
- Grammar::template result<void(Expr, State, Visitor)>::type
+ Grammar::template impl<Expr, State, Data>::result_type
trans;
// this calculates the types of the arguments of the function
- typedef typename proto::result_of::arg_c<trans, 0>::type arg0;
- typedef typename proto::result_of::arg_c<arg0, 1>::type arg1;
- typedef typename proto::result_of::arg_c<arg0, 2>::type arg2;
+ typedef typename proto::result_of::child_c<trans, 0>::type arg0;
+ typedef typename proto::result_of::child_c<arg0, 1>::type arg1;
+ typedef typename proto::result_of::child_c<arg0, 2>::type arg2;
// this calculates the type of the embedded expression
- typedef typename proto::result_of::arg_c<trans, 1>::type embedded;
+ typedef typename proto::result_of::child_c<trans, 1>::type embedded;
typedef fusion::list<embedded, arg1, arg2> list_type;
typedef
traits::make_component<
Domain, Director,
list_type,
- Visitor
+ Data
>
make_component;
- typedef typename make_component::type type;
- };
+ typedef typename make_component::type result_type;
- template<typename Expr, typename State, typename Visitor>
- typename result<void(Expr, State, Visitor)>::type
- operator ()(Expr const& expr, State const& state, Visitor& visitor) const
- {
- typedef result<void(Expr, State, Visitor)> apply;
- typedef typename apply::make_component result;
- typedef typename apply::list_type list_type;
- typename apply::trans trans = Grammar()(expr, state, visitor);
- typename apply::arg0 arg0 = proto::arg_c<0>(trans);
+ result_type operator ()(
+ typename impl::expr_param expr
+ , typename impl::state_param state
+ , typename impl::data_param data
+ ) const
+ {
+ trans t = invoke_grammar<Grammar, Expr, State, Data>()(expr, state, data);
+ arg0 a0 = proto::child_c<0>(t);
- return result::call(list_type(
- proto::arg_c<1>(trans), proto::arg_c<1>(arg0),
- proto::arg_c<2>(arg0)));
- }
+ return make_component::call(list_type(
+ proto::child_c<1>(t), proto::child_c<1>(a0),
+ proto::child_c<2>(a0)));
+ }
+ };
};
}}}
Modified: trunk/boost/spirit/home/support/nonterminal/nonterminal.hpp
==============================================================================
--- trunk/boost/spirit/home/support/nonterminal/nonterminal.hpp (original)
+++ trunk/boost/spirit/home/support/nonterminal/nonterminal.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -7,7 +7,7 @@
#if !defined(BOOST_SPIRIT_NONTERMINAL_MAR_06_2007_0236PM)
#define BOOST_SPIRIT_NONTERMINAL_MAR_06_2007_0236PM
-#include <boost/xpressive/proto/proto.hpp>
+#include <boost/proto/core.hpp>
#include <boost/function_types/result_type.hpp>
#include <boost/function_types/parameter_types.hpp>
#include <boost/fusion/include/as_vector.hpp>
Modified: trunk/boost/spirit/home/support/placeholders.hpp
==============================================================================
--- trunk/boost/spirit/home/support/placeholders.hpp (original)
+++ trunk/boost/spirit/home/support/placeholders.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -8,7 +8,7 @@
#if !defined(BOOST_SPIRIT_PLACEHOLDERS_NOV_18_2006_0326PM)
#define BOOST_SPIRIT_PLACEHOLDERS_NOV_18_2006_0326PM
-#include <boost/xpressive/proto/proto.hpp>
+#include <boost/proto/core.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/type_traits/is_enum.hpp>
Modified: trunk/boost/spirit/home/support/standard.hpp
==============================================================================
--- trunk/boost/spirit/home/support/standard.hpp (original)
+++ trunk/boost/spirit/home/support/standard.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -8,7 +8,7 @@
#define SPIRIT_STANDARD_JAN_31_2006_0529PM
#include <boost/spirit/home/support/char_class.hpp>
-#include <boost/xpressive/proto/proto.hpp>
+#include <boost/proto/core.hpp>
namespace boost { namespace spirit { namespace standard
{
Modified: trunk/boost/spirit/home/support/standard_wide.hpp
==============================================================================
--- trunk/boost/spirit/home/support/standard_wide.hpp (original)
+++ trunk/boost/spirit/home/support/standard_wide.hpp 2008-11-08 20:24:06 EST (Sat, 08 Nov 2008)
@@ -8,7 +8,7 @@
#define SPIRIT_STANDARD_WIDE_JAN_31_2006_0529PM
#include <boost/spirit/home/support/char_class.hpp>
-#include <boost/xpressive/proto/proto.hpp>
+#include <boost/proto/core.hpp>
namespace boost { namespace spirit { namespace standard_wide
{
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