• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
43