Bayeux  3.4.1
Core Foundation library for SuperNEMO
variant_dependency_logic_builder.h
Go to the documentation of this file.
1 /* Author(s) : Francois Mauger <mauger@lpccaen.in2p3.fr>
3  * Creation date : 2016-10-26
4  * Last modified : 2016-10-26
5  *
6  * Copyright (C) 2016 Francois Mauger <mauger@lpccaen.in2p3.fr>
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 3 of the License, or (at
11  * your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful, but
14  * WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor,
21  * Boston, MA 02110-1301, USA.
22  *
23  * Description:
24  *
25  * Build a dependency logic object from an abstract syntax tree build from a formula.
26  *
27  */
28 
29 #ifndef DATATOOLS_CONFIGURATION_VARIANT_DEPENDENCY_LOGIC_BUILDER_H
30 #define DATATOOLS_CONFIGURATION_VARIANT_DEPENDENCY_LOGIC_BUILDER_H
31 
32 // This project (Bayeux/datatools):
35 
36 namespace datatools {
37 
38  namespace configuration {
39 
40  class variant_dependency;
41 
44  {
45  public:
48  variant_dependency & dependency_);
49 
52 
53  protected:
54 
57 
58  private:
59  const parsing::dependency_logic_ast & _ast_;
60  variant_dependency & _dependency_;
61  };
62 
63  } // end of namespace configuration
64 
65 } // end of namespace datatools
66 
67 #endif // DATATOOLS_CONFIGURATION_VARIANT_DEPENDENCY_LOGIC_BUILDER_H
68 
69 // Local Variables: --
70 // mode: c++ --
71 // c-file-style: "gnu" --
72 // tab-width: 2 --
73 // End: --
std::shared_ptr< base_dependency_logic > dependency_logic_ptr_type
Definition: variant_dependency_utils.h:39
Dependency logic builder from an AST.
Definition: variant_dependency_logic_builder.h:43
boost::variant< boost::recursive_wrapper< dependency_logic_ast_op >, dependency_logic_ast_slot > dependency_logic_ast_node
AST node:
Definition: variant_dependency_logic_parsing.h:48
dependency_logic_ptr_type _build_node(const parsing::dependency_logic_ast_node &node_)
Recursive logic build.
Parsing AST:
Definition: variant_dependency_logic_parsing.h:74
The Bayeux/datatools library top-level namespace.
Definition: algo.h:13
dependency_logic_ptr_type build()
Build the dependency logic.
A variant dependency associated a depender variant object o a set of dependee variants....
Definition: variant_dependency.h:89
variant_dependency_logic_builder(const parsing::dependency_logic_ast &ast_, variant_dependency &dependency_)
Constructor.