]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/spirit/example/x3/rexpr/rexpr_full/rexpr/ast.hpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / spirit / example / x3 / rexpr / rexpr_full / rexpr / ast.hpp
1 /*=============================================================================
2 Copyright (c) 2001-2015 Joel de Guzman
3
4 Distributed under the Boost Software License, Version 1.0. (See accompanying
5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 =============================================================================*/
7 #if !defined(BOOST_SPIRIT_X3_REPR_AST_HPP)
8 #define BOOST_SPIRIT_X3_REPR_AST_HPP
9
10 #include <boost/spirit/home/x3/support/ast/position_tagged.hpp>
11 #include <boost/spirit/home/x3/support/ast/variant.hpp>
12
13 #include <map>
14
15 namespace rexpr { namespace ast
16 {
17 ///////////////////////////////////////////////////////////////////////////
18 // The AST
19 ///////////////////////////////////////////////////////////////////////////
20 namespace x3 = boost::spirit::x3;
21
22 struct rexpr;
23
24 struct rexpr_value : x3::variant<
25 std::string
26 , x3::forward_ast<rexpr>
27 >
28 {
29 using base_type::base_type;
30 using base_type::operator=;
31 };
32
33 typedef std::map<std::string, rexpr_value> rexpr_map;
34 typedef std::pair<std::string, rexpr_value> rexpr_key_value;
35
36 struct rexpr : x3::position_tagged
37 {
38 rexpr_map entries;
39 };
40 }}
41
42 #endif