19 #ifndef OST_QUERY_AST_HH
20 #define OST_QUERY_AST_HH
22 #include <boost/regex.hpp>
25 #include <boost/variant.hpp>
32 namespace ost {
namespace mol {
namespace impl {
44 float GetRadiusSquare()
const;
50 bool HasValidRef()
const;
54 int lazily_bound_ref_;
71 typedef boost::variant<int, Real, WithinParam, StringOrRegexParam>
ParamType;
78 virtual void Dump(
int level=0)
const = 0;
82 void SetParent(
Node* parent);
96 void SetRHS(
Node* rhs);
99 void SetLHS(
Node* lhs);
102 const Node* GetRHS()
const;
105 const Node* GetLHS()
const;
113 virtual void Dump(
int level=0)
const;
125 : sel_(sel), op_(op), param_(value)
129 : sel_(rhs.sel_), op_(rhs.op_),param_(rhs.param_)
132 virtual void Dump(
int level=0)
const;
bool DLLEXPORT_OST_SEQ Match(const ConstSequenceHandle &s1, const ConstSequenceHandle &s2)
const String & str() const
SelNode(const SelNode &rhs)
bool DLLEXPORT_OST_GEOM operator==(const Line2 &l1, const Line2 &l2)
const ParamType & GetParm() const
SelNode(const Prop &sel, CompOP op, const ParamType &value)
boost::variant< int, Real, WithinParam, StringOrRegexParam > ParamType
Three dimensional vector class, using Real precision.
#define DLLEXPORT_OST_MOL
const Prop & GetAtomProps() const