1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
// 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)
#if !defined(SPIRIT_LEX_SUPPORT_FUNCTIONS_EXPRESSION_MAR_22_2011_0711PM)
#define SPIRIT_LEX_SUPPORT_FUNCTIONS_EXPRESSION_MAR_22_2011_0711PM
#if defined(_MSC_VER)
#pragma once
#endif
#include <boost/spirit/include/phoenix_core.hpp>
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
|