kexi

KexiDB::BinaryExpr Class Reference

#include <expression.h>

Inheritance diagram for KexiDB::BinaryExpr:
KexiDB::BaseExpr

Public Member Functions

 BinaryExpr (int aClass, BaseExpr *left_expr, int token, BaseExpr *right_expr)
 BinaryExpr (const BinaryExpr &expr)
virtual BinaryExpr * copy () const
virtual Field::Type type ()
virtual TQString debugString ()
virtual TQString toString (QuerySchemaParameterValueListIterator *params=0)
virtual void getQueryParameters (QuerySchemaParameterList &params)
BaseExpr * left () const
BaseExpr * right () const
virtual bool validate (ParseInfo &parseInfo)
virtual TQString tokenToString ()
Public Member Functions inherited from KexiDB::BaseExpr
 BaseExpr (int token)
int token () const
BaseExpr * parent () const
virtual void setParent (BaseExpr *p)
void debug ()
TQString tokenToDebugString ()
int exprClass () const
NArgExpr * toNArg ()
UnaryExpr * toUnary ()
BinaryExpr * toBinary ()
ConstExpr * toConst ()
VariableExpr * toVariable ()
FunctionExpr * toFunction ()
QueryParameterExpr * toQueryParameter ()

Public Attributes

BaseExpr * m_larg
BaseExpr * m_rarg

Additional Inherited Members

Public Types inherited from KexiDB::BaseExpr
typedef TQPtrList< BaseExpr > List
typedef TQPtrListIterator< BaseExpr > ListIterator
Static Public Member Functions inherited from KexiDB::BaseExpr
static TQString tokenToDebugString (int token)
Protected Attributes inherited from KexiDB::BaseExpr
int m_cl
BaseExpr * m_par
int m_token

Detailed Description

A base class for binary operation

  • arithmetic operations: + - / * % << >> & | ||
  • relational operations: = (or ==) < > <= >= <> (or !=) LIKE IN 'SIMILAR TO' 'NOT SIMILAR TO'
  • logical operations: OR (or ||) AND (or &&) XOR
  • SpecialBinary "pseudo operators": e.g. "f1 f2" : token == 0 e.g. "f1 AS f2" : token == AS

Definition at line 175 of file expression.h.

Constructor & Destructor Documentation

◆ BinaryExpr() [1/2]

BinaryExpr::BinaryExpr ( int aClass,
BaseExpr * left_expr,
int token,
BaseExpr * right_expr )

Definition at line 328 of file expression.cpp.

◆ BinaryExpr() [2/2]

BinaryExpr::BinaryExpr ( const BinaryExpr & expr)

Definition at line 340 of file expression.cpp.

◆ ~BinaryExpr()

BinaryExpr::~BinaryExpr ( )
virtual

Definition at line 347 of file expression.cpp.

Member Function Documentation

◆ copy()

BinaryExpr * BinaryExpr::copy ( ) const
virtual
Returns
a deep copy of this object.

Implements KexiDB::BaseExpr.

Definition at line 353 of file expression.cpp.

◆ debugString()

TQString BinaryExpr::debugString ( )
virtual

Reimplemented from KexiDB::BaseExpr.

Definition at line 411 of file expression.cpp.

◆ getQueryParameters()

void BinaryExpr::getQueryParameters ( QuerySchemaParameterList & params)
virtual

Collects query parameters (messages and types) reculsively and saves them to params. The leaf nodes are objects of QueryParameterExpr class.

Implements KexiDB::BaseExpr.

Definition at line 458 of file expression.cpp.

◆ left()

BaseExpr * KexiDB::BinaryExpr::left ( ) const
inline

Definition at line 187 of file expression.h.

◆ right()

BaseExpr * KexiDB::BinaryExpr::right ( ) const
inline

Definition at line 188 of file expression.h.

◆ tokenToString()

TQString BinaryExpr::tokenToString ( )
virtual
Returns
string for token, like "<=" or ">"

Reimplemented from KexiDB::BaseExpr.

Definition at line 421 of file expression.cpp.

◆ toString()

TQString BinaryExpr::toString ( QuerySchemaParameterValueListIterator * params = 0)
virtual
Returns
string as a representation of this expression element by running recursive calls. param, if not 0, points to a list item containing value of a query parameter (used in QueryParameterExpr).

Implements KexiDB::BaseExpr.

Definition at line 451 of file expression.cpp.

◆ type()

Field::Type BinaryExpr::type ( )
virtual

Reimplemented from KexiDB::BaseExpr.

Definition at line 381 of file expression.cpp.

◆ validate()

bool BinaryExpr::validate ( ParseInfo & parseInfo)
virtual
Todo
compare types..., BITWISE_SHIFT_RIGHT requires integers, etc...

Reimplemented from KexiDB::BaseExpr.

Definition at line 358 of file expression.cpp.

Member Data Documentation

◆ m_larg

BaseExpr* KexiDB::BinaryExpr::m_larg

Definition at line 192 of file expression.h.

◆ m_rarg

BaseExpr* KexiDB::BinaryExpr::m_rarg

Definition at line 193 of file expression.h.


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