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 {
54 int lazily_bound_ref_;
71 typedef boost::variant<int, Real, WithinParam, StringOrRegexParam>
ParamType;
78 virtual void Dump(
int level=0)
const = 0;
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;
Three dimensional vector class, using Real precision.
LogicOP GetOP() const
Get logic operation.
virtual void Dump(int level=0) const
void SetRHS(Node *rhs)
set right-hane side node
void SetLHS(Node *lhs)
set left hand-side node
const Node * GetLHS() const
Get left-hand side argument.
const Node * GetRHS() const
Get right-hand side.
virtual void Dump(int level=0) const =0
void SetParent(Node *parent)
const ParamType & GetParm() const
SelNode(const SelNode &rhs)
virtual void Dump(int level=0) const
SelNode(const Prop &sel, CompOP op, const ParamType &value)
const Prop & GetAtomProps() const
bool Match(const String &s) const
const String & str() const
StringOrRegexParam(const String &s)
bool operator==(const StringOrRegexParam &) const
WithinParam(int ref, float radius)
const geom::Vec3 & GetCenter() const
WithinParam(const geom::Vec3 ¢er, float radius)
float GetRadiusSquare() const
bool operator==(const WithinParam &p) const
#define DLLEXPORT_OST_MOL
boost::variant< int, Real, WithinParam, StringOrRegexParam > ParamType