blob: f8e20808ac861fbba60c15ebedc6fb97fea73736 [file] [log] [blame]
/*=============================================================================
Copyright (c) 2001-2007 Joel de Guzman
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)
==============================================================================*/
#if !defined(BOOST_SPIRIT_META_GRAMMAR_JAN_29_2007_0937AM)
#define BOOST_SPIRIT_META_GRAMMAR_JAN_29_2007_0937AM
#include <boost/spirit/home/support/meta_grammar/grammar.hpp>
#include <boost/spirit/home/support/meta_grammar/basic_transforms.hpp>
#include <boost/spirit/home/qi/domain.hpp>
#include <boost/mpl/bool.hpp>
#include <boost/mpl/placeholders.hpp>
namespace boost { namespace spirit { namespace qi
{
// Check if Expr is a valid RD expression
template <typename Expr, typename Enable = void>
struct is_valid_expr : mpl::false_ {};
// Return a suitable transform for the given Expr
template <typename Expr, typename Enable = void>
struct expr_transform;
struct main_meta_grammar
: meta_grammar::if_transform<
is_valid_expr<proto::_>()
, expr_transform<proto::_>
>
{
};
}}}
namespace boost { namespace spirit { namespace meta_grammar
{
///////////////////////////////////////////////////////////////////////////
// The spirit qi domain meta-grammar
///////////////////////////////////////////////////////////////////////////
template <>
struct grammar<qi::domain>
{
typedef qi::main_meta_grammar type;
};
}}}
#endif