ddc
Public Member Functions | Public Attributes | List of all members
CQBinOp Class Reference

binary operation (abstract) More...

#include <Query.h>

Inheritance diagram for CQBinOp:
Inheritance graph
[legend]
Collaboration diagram for CQBinOp:
Collaboration graph
[legend]

Public Member Functions

 CQBinOp (CQuery *dtr1=NULL, CQuery *dtr2=NULL, const string &opName="", bool negated=false)
 
virtual ~CQBinOp ()
 destructor deletes daughters More...
 
virtual BYTE GetMatchId () const
 get match id: dtr2 > dtr1 More...
 
virtual BYTE SetMatchId (BYTE matchId)
 override propagates matchId to daughters More...
 
virtual void ClearNode ()
 deletes associated daughter nodes (avoiding double-free) More...
 
virtual void Clear (bool deep=true)
 clear query contents. if deep is true, propagates operation to daughters More...
 
virtual bool Compile (CQueryCompiler *compiler)
 compile the query More...
 
virtual ddcObjectList Children () const
 
virtual void DisownChildren ()
 
virtual string toString ()
 DEBUG: return a canonical string form for this query (default just returns m_Label) More...
 
virtual string jsonClass ()
 
virtual string jsonData ()
 
- Public Member Functions inherited from CQNegatable
 CQNegatable (const string &label=string(""), bool negated=false)
 Default constructor. More...
 
 CQNegatable (bool negated)
 
virtual ~CQNegatable ()
 
virtual bool Negate (void)
 toggle negation flag; returns new value More...
 
virtual bool Negated ()
 override returns current value of m_Negated More...
 
virtual string NegString (const std::string &s)
 string creation utility More...
 
- Public Member Functions inherited from CQuery
 CQuery (const string &label=string(""))
 Default constructor. More...
 
virtual ~CQuery (void)
 
virtual bool CheckSatisfiable (CQueryCompiler *compiler)
 
virtual bool CompileOptions (CQueryCompiler *compiler=NULL)
 
virtual void Evaluate ()
 
virtual bool HasMatchId () const
 Returns true iff this query uses a nontrival match-id operator; default checks (this->GetMatchId() != 0) More...
 
virtual bool RootOK ()
 Is this query an admissible root of a compiled parse tree (default returns !this->Negated()) More...
 
virtual string optionsToString ()
 DEBUG: return canonical option string More...
 
virtual string optionsToJson ()
 return json format option string More...
 
virtual string toJson ()
 
void SetCompiler (CQueryCompiler *compiler)
 
virtual void ClearOptions ()
 deletes m_Options if non-NULL More...
 
virtual void SetOptions (CQueryOptions *opts)
 set global query options ; deletes any pre-existing m_Options More...
 
- Public Member Functions inherited from ddcObject
 ddcObject ()
 Default constructor. More...
 
virtual ~ddcObject ()
 virtual destructor does nothing More...
 
template<typename Visit >
ddcObjectTraverse (Visit &visit)
 
template<typename Visit >
ddcObjectTraverse (Visit &visit) const
 
template<typename Visit >
ddcObjectTraverseR (Visit &visit)
 
template<typename Visit >
ddcObjectTraverseR (Visit &visit) const
 
virtual ddcObjectList Descendants () const
 

Public Attributes

CQuerym_dtr1
 first argument More...
 
CQuerym_dtr2
 second argument More...
 
string m_OpName
 convenience: operation name More...
 
- Public Attributes inherited from CQNegatable
bool m_Negated
 whether this query is negated More...
 
- Public Attributes inherited from CQuery
string m_Label
 arbitrary name for this query node (e.g. string from which it was parsed) More...
 
CQueryCompilerm_Compiler
 associated query compiler (only set on Compile()) More...
 
CQueryNodem_Node
 underlying CQueryNode (DDC-v1.x API) More...
 
CQueryOptionsm_Options
 root-level options (root queries only) More...
 
- Public Attributes inherited from ddcObject
void * m_User
 user data associated with this object (for use e.g. by perl wrappers) More...
 

Detailed Description

binary operation (abstract)

Constructor & Destructor Documentation

◆ CQBinOp()

CQBinOp::CQBinOp ( CQuery dtr1 = NULL,
CQuery dtr2 = NULL,
const string &  opName = "",
bool  negated = false 
)
inline

◆ ~CQBinOp()

CQBinOp::~CQBinOp ( )
virtual

destructor deletes daughters

References CQuery::Clear().

Here is the call graph for this function:

Member Function Documentation

◆ GetMatchId()

BYTE CQBinOp::GetMatchId ( ) const
virtual

get match id: dtr2 > dtr1

Reimplemented from CQuery.

Reimplemented in CQWith.

Referenced by CQWith::GetMatchId().

Here is the caller graph for this function:

◆ SetMatchId()

BYTE CQBinOp::SetMatchId ( BYTE  matchId)
virtual

override propagates matchId to daughters

Reimplemented from CQuery.

Reimplemented in CQWith.

◆ ClearNode()

void CQBinOp::ClearNode ( )
virtual

deletes associated daughter nodes (avoiding double-free)

Reimplemented from CQuery.

References CQuery::ClearNode(), CQuery::m_Node, CQueryBinaryOperationNode::m_pChild1, and CQueryBinaryOperationNode::m_pChild2.

Here is the call graph for this function:

◆ Clear()

void CQBinOp::Clear ( bool  deep = true)
virtual

clear query contents. if deep is true, propagates operation to daughters

Reimplemented from CQuery.

References CQuery::ClearNode(), and CQuery::ClearOptions().

Here is the call graph for this function:

◆ Compile()

bool CQBinOp::Compile ( CQueryCompiler compiler)
virtual

compile the query

Reimplemented from CQNegatable.

Reimplemented in CQWithor, CQWithout, CQWith, CQOr, and CQAnd.

References errParseError, CQuery::SetCompiler(), and CQuery::toString().

Referenced by CQAnd::Compile(), CQOr::Compile(), CQWith::Compile(), CQWithout::Compile(), and CQWithor::Compile().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Children()

ddcObjectList CQBinOp::Children ( ) const
virtual

get a list of direct non-NULL CQuery direct daughters of this node

  • default just returns an empty list

Reimplemented from CQuery.

References CQuery::Children().

Here is the call graph for this function:

◆ DisownChildren()

void CQBinOp::DisownChildren ( )
virtual

"disown" any direct child nodes, preventing their destruction if the current object is deleted

  • default implementation does nothing

Reimplemented from CQuery.

References CQuery::DisownChildren().

Here is the call graph for this function:

◆ toString()

string CQBinOp::toString ( void  )
virtual

DEBUG: return a canonical string form for this query (default just returns m_Label)

Reimplemented from CQuery.

Reimplemented in CQWith.

Referenced by CQWith::toString().

Here is the caller graph for this function:

◆ jsonClass()

virtual string CQBinOp::jsonClass ( void  )
inlinevirtual

class-name for json strinfication

  • default implementation returns C++ class name

Reimplemented from CQNegatable.

Reimplemented in CQWithor, CQWithout, CQWith, CQOr, CQAndImplicit, and CQAnd.

References CQuery::jsonData().

Here is the call graph for this function:

◆ jsonData()

string CQBinOp::jsonData ( void  )
virtual

instance data for json stringification

  • default implementation returns "NODATA":1, for strict syntax compliance

Reimplemented from CQNegatable.

Reimplemented in CQWith.

References CQNegatable::jsonData(), and jsonStr().

Referenced by CQWith::jsonData().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ m_dtr1

CQuery* CQBinOp::m_dtr1

first argument

◆ m_dtr2

CQuery* CQBinOp::m_dtr2

second argument

◆ m_OpName

string CQBinOp::m_OpName

convenience: operation name


The documentation for this class was generated from the following files: