123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- // Copyright (c) 2001-2011 Hartmut Kaiser
- // Copyright (c) 2011 Thomas Heller
- //
- // 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)
- #ifndef BOOST_SPIRIT_LEX_LEXER_SUPPORT_FUNCTIONS_EXPRESSION_HPP
- #define BOOST_SPIRIT_LEX_LEXER_SUPPORT_FUNCTIONS_EXPRESSION_HPP
- #if defined(_MSC_VER)
- #pragma once
- #endif
- #include <boost/phoenix/core/expression.hpp>
- #include <boost/phoenix/core/v2_eval.hpp>
- #include <boost/proto/proto_fwd.hpp> // for transform placeholders
- namespace boost { namespace spirit { namespace lex
- {
- template <typename> struct less_type;
- struct more_type;
- template <typename, typename> struct lookahead_type;
- }}}
- ///////////////////////////////////////////////////////////////////////////////
- BOOST_PHOENIX_DEFINE_EXPRESSION(
- (boost)(spirit)(lex)(less)
- , (boost::phoenix::meta_grammar)
- )
- BOOST_PHOENIX_DEFINE_EXPRESSION(
- (boost)(spirit)(lex)(lookahead)
- , (boost::phoenix::meta_grammar)
- (boost::phoenix::meta_grammar)
- )
- namespace boost { namespace phoenix
- {
- namespace result_of
- {
- template <>
- struct is_nullary<custom_terminal<boost::spirit::lex::more_type> >
- : mpl::false_
- {};
- }
-
- template <typename Dummy>
- struct is_custom_terminal<boost::spirit::lex::more_type, Dummy> : mpl::true_ {};
-
- template <typename Dummy>
- struct custom_terminal<boost::spirit::lex::more_type, Dummy>
- : proto::call<
- v2_eval(
- proto::make<boost::spirit::lex::more_type()>
- , proto::call<functional::env(proto::_state)>
- )
- >
- {};
- template <typename Dummy>
- struct is_nullary::when<spirit::lex::rule::less, Dummy>
- : proto::make<mpl::false_()>
- {};
- template <typename Dummy>
- struct default_actions::when<spirit::lex::rule::less, Dummy>
- : proto::call<
- v2_eval(
- proto::make<
- spirit::lex::less_type<proto::_child0>(proto::_child0)
- >
- , _env
- )
- >
- {};
- template <typename Dummy>
- struct is_nullary::when<spirit::lex::rule::lookahead, Dummy>
- : proto::make<mpl::false_()>
- {};
- template <typename Dummy>
- struct default_actions::when<spirit::lex::rule::lookahead, Dummy>
- : proto::call<
- v2_eval(
- proto::make<
- spirit::lex::lookahead_type<
- proto::_child0
- , proto::_child1
- >(
- proto::_child0
- , proto::_child1
- )
- >
- , _env
- )
- >
- {};
- }}
- #endif
|