3#ifndef __PERCEMON_AST_PRIMITIVES_HPP__
4#define __PERCEMON_AST_PRIMITIVES_HPP__
12namespace percemon::ast::primitives {
16enum class ComparisonOp { GT, GE, LT, LE, EQ, NE };
24 Const(
bool value_) : value{value_} {};
26 inline bool operator==(
const Const& other)
const {
27 return this->value == other.value;
30 inline bool operator!=(
const Const& other)
const {
return !(*
this == other); };
48 Var_f(std::string name_) : name{std::move(name_)} {}
50 inline bool operator==(
const Var_f& other)
const {
return name == other.name; };
52 inline bool operator!=(
const Var_f& other)
const {
return !(*
this == other); };
61 Var_x(std::string name_) : name{std::move(name_)} {}
63 inline bool operator==(
const Var_x& other)
const {
return name == other.name; };
65 inline bool operator!=(
const Var_x& other)
const {
return !(*
this == other); };
74 Var_id(std::string name_) : name{std::move(name_)} {}
84enum struct CRT { LM, RM, TM, BM, CT };
Definition: primitives.hpp:40
Definition: primitives.hpp:36
Definition: primitives.hpp:21
Definition: primitives.hpp:79
Definition: primitives.hpp:80
Definition: primitives.hpp:45
Definition: primitives.hpp:71
Definition: primitives.hpp:58