Inter4ql  5.2
Expression.h
1 #ifndef __EXPRESSSION_H__
2 #define __EXPRESSSION_H__
3 
4 #include "Fact.h"
5 #include "Relation.h"
6 
7 namespace Inter4ql {
8  class ConstraintEntry;
9 
10  class Expression {
11  public:
12  Expression(expression_type::type type, Expression* lexpr, Expression* rexpr, Fact* term);
13  Expression(expression_type::type type, Expression* lexpr, Expression* rexpr, Expression* elseexpr = nullptr);
15  ~Expression();
16  expression_type::type get_type();
17  Expression* get_left_expression();
18  Expression* get_right_expression();
19  Expression* get_else_expression();
20  Fact* get_term();
21  std::string get_action_name();
22  ConstraintEntry* get_quantified_entry();
23  void set_module(std::string s);
24  std::string get_module();
25  void set_delete_term(bool value);
26  bool is_simple_relation();
27  void set_simple_relation_flag(bool value);
28  private:
29  expression_type::type my_type;
30  Expression* my_lexpr;
31  Expression* my_rexpr;
32  Expression* my_elseexpr;
33  Fact* my_term;
34  ConstraintEntry* my_quantified_entry;
35  std::string module;
36  bool should_delete_term;
37  bool simple_relation_flag;
38  };
39 }
40 
41 #endif
class that implements a fact
Definition: Fact.h:14
Definition: Expression.h:10
Definition: Application.cc:37
Definition: Constraints.h:29