summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '3rdParty/Boost/src/boost/spirit/home/support')
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/assert_msg.hpp35
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/attributes.hpp49
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/char_encoding/ascii.hpp40
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/char_encoding/iso8859_1.hpp40
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/char_encoding/standard.hpp47
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/char_encoding/standard_wide.hpp4
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode.hpp2
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode/query.hpp2
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/container.hpp16
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/context.hpp6
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/as_variant.hpp10
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/hold_any.hpp30
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/is_spirit_tag.hpp4
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/debug.hpp4
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/generator.hpp22
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/size_t.hpp8
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/state_machine.hpp10
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/string_token.hpp13
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/make_cons.hpp5
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/detail/scoped_enum_emulation.hpp4
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/info.hpp42
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/combine_policies.hpp38
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/multi_pass.hpp23
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/iterators/multi_pass.hpp7
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/limits.hpp13
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/make_component.hpp29
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/nonterminal/expand_arg.hpp4
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/terminal.hpp64
-rw-r--r--3rdParty/Boost/src/boost/spirit/home/support/terminal_expression.hpp63
29 files changed, 263 insertions, 371 deletions
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/assert_msg.hpp b/3rdParty/Boost/src/boost/spirit/home/support/assert_msg.hpp
index db36072..f1433da 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/assert_msg.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/assert_msg.hpp
@@ -1,4 +1,4 @@
-// Copyright (c) 2001-2011 Hartmut Kaiser
+// Copyright (c) 2001-2013 Hartmut Kaiser
//
// Distributed under the Boost Software License, Version 1.0. (See accompanying
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -10,12 +10,21 @@
#pragma once
#endif
-// Allow to work around the MPL problem in BOOST_MPL_ASSERT_MSG generating
-// multiple definition linker errors for certain compilers (VC++)
-#if BOOST_SPIRIT_DONT_USE_MPL_ASSERT_MSG != 0
+#include <boost/config.hpp>
+
+// Work around the MPL problem in BOOST_MPL_ASSERT_MSG generating
+// multiple definition linker errors for certain compilers (VC++ 8).
+// BOOST_SPIRIT_DONT_USE_MPL_ASSERT_MSG can also be defined by user.
+#if !defined(BOOST_SPIRIT_DONT_USE_MPL_ASSERT_MSG)
+# if defined(BOOST_MSVC) && BOOST_MSVC < 1500
+# define BOOST_SPIRIT_DONT_USE_MPL_ASSERT_MSG 1
+# endif
+#endif
+
+#if !defined(BOOST_NO_CXX11_STATIC_ASSERT) || BOOST_SPIRIT_DONT_USE_MPL_ASSERT_MSG != 0
#include <boost/static_assert.hpp>
#define BOOST_SPIRIT_ASSERT_MSG(Cond, Msg, Types) \
- BOOST_STATIC_ASSERT(Cond)
+ BOOST_STATIC_ASSERT_MSG(Cond, # Msg)
#else
#include <boost/mpl/assert.hpp>
#define BOOST_SPIRIT_ASSERT_MSG(Cond, Msg, Types) \
@@ -24,8 +33,22 @@
#define BOOST_SPIRIT_ASSERT_MATCH(Domain, Expr) \
BOOST_SPIRIT_ASSERT_MSG(( \
- boost::spirit::traits::matches<Domain, Expr>::value \
+ boost::spirit::traits::matches< Domain, Expr >::value \
), error_invalid_expression, (Expr))
+// GCC 4.7 will overeagerly instantiate static_asserts in template functions,
+// if the assert condition does not depend on template parameters
+// (see https://svn.boost.org/trac/boost/ticket/8381).
+// There are places where we want to use constant false as the condition in
+// template functions to indicate that these function overloads should never
+// be called. This allows to generate better error messages. To solve this
+// problem we make the condition dependent on the template argument and use
+// the following macro in such places.
+#include <boost/type_traits/is_same.hpp>
+
+#define BOOST_SPIRIT_ASSERT_FAIL(TemplateParam, Msg, Types) \
+ BOOST_SPIRIT_ASSERT_MSG((!boost::is_same< \
+ TemplateParam, TemplateParam >::value), Msg, Types)
+
#endif
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/attributes.hpp b/3rdParty/Boost/src/boost/spirit/home/support/attributes.hpp
index 48bff06..163f11c 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/attributes.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/attributes.hpp
@@ -1,6 +1,6 @@
/*=============================================================================
Copyright (c) 2001-2011 Joel de Guzman
- Copyright (c) 2001-2011 Hartmut Kaiser
+ Copyright (c) 2001-2012 Hartmut Kaiser
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
@@ -202,6 +202,19 @@ namespace boost { namespace spirit { namespace traits
struct is_weak_substitute<T, optional<Expected> >
: is_weak_substitute<T, Expected> {};
+#if !defined(BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES)
+ template <typename T, typename Expected>
+ struct is_weak_substitute<boost::variant<T>, Expected>
+ : is_weak_substitute<T, Expected>
+ {};
+
+ template <typename T0, typename T1, typename ...TN, typename Expected>
+ struct is_weak_substitute<boost::variant<T0, T1, TN...>,
+ Expected>
+ : mpl::bool_<is_weak_substitute<T0, Expected>::type::value &&
+ is_weak_substitute<boost::variant<T1, TN...>, Expected>::type::value>
+ {};
+#else
#define BOOST_SPIRIT_IS_WEAK_SUBSTITUTE(z, N, _) \
is_weak_substitute<BOOST_PP_CAT(T, N), Expected>::type::value && \
/***/
@@ -220,6 +233,7 @@ namespace boost { namespace spirit { namespace traits
{};
#undef BOOST_SPIRIT_IS_WEAK_SUBSTITUTE
+#endif
template <typename T>
struct is_weak_substitute<T, T
@@ -516,7 +530,30 @@ namespace boost { namespace spirit { namespace traits
{
if (!val)
return 0;
- return val.get();
+ return traits::size(val.get());
+ }
+ };
+
+ namespace detail
+ {
+ struct attribute_size_visitor : static_visitor<std::size_t>
+ {
+ template <typename T>
+ std::size_t operator()(T const& val) const
+ {
+ return spirit::traits::size(val);
+ }
+ };
+ }
+
+ template <BOOST_VARIANT_ENUM_PARAMS(typename T)>
+ struct attribute_size<variant<BOOST_VARIANT_ENUM_PARAMS(T)> >
+ {
+ typedef std::size_t type;
+
+ static type call(variant<BOOST_VARIANT_ENUM_PARAMS(T)> const& val)
+ {
+ return apply_visitor(detail::attribute_size_visitor(), val);
}
};
@@ -748,7 +785,7 @@ namespace boost { namespace spirit { namespace traits
};
// never called, but needed for decltype-based result_of (C++0x)
-#ifndef BOOST_NO_RVALUE_REFERENCES
+#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
template <typename Element>
typename result<element_attribute(Element)>::type
operator()(Element&&) const;
@@ -1158,8 +1195,8 @@ namespace boost { namespace spirit { namespace traits
template <typename Out>
struct print_fusion_sequence
{
- print_fusion_sequence(Out& out)
- : out(out), is_first(true) {}
+ print_fusion_sequence(Out& out_)
+ : out(out_), is_first(true) {}
typedef void result_type;
@@ -1181,7 +1218,7 @@ namespace boost { namespace spirit { namespace traits
template <typename Out>
struct print_visitor : static_visitor<>
{
- print_visitor(Out& out) : out(out) {}
+ print_visitor(Out& out_) : out(out_) {}
template <typename T>
void operator()(T const& val) const
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/ascii.hpp b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/ascii.hpp
index 9b8a72f..8bd6c11 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/ascii.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/ascii.hpp
@@ -188,7 +188,7 @@ namespace boost { namespace spirit { namespace char_encoding
return isascii_(ch);
}
- static int
+ static bool
isalnum(int ch)
{
BOOST_ASSERT(isascii_(ch));
@@ -196,78 +196,78 @@ namespace boost { namespace spirit { namespace char_encoding
|| (ascii_char_types[ch] & BOOST_CC_DIGIT);
}
- static int
+ static bool
isalpha(int ch)
{
BOOST_ASSERT(isascii_(ch));
- return (ascii_char_types[ch] & BOOST_CC_ALPHA);
+ return (ascii_char_types[ch] & BOOST_CC_ALPHA) ? true : false;
}
- static int
+ static bool
isdigit(int ch)
{
BOOST_ASSERT(isascii_(ch));
- return (ascii_char_types[ch] & BOOST_CC_DIGIT);
+ return (ascii_char_types[ch] & BOOST_CC_DIGIT) ? true : false;
}
- static int
+ static bool
isxdigit(int ch)
{
BOOST_ASSERT(isascii_(ch));
- return (ascii_char_types[ch] & BOOST_CC_XDIGIT);
+ return (ascii_char_types[ch] & BOOST_CC_XDIGIT) ? true : false;
}
- static int
+ static bool
iscntrl(int ch)
{
BOOST_ASSERT(isascii_(ch));
- return (ascii_char_types[ch] & BOOST_CC_CTRL);
+ return (ascii_char_types[ch] & BOOST_CC_CTRL) ? true : false;
}
- static int
+ static bool
isgraph(int ch)
{
return ('\x21' <= ch && ch <= '\x7e');
}
- static int
+ static bool
islower(int ch)
{
BOOST_ASSERT(isascii_(ch));
- return (ascii_char_types[ch] & BOOST_CC_LOWER);
+ return (ascii_char_types[ch] & BOOST_CC_LOWER) ? true : false;
}
- static int
+ static bool
isprint(int ch)
{
return ('\x20' <= ch && ch <= '\x7e');
}
- static int
+ static bool
ispunct(int ch)
{
BOOST_ASSERT(isascii_(ch));
- return (ascii_char_types[ch] & BOOST_CC_PUNCT);
+ return (ascii_char_types[ch] & BOOST_CC_PUNCT) ? true : false;
}
- static int
+ static bool
isspace(int ch)
{
BOOST_ASSERT(isascii_(ch));
- return (ascii_char_types[ch] & BOOST_CC_SPACE);
+ return (ascii_char_types[ch] & BOOST_CC_SPACE) ? true : false;
}
- static int
+ static bool
isblank BOOST_PREVENT_MACRO_SUBSTITUTION (int ch)
{
return ('\x09' == ch || '\x20' == ch);
}
- static int
+ static bool
isupper(int ch)
{
BOOST_ASSERT(isascii_(ch));
- return (ascii_char_types[ch] & BOOST_CC_UPPER);
+ return (ascii_char_types[ch] & BOOST_CC_UPPER) ? true : false;
}
///////////////////////////////////////////////////////////////////////
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/iso8859_1.hpp b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/iso8859_1.hpp
index 37d2e6f..b2b5dd1 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/iso8859_1.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/iso8859_1.hpp
@@ -584,7 +584,7 @@ namespace boost { namespace spirit { namespace char_encoding
return (0 == (ch & ~0xff) || ~0 == (ch | 0xff)) ? true : false;
}
- static int
+ static bool
isalnum(int ch)
{
BOOST_ASSERT(0 == (ch & ~UCHAR_MAX));
@@ -592,78 +592,78 @@ namespace boost { namespace spirit { namespace char_encoding
|| (iso8859_1_char_types[ch] & BOOST_CC_DIGIT);
}
- static int
+ static bool
isalpha(int ch)
{
BOOST_ASSERT(0 == (ch & ~UCHAR_MAX));
- return (iso8859_1_char_types[ch] & BOOST_CC_ALPHA);
+ return (iso8859_1_char_types[ch] & BOOST_CC_ALPHA) ? true : false;
}
- static int
+ static bool
isdigit(int ch)
{
BOOST_ASSERT(0 == (ch & ~UCHAR_MAX));
- return (iso8859_1_char_types[ch] & BOOST_CC_DIGIT);
+ return (iso8859_1_char_types[ch] & BOOST_CC_DIGIT) ? true : false;
}
- static int
+ static bool
isxdigit(int ch)
{
BOOST_ASSERT(0 == (ch & ~UCHAR_MAX));
- return (iso8859_1_char_types[ch] & BOOST_CC_XDIGIT);
+ return (iso8859_1_char_types[ch] & BOOST_CC_XDIGIT) ? true : false;
}
- static int
+ static bool
iscntrl(int ch)
{
BOOST_ASSERT(0 == (ch & ~UCHAR_MAX));
- return (iso8859_1_char_types[ch] & BOOST_CC_CTRL);
+ return (iso8859_1_char_types[ch] & BOOST_CC_CTRL) ? true : false;
}
- static int
+ static bool
isgraph(int ch)
{
return ('\x21' <= ch && ch <= '\x7e') || ('\xa1' <= ch && ch <= '\xff');
}
- static int
+ static bool
islower(int ch)
{
BOOST_ASSERT(0 == (ch & ~UCHAR_MAX));
- return (iso8859_1_char_types[ch] & BOOST_CC_LOWER);
+ return (iso8859_1_char_types[ch] & BOOST_CC_LOWER) ? true : false;
}
- static int
+ static bool
isprint(int ch)
{
return ('\x20' <= ch && ch <= '\x7e') || ('\xa0' <= ch && ch <= '\xff');
}
- static int
+ static bool
ispunct(int ch)
{
BOOST_ASSERT(0 == (ch & ~UCHAR_MAX));
- return (iso8859_1_char_types[ch] & BOOST_CC_PUNCT);
+ return (iso8859_1_char_types[ch] & BOOST_CC_PUNCT) ? true : false;
}
- static int
+ static bool
isspace(int ch)
{
BOOST_ASSERT(0 == (ch & ~UCHAR_MAX));
- return (iso8859_1_char_types[ch] & BOOST_CC_SPACE);
+ return (iso8859_1_char_types[ch] & BOOST_CC_SPACE) ? true : false;
}
- static int
+ static bool
isblank BOOST_PREVENT_MACRO_SUBSTITUTION (int ch)
{
return ('\x09' == ch || '\x20' == ch || '\xa0' == ch);
}
- static int
+ static bool
isupper(int ch)
{
BOOST_ASSERT(0 == (ch & ~UCHAR_MAX));
- return (iso8859_1_char_types[ch] & BOOST_CC_UPPER);
+ return (iso8859_1_char_types[ch] & BOOST_CC_UPPER) ? true : false;
}
///////////////////////////////////////////////////////////////////////////
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/standard.hpp b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/standard.hpp
index c32a9e7..fb307ce 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/standard.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/standard.hpp
@@ -38,81 +38,82 @@ namespace boost { namespace spirit { namespace char_encoding
return (0 == (ch & ~0xff) || ~0 == (ch | 0xff)) ? true : false;
}
- static int
+ static bool
isalnum(int ch)
{
- return std::isalnum(ch);
+ return std::isalnum(ch) ? true : false;
}
- static int
+ static bool
isalpha(int ch)
{
- return std::isalpha(ch);
+ return std::isalpha(ch) ? true : false;
}
- static int
+ static bool
isdigit(int ch)
{
- return std::isdigit(ch);
+ return std::isdigit(ch) ? true : false;
}
- static int
+ static bool
isxdigit(int ch)
{
- return std::isxdigit(ch);
+ return std::isxdigit(ch) ? true : false;
}
- static int
+ static bool
iscntrl(int ch)
{
- return std::iscntrl(ch);
+ return std::iscntrl(ch) ? true : false;
}
- static int
+ static bool
isgraph(int ch)
{
- return std::isgraph(ch);
+ return std::isgraph(ch) ? true : false;
}
- static int
+ static bool
islower(int ch)
{
- return std::islower(ch);
+ return std::islower(ch) ? true : false;
}
- static int
+ static bool
isprint(int ch)
{
- return std::isprint(ch);
+ return std::isprint(ch) ? true : false;
}
- static int
+ static bool
ispunct(int ch)
{
- return std::ispunct(ch);
+ return std::ispunct(ch) ? true : false;
}
- static int
+ static bool
isspace(int ch)
{
- return std::isspace(ch);
+ return std::isspace(ch) ? true : false;
}
- static int
+ static bool
isblank BOOST_PREVENT_MACRO_SUBSTITUTION (int ch)
{
return (ch == ' ' || ch == '\t');
}
- static int
+ static bool
isupper(int ch)
{
- return std::isupper(ch);
+ return std::isupper(ch) ? true : false;
}
///////////////////////////////////////////////////////////////////////////////
// Simple character conversions
///////////////////////////////////////////////////////////////////////////////
+
static int
tolower(int ch)
{
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/standard_wide.hpp b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/standard_wide.hpp
index 99c918c..515a388 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/standard_wide.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/standard_wide.hpp
@@ -154,6 +154,10 @@ namespace boost { namespace spirit { namespace char_encoding
return (ch == L' ' || ch == L'\t');
}
+ ///////////////////////////////////////////////////////////////////////
+ // Simple character conversions
+ ///////////////////////////////////////////////////////////////////////
+
static wchar_t
tolower(wchar_t ch)
{
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode.hpp b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode.hpp
index 9febf7e..b5ec3e6 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode.hpp
@@ -100,7 +100,7 @@ namespace boost { namespace spirit { namespace char_encoding
return ucd::is_white_space(ch);
}
- static int
+ static bool
isblank BOOST_PREVENT_MACRO_SUBSTITUTION (char_type ch)
{
return ucd::is_blank(ch);
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode/query.hpp b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode/query.hpp
index 3a0526c..370ab67 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode/query.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/char_encoding/unicode/query.hpp
@@ -284,7 +284,7 @@ namespace boost { namespace spirit { namespace ucd
inline properties::script get_script(::boost::uint32_t ch)
{
- return static_cast<properties::script>(detail::script_lookup(ch) & 0x3F);
+ return static_cast<properties::script>(detail::script_lookup(ch) & 0x7F);
}
inline ::boost::uint32_t to_lowercase(::boost::uint32_t ch)
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/container.hpp b/3rdParty/Boost/src/boost/spirit/home/support/container.hpp
index 7f491aa..5e154cd 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/container.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/container.hpp
@@ -59,6 +59,19 @@ namespace boost { namespace spirit { namespace traits
: is_container<T>
{};
+#if !defined(BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES)
+ template<typename T>
+ struct is_container<boost::variant<T> >
+ : is_container<T>
+ {};
+
+ template<typename T0, typename T1, typename ...TN>
+ struct is_container<boost::variant<T0, T1, TN...> >
+ : mpl::bool_<is_container<T0>::value ||
+ is_container<boost::variant<T1, TN...> >::value>
+ {};
+
+#else
#define BOOST_SPIRIT_IS_CONTAINER(z, N, data) \
is_container<BOOST_PP_CAT(T, N)>::value || \
/***/
@@ -76,6 +89,7 @@ namespace boost { namespace spirit { namespace traits
{};
#undef BOOST_SPIRIT_IS_CONTAINER
+#endif
template <typename T, typename Enable/* = void*/>
struct is_iterator_range
@@ -238,7 +252,7 @@ namespace boost { namespace spirit { namespace traits
static bool is_valid(boost::optional<T> const& val)
{
- return val;
+ return !!val;
}
};
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/context.hpp b/3rdParty/Boost/src/boost/spirit/home/support/context.hpp
index b728b4f..ada873a 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/context.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/context.hpp
@@ -98,7 +98,7 @@ namespace boost { namespace spirit
typedef Locals locals_type;
context(typename Attributes::car_type attribute)
- : attributes(attribute, fusion::nil()), locals() {}
+ : attributes(attribute, fusion::nil_()), locals() {}
template <typename Args, typename Context>
context(
@@ -116,8 +116,8 @@ namespace boost { namespace spirit
)
, locals() {}
- context(Attributes const& attributes)
- : attributes(attributes), locals() {}
+ context(Attributes const& attributes_)
+ : attributes(attributes_), locals() {}
Attributes attributes; // The attributes
Locals locals; // Local variables
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/detail/as_variant.hpp b/3rdParty/Boost/src/boost/spirit/home/support/detail/as_variant.hpp
index e2fe18d..9312042 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/detail/as_variant.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/detail/as_variant.hpp
@@ -23,6 +23,7 @@
#include <boost/mpl/push_back.hpp>
#include <boost/mpl/equal_to.hpp>
#include <boost/mpl/contains.hpp>
+#include <boost/mpl/limits/list.hpp>
#include <boost/type_traits/is_same.hpp>
namespace boost { namespace spirit { namespace detail
@@ -30,6 +31,8 @@ namespace boost { namespace spirit { namespace detail
template <int size>
struct as_variant_impl;
+#if !defined(BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES)
+#else
template <>
struct as_variant_impl<0>
{
@@ -39,6 +42,7 @@ namespace boost { namespace spirit { namespace detail
typedef variant<> type;
};
};
+#endif
#define BOOST_FUSION_NEXT_ITERATOR(z, n, data) \
typedef typename fusion::result_of::next<BOOST_PP_CAT(I, n)>::type \
@@ -53,7 +57,13 @@ namespace boost { namespace spirit { namespace detail
BOOST_PP_CAT(T, n);
#define BOOST_PP_FILENAME_1 <boost/spirit/home/support/detail/as_variant.hpp>
+
+#if !defined(BOOST_VARIANT_DO_NOT_USE_VARIADIC_TEMPLATES)
+#define BOOST_PP_ITERATION_LIMITS (1, BOOST_MPL_LIMIT_LIST_SIZE)
+#else
#define BOOST_PP_ITERATION_LIMITS (1, BOOST_VARIANT_LIMIT_TYPES)
+#endif
+
#include BOOST_PP_ITERATE()
#undef BOOST_FUSION_NEXT_ITERATOR
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/detail/hold_any.hpp b/3rdParty/Boost/src/boost/spirit/home/support/detail/hold_any.hpp
index 4332fa2..f9a3ff1 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/detail/hold_any.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/detail/hold_any.hpp
@@ -98,7 +98,6 @@ namespace boost { namespace spirit
}
static void move(void* const* src, void** dest)
{
- reinterpret_cast<T*>(dest)->~T();
*reinterpret_cast<T*>(dest) =
*reinterpret_cast<T const*>(src);
}
@@ -144,7 +143,6 @@ namespace boost { namespace spirit
}
static void move(void* const* src, void** dest)
{
- (*reinterpret_cast<T**>(dest))->~T();
**reinterpret_cast<T**>(dest) =
**reinterpret_cast<T* const*>(src);
}
@@ -300,11 +298,25 @@ namespace boost { namespace spirit
}
// assignment operator
+#ifdef BOOST_HAS_RVALUE_REFS
+ template <typename T>
+ basic_hold_any& operator=(T&& x)
+ {
+ return assign(std::forward<T>(x));
+ }
+#else
+ template <typename T>
+ basic_hold_any& operator=(T& x)
+ {
+ return assign(x);
+ }
+
template <typename T>
basic_hold_any& operator=(T const& x)
{
return assign(x);
}
+#endif
// utility functions
basic_hold_any& swap(basic_hold_any& x)
@@ -405,15 +417,6 @@ namespace boost { namespace spirit
{
typedef BOOST_DEDUCED_TYPENAME remove_reference<T>::type nonref;
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- // If 'nonref' is still reference type, it means the user has not
- // specialized 'remove_reference'.
-
- // Please use BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION macro
- // to generate specialization of remove_reference for your class
- // See type traits library documentation for details
- BOOST_STATIC_ASSERT(!is_reference<nonref>::value);
-#endif
nonref* result = any_cast<nonref>(&operand);
if(!result)
@@ -426,11 +429,6 @@ namespace boost { namespace spirit
{
typedef BOOST_DEDUCED_TYPENAME remove_reference<T>::type nonref;
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- // The comment in the above version of 'any_cast' explains when this
- // assert is fired and what to do.
- BOOST_STATIC_ASSERT(!is_reference<nonref>::value);
-#endif
return any_cast<nonref const&>(const_cast<basic_hold_any<Char> &>(operand));
}
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/detail/is_spirit_tag.hpp b/3rdParty/Boost/src/boost/spirit/home/support/detail/is_spirit_tag.hpp
index 73269e2..e8f9f6d 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/detail/is_spirit_tag.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/detail/is_spirit_tag.hpp
@@ -11,10 +11,6 @@
#pragma once
#endif
-#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
-#define BOOST_SPIRIT_IS_TAG()
-#else
#define BOOST_SPIRIT_IS_TAG() typedef void is_spirit_tag;
-#endif
#endif
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/debug.hpp b/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/debug.hpp
index 23cda87..36ee1bb 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/debug.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/debug.hpp
@@ -31,11 +31,7 @@ public:
const CharT *ptr_ = in_.c_str ();
std::size_t size_ = in_.size ();
-#if defined _MSC_VER && _MSC_VER <= 1200
- out_.erase ();
-#else
out_.clear ();
-#endif
while (size_)
{
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/generator.hpp b/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/generator.hpp
index 49bea2f..daa06e7 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/generator.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/generator.hpp
@@ -12,6 +12,7 @@
#include "partition/charset.hpp"
#include "partition/equivset.hpp"
#include <memory>
+#include <limits>
#include "parser/tree/node.hpp"
#include "parser/parser.hpp"
#include "containers/ptr_list.hpp"
@@ -185,10 +186,10 @@ protected:
while (regex_iter_ != regex_iter_end_)
{
// re-declare var, otherwise we perform an assignment..!
- const typename rules::string &regex_ = *regex_iter_;
+ const typename rules::string &regex2_ = *regex_iter_;
- root_ = parser::parse (regex_.c_str (),
- regex_.c_str () + regex_.size (), *ids_iter_,
+ root_ = parser::parse (regex2_.c_str (),
+ regex2_.c_str () + regex2_.size (), *ids_iter_,
*unique_ids_iter_, *states_iter_, rules_.flags (),
rules_.locale (), node_ptr_vector_, macromap_, token_map_,
internals_._seen_BOL_assertion,
@@ -336,16 +337,16 @@ protected:
equiv_end_ = equivset_->_index_vector.end ();
equiv_iter_ != equiv_end_; ++equiv_iter_)
{
- const std::size_t index_ = *equiv_iter_;
+ const std::size_t equiv_index_ = *equiv_iter_;
- if (index_ == bol_token)
+ if (equiv_index_ == bol_token)
{
if (ptr_[eol_index] == 0)
{
ptr_[bol_index] = transition_;
}
}
- else if (index_ == eol_token)
+ else if (equiv_index_ == eol_token)
{
if (ptr_[bol_index] == 0)
{
@@ -354,7 +355,7 @@ protected:
}
else
{
- ptr_[index_ + dfa_offset] = transition_;
+ ptr_[equiv_index_ + dfa_offset] = transition_;
}
}
}
@@ -560,7 +561,12 @@ protected:
if (token_._negated)
{
- CharT curr_char_ = sizeof (CharT) == 1 ? -128 : 0;
+ // $$$ FIXME JDG July 2014 $$$
+ // this code is problematic on platforms where wchar_t is signed
+ // with min generating negative numbers. This crashes with BAD_ACCESS
+ // because of the vector index below:
+ // ptr_[static_cast<typename Traits::index_type>(curr_char_)]
+ CharT curr_char_ = 0; // (std::numeric_limits<CharT>::min)();
std::size_t i_ = 0;
while (curr_ < chars_end_)
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/size_t.hpp b/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/size_t.hpp
index 349aa6d..449ff4d 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/size_t.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/size_t.hpp
@@ -8,14 +8,6 @@
#include <stddef.h> // ptrdiff_t
-#if defined _MSC_VER && _MSC_VER <= 1200
-namespace std
-{
- using ::ptrdiff_t;
- using ::size_t;
-}
-#else
#include <string>
-#endif
#endif
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/state_machine.hpp b/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/state_machine.hpp
index e09e991..46e50c9 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/state_machine.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/state_machine.hpp
@@ -29,11 +29,7 @@ public:
class iterator
{
public:
-#if defined _MSC_VER && _MSC_VER <= 1200
- friend basic_state_machine;
-#else
friend class basic_state_machine;
-#endif
struct data
{
@@ -225,11 +221,7 @@ public:
}
};
-#if defined _MSC_VER && _MSC_VER <= 1200
- friend iterator;
-#else
friend class iterator;
-#endif
basic_state_machine ()
{
@@ -365,7 +357,7 @@ private:
{
const std::size_t col_ = lu_->at (alpha_index_);
- if (col_ != dead_state_index)
+ if (col_ != static_cast<std::size_t>(dead_state_index))
{
chars_[col_ - dfa_offset] += static_cast<CharT>
(alpha_index_);
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/string_token.hpp b/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/string_token.hpp
index 6bfa6ff..dd58c98 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/string_token.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/detail/lexer/string_token.hpp
@@ -10,6 +10,7 @@
#include "size_t.hpp"
#include "consts.hpp" // num_chars, num_wchar_ts
#include <string>
+#include <limits>
namespace boost
{
@@ -55,11 +56,7 @@ struct basic_string_token
if (_charset.length () == max_chars_)
{
_negated = !_negated;
-#if defined _MSC_VER && _MSC_VER <= 1200
- _charset.erase ();
-#else
_charset.clear ();
-#endif
}
else if (_charset.length () > max_chars_ / 2)
{
@@ -71,7 +68,7 @@ struct basic_string_token
{
const std::size_t max_chars_ = sizeof (CharT) == 1 ?
num_chars : num_wchar_ts;
- CharT curr_char_ = sizeof (CharT) == 1 ? -128 : 0;
+ CharT curr_char_ = (std::numeric_limits<CharT>::min)();
string temp_;
const CharT *curr_ = _charset.c_str ();
const CharT *chars_end_ = curr_ + _charset.size ();
@@ -126,11 +123,7 @@ struct basic_string_token
void clear ()
{
_negated = false;
-#if defined _MSC_VER && _MSC_VER <= 1200
- _charset.erase ();
-#else
- _charset.clear ();
-#endif
+ _charset.clear ();
}
void intersect (basic_string_token &rhs_, basic_string_token &overlap_)
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/detail/make_cons.hpp b/3rdParty/Boost/src/boost/spirit/home/support/detail/make_cons.hpp
index cbbb73b..0d6b0ae 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/detail/make_cons.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/detail/make_cons.hpp
@@ -42,11 +42,10 @@ namespace boost { namespace spirit { namespace detail
namespace result_of
{
- template <typename Car, typename Cdr = fusion::nil>
+ template <typename Car, typename Cdr = fusion::nil_>
struct make_cons
{
- typedef typename as_meta_element<Car>::type car_type;
- typedef typename fusion::cons<car_type, Cdr> type;
+ typedef typename as_meta_element<Car>::type car_type; typedef typename fusion::cons<car_type, Cdr> type;
};
}
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/detail/scoped_enum_emulation.hpp b/3rdParty/Boost/src/boost/spirit/home/support/detail/scoped_enum_emulation.hpp
index 70979a6..1b35043 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/detail/scoped_enum_emulation.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/detail/scoped_enum_emulation.hpp
@@ -17,8 +17,8 @@
#if BOOST_VERSION >= 104000
# include <boost/detail/scoped_enum_emulation.hpp>
#else
-# if !defined(BOOST_NO_SCOPED_ENUMS)
-# define BOOST_NO_SCOPED_ENUMS
+# if !defined(BOOST_NO_CXX11_SCOPED_ENUMS)
+# define BOOST_NO_CXX11_SCOPED_ENUMS
# endif
# define BOOST_SCOPED_ENUM_START(name) struct name { enum enum_type
# define BOOST_SCOPED_ENUM_END };
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/info.hpp b/3rdParty/Boost/src/boost/spirit/home/support/info.hpp
index ff523ab..9b991ac 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/info.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/info.hpp
@@ -28,11 +28,11 @@ namespace boost { namespace spirit
// for uniformity.
struct info
{
- struct nil {};
+ struct nil_ {};
typedef
boost::variant<
- nil
+ nil_
, utf8_string
, recursive_wrapper<info>
, recursive_wrapper<std::pair<info, info> >
@@ -40,30 +40,30 @@ namespace boost { namespace spirit
>
value_type;
- explicit info(utf8_string const& tag)
- : tag(tag), value(nil()) {}
+ explicit info(utf8_string const& tag_)
+ : tag(tag_), value(nil_()) {}
template <typename T>
- info(utf8_string const& tag, T const& value)
- : tag(tag), value(value) {}
+ info(utf8_string const& tag_, T const& value_)
+ : tag(tag_), value(value_) {}
- info(utf8_string const& tag, char value)
- : tag(tag), value(utf8_string(1, value)) {}
+ info(utf8_string const& tag_, char value_)
+ : tag(tag_), value(utf8_string(1, value_)) {}
- info(utf8_string const& tag, wchar_t value)
- : tag(tag), value(to_utf8(value)) {}
+ info(utf8_string const& tag_, wchar_t value_)
+ : tag(tag_), value(to_utf8(value_)) {}
- info(utf8_string const& tag, ucs4_char value)
- : tag(tag), value(to_utf8(value)) {}
+ info(utf8_string const& tag_, ucs4_char value_)
+ : tag(tag_), value(to_utf8(value_)) {}
template <typename Char>
- info(utf8_string const& tag, Char const* str)
- : tag(tag), value(to_utf8(str)) {}
+ info(utf8_string const& tag_, Char const* str)
+ : tag(tag_), value(to_utf8(str)) {}
template <typename Char, typename Traits, typename Allocator>
- info(utf8_string const& tag
+ info(utf8_string const& tag_
, std::basic_string<Char, Traits, Allocator> const& str)
- : tag(tag), value(to_utf8(str)) {}
+ : tag(tag_), value(to_utf8(str)) {}
utf8_string tag;
value_type value;
@@ -75,10 +75,10 @@ namespace boost { namespace spirit
typedef void result_type;
typedef basic_info_walker<Callback> this_type;
- basic_info_walker(Callback& callback, utf8_string const& tag, int depth)
- : callback(callback), tag(tag), depth(depth) {}
+ basic_info_walker(Callback& callback_, utf8_string const& tag_, int depth_)
+ : callback(callback_), tag(tag_), depth(depth_) {}
- void operator()(info::nil) const
+ void operator()(info::nil_) const
{
callback.element(tag, "", depth);
}
@@ -128,8 +128,8 @@ namespace boost { namespace spirit
{
typedef utf8_string string;
- simple_printer(Out& out)
- : out(out) {}
+ simple_printer(Out& out_)
+ : out(out_) {}
void element(string const& tag, string const& value, int /*depth*/) const
{
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/combine_policies.hpp b/3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/combine_policies.hpp
index cfac882..06946b8 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/combine_policies.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/combine_policies.hpp
@@ -21,43 +21,6 @@ namespace boost { namespace spirit { namespace iterator_policies
// single multi_pass_policy as required by the multi_pass template
///////////////////////////////////////////////////////////////////////////
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- // without partial template specialization there is nothing much to do in
- // terms of empty base optimization anyways...
- template <typename T, typename Ownership, typename Checking,
- typename Input, typename Storage>
- struct multi_pass_unique
- : Ownership, Checking, Input, Storage
- {
- multi_pass_unique() {}
- multi_pass_unique(T& x) : Input(x) {}
- multi_pass_unique(T const& x) : Input(x) {}
-
- template <typename MultiPass>
- static void destroy(MultiPass& mp)
- {
- Ownership::destroy(mp);
- Checking::destroy(mp);
- Input::destroy(mp);
- Storage::destroy(mp);
- }
-
- void swap(multi_pass_unique& x)
- {
- this->Ownership::swap(x);
- this->Checking::swap(x);
- this->Input::swap(x);
- this->Storage::swap(x);
- }
-
- template <typename MultiPass>
- inline static void clear_queue(MultiPass& mp)
- {
- Checking::clear_queue(mp);
- Storage::clear_queue(mp);
- }
- };
-#else
///////////////////////////////////////////////////////////////////////////
// select the correct derived classes based on if a policy is empty
template <typename T
@@ -470,7 +433,6 @@ namespace boost { namespace spirit { namespace iterator_policies
inline static bool is_unique(MultiPass const& mp)
{ return Ownership::is_unique(mp); }
};
-#endif
///////////////////////////////////////////////////////////////////////////
// the multi_pass_shared structure is used to combine the shared data items
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/multi_pass.hpp b/3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/multi_pass.hpp
index 088b39a..8f8e6c7 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/multi_pass.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/iterators/detail/multi_pass.hpp
@@ -17,29 +17,6 @@
///////////////////////////////////////////////////////////////////////////////
namespace boost { namespace spirit { namespace detail
{
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- ///////////////////////////////////////////////////////////////////////////
- // Meta-function to generate a std::iterator<> base class for multi_pass.
- // This is used mainly to improve conformance of compilers not supporting
- // PTS and thus relying on inheritance to recognize an iterator.
- //
- // We are using boost::iterator<> because it offers an automatic
- // workaround for broken std::iterator<> implementations.
- ///////////////////////////////////////////////////////////////////////////
- template <typename T, typename InputPolicy>
- struct iterator_base_creator
- {
- typedef typename InputPolicy::BOOST_NESTED_TEMPLATE unique<T> input_type;
-
- typedef boost::iterator <
- std::forward_iterator_tag
- , typename input_type::value_type
- , typename input_type::difference_type
- , typename input_type::pointer
- , typename input_type::reference
- > type;
- };
-#endif
///////////////////////////////////////////////////////////////////////////
// Default implementations of the different policies to be used with a
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/iterators/multi_pass.hpp b/3rdParty/Boost/src/boost/spirit/home/support/iterators/multi_pass.hpp
index 2b355bf..3fc2440 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/iterators/multi_pass.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/iterators/multi_pass.hpp
@@ -26,9 +26,6 @@ namespace boost { namespace spirit
: private boost::base_from_member<
typename Policies::BOOST_NESTED_TEMPLATE shared<T>*>
, public Policies::BOOST_NESTED_TEMPLATE unique<T>
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- , typename iterator_base_creator<T, typename Policies::input_policy>::type
-#endif
{
private:
// unique and shared data types
@@ -41,11 +38,7 @@ namespace boost { namespace spirit
// define the types the standard embedded iterator typedefs are taken
// from
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
- typedef typename iterator_base_creator<Input, T>::type iterator_type;
-#else
typedef typename policies_base_type::input_policy iterator_type;
-#endif
public:
// standard iterator typedefs
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/limits.hpp b/3rdParty/Boost/src/boost/spirit/home/support/limits.hpp
index ff53967..8abb4f1 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/limits.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/limits.hpp
@@ -12,17 +12,6 @@
#include <boost/spirit/include/phoenix_core.hpp>
-#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
-
-#if !defined(SPIRIT_ARGUMENTS_LIMIT)
-# define SPIRIT_ARGUMENTS_LIMIT PHOENIX_LIMIT
-#endif
-#if !defined(SPIRIT_ATTRIBUTES_LIMIT)
-# define SPIRIT_ATTRIBUTES_LIMIT PHOENIX_LIMIT
-#endif
-
-#else
-
#if !defined(SPIRIT_ARGUMENTS_LIMIT)
# define SPIRIT_ARGUMENTS_LIMIT BOOST_PHOENIX_LIMIT
#endif
@@ -31,5 +20,3 @@
#endif
#endif
-
-#endif
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/make_component.hpp b/3rdParty/Boost/src/boost/spirit/home/support/make_component.hpp
index 04a7437..3868475 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/make_component.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/make_component.hpp
@@ -258,7 +258,7 @@ namespace boost { namespace spirit { namespace detail
typedef typename
proto::reverse_fold_tree<
proto::_
- , proto::make<fusion::nil>
+ , proto::make<fusion::nil_>
, make_binary_helper<Grammar>
>::template impl<Expr, State, Data>
reverse_fold_tree;
@@ -362,13 +362,6 @@ namespace boost { namespace spirit { namespace detail
)>::type
lhs_component;
-#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
- typedef typename
- proto::result_of::value<
- typename proto::result_of::child_c<Expr, 1>::type
- >::type
- rhs_component;
-#else
typedef
typename mpl::eval_if_c<
phoenix::is_actor<
@@ -380,7 +373,6 @@ namespace boost { namespace spirit { namespace detail
>
>::type
rhs_component;
-#endif
typedef typename
result_of::make_cons<
@@ -396,24 +388,6 @@ namespace boost { namespace spirit { namespace detail
result<make_component_(elements_type, Data)>::type
result_type;
-#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
- result_type operator()(
- typename impl::expr_param expr
- , typename impl::state_param state
- , typename impl::data_param data
- ) const
- {
- elements_type elements =
- detail::make_cons(
- Grammar()(
- proto::child_c<0>(expr), state, data) // LHS
- , detail::make_cons(
- proto::value(proto::child_c<1>(expr))) // RHS
- );
-
- return make_component_()(elements, data);
- }
-#else
result_type operator()(
typename impl::expr_param expr
, typename impl::state_param state
@@ -466,7 +440,6 @@ namespace boost { namespace spirit { namespace detail
return make_component_()(elements, data);
}
-#endif
};
};
}}}
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/nonterminal/expand_arg.hpp b/3rdParty/Boost/src/boost/spirit/home/support/nonterminal/expand_arg.hpp
index f037acc..f214096 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/nonterminal/expand_arg.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/nonterminal/expand_arg.hpp
@@ -50,8 +50,8 @@ namespace boost { namespace spirit { namespace detail
struct result<F(A0&)>
: result_type<A0> {};
- expand_arg(Context& context)
- : context(context)
+ expand_arg(Context& context_)
+ : context(context_)
{
}
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/terminal.hpp b/3rdParty/Boost/src/boost/spirit/home/support/terminal.hpp
index d52fad2..3ef8c83 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/terminal.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/terminal.hpp
@@ -33,10 +33,10 @@ namespace boost { namespace spirit
typedef Terminal terminal_type;
typedef Args args_type;
- terminal_ex(Args const& args)
- : args(args) {}
- terminal_ex(Args const& args, Terminal const& term)
- : args(args), term(term) {}
+ terminal_ex(Args const& args_)
+ : args(args_) {}
+ terminal_ex(Args const& args_, Terminal const& term_)
+ : args(args_), term(term_) {}
Args args; // Args is guaranteed to be a fusion::vectorN so you
// can use that template for detection and specialization
@@ -50,10 +50,10 @@ namespace boost { namespace spirit
typedef Actor actor_type;
static int const arity = Arity;
- lazy_terminal(Actor const& actor)
- : actor(actor) {}
- lazy_terminal(Actor const& actor, Terminal const& term)
- : actor(actor), term(term) {}
+ lazy_terminal(Actor const& actor_)
+ : actor(actor_) {}
+ lazy_terminal(Actor const& actor_, Terminal const& term_)
+ : actor(actor_), term(term_) {}
Actor actor;
Terminal term;
@@ -104,11 +104,11 @@ namespace boost { namespace spirit
typedef result_type type;
result_type
- operator()(F f, A0 const& _0) const
+ operator()(F f, A0 const& _0_) const
{
typedef typename result_type::proto_child0 child_type;
return result_type::make(child_type(
- phoenix::detail::expression::function_eval<F, A0>::make(f, _0)
+ phoenix::detail::expression::function_eval<F, A0>::make(f, _0_)
, f.proto_base().child0
));
}
@@ -129,11 +129,11 @@ namespace boost { namespace spirit
typedef result_type type;
result_type
- operator()(F f, A0 const& _0, A1 const& _1) const
+ operator()(F f, A0 const& _0_, A1 const& _1_) const
{
typedef typename result_type::proto_child0 child_type;
return result_type::make(child_type(
- phoenix::detail::expression::function_eval<F, A0, A1>::make(f, _0, _1)
+ phoenix::detail::expression::function_eval<F, A0, A1>::make(f, _0_, _1_)
, f.proto_base().child0
));
}
@@ -154,11 +154,11 @@ namespace boost { namespace spirit
typedef result_type type;
result_type
- operator()(F f, A0 const& _0, A1 const& _1, A2 const& _2) const
+ operator()(F f, A0 const& _0_, A1 const& _1_, A2 const& _2_) const
{
typedef typename result_type::proto_child0 child_type;
return result_type::make(child_type(
- phoenix::detail::expression::function_eval<F, A0, A1, A2>::make(f, _0, _1, _2)
+ phoenix::detail::expression::function_eval<F, A0, A1, A2>::make(f, _0_, _1_, _2_)
, f.proto_base().child0
));
}
@@ -368,42 +368,42 @@ namespace boost { namespace spirit
template <typename A0>
typename result<A0>::type
- operator()(A0 const& _0
+ operator()(A0 const& _0_
, typename detail::contains_actor<A0>::is_false = 0) const
{
typedef typename result<A0>::type result_type;
typedef typename result_type::proto_child0 child_type;
return result_type::make(
child_type(
- detail::make_vector(_0)
+ detail::make_vector(_0_)
, this->proto_base().child0)
);
}
template <typename A0, typename A1>
typename result<A0, A1>::type
- operator()(A0 const& _0, A1 const& _1
+ operator()(A0 const& _0_, A1 const& _1_
, typename detail::contains_actor<A0, A1>::is_false = 0) const
{
typedef typename result<A0, A1>::type result_type;
typedef typename result_type::proto_child0 child_type;
return result_type::make(
child_type(
- detail::make_vector(_0, _1)
+ detail::make_vector(_0_, _1_)
, this->proto_base().child0)
);
}
template <typename A0, typename A1, typename A2>
typename result<A0, A1, A2>::type
- operator()(A0 const& _0, A1 const& _1, A2 const& _2
+ operator()(A0 const& _0_, A1 const& _1_, A2 const& _2_
, typename detail::contains_actor<A0, A1, A2>::is_false = 0) const
{
typedef typename result<A0, A1, A2>::type result_type;
typedef typename result_type::proto_child0 child_type;
return result_type::make(
child_type(
- detail::make_vector(_0, _1, _2)
+ detail::make_vector(_0_, _1_, _2_)
, this->proto_base().child0)
);
}
@@ -412,38 +412,38 @@ namespace boost { namespace spirit
// least one arg is a Phoenix actor.
template <typename A0>
typename result<A0>::type
- operator()(A0 const& _0
+ operator()(A0 const& _0_
, typename detail::contains_actor<A0>::is_true = 0) const
{
return make_lazy<this_type
, typename phoenix::as_actor<A0>::type>()(*this
- , phoenix::as_actor<A0>::convert(_0));
+ , phoenix::as_actor<A0>::convert(_0_));
}
template <typename A0, typename A1>
typename result<A0, A1>::type
- operator()(A0 const& _0, A1 const& _1
+ operator()(A0 const& _0_, A1 const& _1_
, typename detail::contains_actor<A0, A1>::is_true = 0) const
{
return make_lazy<this_type
, typename phoenix::as_actor<A0>::type
, typename phoenix::as_actor<A1>::type>()(*this
- , phoenix::as_actor<A0>::convert(_0)
- , phoenix::as_actor<A1>::convert(_1));
+ , phoenix::as_actor<A0>::convert(_0_)
+ , phoenix::as_actor<A1>::convert(_1_));
}
template <typename A0, typename A1, typename A2>
typename result<A0, A1, A2>::type
- operator()(A0 const& _0, A1 const& _1, A2 const& _2
+ operator()(A0 const& _0_, A1 const& _1_, A2 const& _2_
, typename detail::contains_actor<A0, A1, A2>::is_true = 0) const
{
return make_lazy<this_type
, typename phoenix::as_actor<A0>::type
, typename phoenix::as_actor<A1>::type
, typename phoenix::as_actor<A2>::type>()(*this
- , phoenix::as_actor<A0>::convert(_0)
- , phoenix::as_actor<A1>::convert(_1)
- , phoenix::as_actor<A2>::convert(_2));
+ , phoenix::as_actor<A0>::convert(_0_)
+ , phoenix::as_actor<A1>::convert(_1_)
+ , phoenix::as_actor<A2>::convert(_2_));
}
private:
@@ -547,7 +547,6 @@ namespace boost { namespace spirit
}}
-#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
namespace boost { namespace phoenix
{
template <typename Tag>
@@ -558,6 +557,10 @@ namespace boost { namespace phoenix
template <typename Tag>
struct custom_terminal<Tag, typename Tag::is_spirit_tag>
{
+#ifndef BOOST_PHOENIX_NO_SPECIALIZE_CUSTOM_TERMINAL
+ typedef void _is_default_custom_terminal; // fix for #7730
+#endif
+
typedef spirit::terminal<Tag> result_type;
template <typename Context>
@@ -567,7 +570,6 @@ namespace boost { namespace phoenix
}
};
}}
-#endif
// Define a spirit terminal. This macro may be placed in any namespace.
// Common placeholders are placed in the main boost::spirit namespace
diff --git a/3rdParty/Boost/src/boost/spirit/home/support/terminal_expression.hpp b/3rdParty/Boost/src/boost/spirit/home/support/terminal_expression.hpp
index cf6bc5d..0d206bf 100644
--- a/3rdParty/Boost/src/boost/spirit/home/support/terminal_expression.hpp
+++ b/3rdParty/Boost/src/boost/spirit/home/support/terminal_expression.hpp
@@ -9,67 +9,4 @@
#if !defined(BOOST_SPIRIT_TERMINAL_EXPRESSION_MARCH_24_2011_1210AM)
#define BOOST_SPIRIT_TERMINAL_EXPRESSION_MARCH_24_2011_1210AM
-#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
-
-namespace boost { namespace phoenix { namespace detail
-{
- namespace expression
- {
- template <
- typename F, typename A0 = void, typename A1 = void
- , typename A2 = void, typename Dummy = void>
- struct function_eval;
-
- template <typename F, typename A0>
- struct function_eval<F, A0>
- {
- typedef phoenix::actor<
- typename phoenix::as_composite<
- phoenix::detail::function_eval<1>, F, A0
- >::type
- > type;
-
- static type make(F f, A0 const & _0)
- {
- return phoenix::compose<
- phoenix::detail::function_eval<1> >(f, _0);
- }
- };
-
- template <typename F, typename A0, typename A1>
- struct function_eval<F, A0, A1>
- {
- typedef phoenix::actor<
- typename phoenix::as_composite<
- phoenix::detail::function_eval<2>, F, A0, A1
- >::type
- > type;
-
- static type make(F f, A0 const & _0, A1 const & _1)
- {
- return phoenix::compose<
- phoenix::detail::function_eval<2> >(f, _0, _1);
- }
- };
-
- template <typename F, typename A0, typename A1, typename A2>
- struct function_eval<F, A0, A1, A2>
- {
- typedef phoenix::actor<
- typename phoenix::as_composite<
- phoenix::detail::function_eval<3>, F, A0, A1, A2
- >::type
- > type;
-
- static type make(F f, A0 const & _0, A1 const & _1, A2 const & _2)
- {
- return phoenix::compose<
- phoenix::detail::function_eval<3> >(f, _0, _1, _2);
- }
- };
- }
-}}}
-
-#endif // !BOOST_SPIRIT_USE_PHOENIX_V3
-
#endif