symbolic
predicate.h
1 
10 #ifndef SYMBOLIC_PREDICATE_H_
11 #define SYMBOLIC_PREDICATE_H_
12 
13 #include "symbolic/action.h"
14 
15 namespace VAL {
16 
17 class pred_decl;
18 
19 } // namespace VAL
20 
21 namespace symbolic {
22 
23 class Predicate : public Action {
24  public:
25  Predicate(const Pddl& pddl, const VAL::pred_decl* symbol);
26 
27  const VAL::pred_decl* symbol() const { return symbol_; }
28 
34  const std::string& name() const { return name_; }
35 
41  const std::vector<Object>& parameters() const { return parameters_; }
42 
48  const ParameterGenerator& parameter_generator() const { return param_gen_; }
49 
56  std::string to_string() const;
57 
63  std::string to_string(const std::vector<Object>& arguments) const;
64 
65  friend std::ostream& operator<<(std::ostream& os, const Predicate& pred);
66 
67  private:
68  const VAL::pred_decl* symbol_ = nullptr;
69  std::string name_;
70  std::vector<Object> parameters_;
71  ParameterGenerator param_gen_;
72 };
73 
74 } // namespace symbolic
75 
76 #endif // SYMBOLIC_PREDICATE_H_
symbolic::Predicate::name
const std::string & name() const
Definition: predicate.h:34
symbolic::Predicate
Definition: predicate.h:23
VAL
Definition: pddl.cc:27
symbolic
Definition: action.cc:329
symbolic::Predicate::parameter_generator
const ParameterGenerator & parameter_generator() const
Definition: predicate.h:48
symbolic::Predicate::parameters
const std::vector< Object > & parameters() const
Definition: predicate.h:41
symbolic::Pddl
Definition: pddl.h:40
symbolic::ParameterGenerator
Definition: parameter_generator.h:21
symbolic::Action
Definition: action.h:36
symbolic::Predicate::to_string
std::string to_string() const
Definition: predicate.cc:26