1 #ifndef CYMOCA_AST_CONDITION_CONDITION_H_
2 #define CYMOCA_AST_CONDITION_CONDITION_H_
6 namespace cymoca::ast::condition {
8 #define RELATION_MACRO(NAME) \
9 class NAME : public TBinary<expression::Base, expression::Base, Base> { \
11 using TBinary::TBinary; \
12 std::unique_ptr<INode> clone() const override { \
13 return cloneBinary<NAME>(); \
47 #define BINARY_COND_MACRO(NAME) \
48 class NAME : public TBinary<Base, Base, Base> { \
51 using TBinary::TBinary; \
52 std::unique_ptr<INode> clone() const override { \
53 return cloneBinary<NAME>(); \
67 #define UNARY_COND_MACRO(NAME) \
68 class NAME : public TUnary<Base, Base> { \
71 using TUnary::TUnary; \
72 std::unique_ptr<INode> clone() const override { \
73 return cloneUnary<NAME>(); \
91 explicit Boolean(
bool value) : m_value(value) {}
95 std::unique_ptr<INode>
clone()
const override {
96 return std::make_unique<Boolean>(m_value);
#define RELATION_MACRO(NAME)
#define BINARY_COND_MACRO(NAME)
std::unique_ptr< INode > clone() const override
void setValue(bool value)
#define UNARY_COND_MACRO(NAME)
std::vector< INode * > getChildren() override