23#ifndef BAGEL_BAGLIB_EXPRESSION_H
24#define BAGEL_BAGLIB_EXPRESSION_H
26#include "bagel/spacebar/baglib/parse_object.h"
27#include "bagel/spacebar/baglib/var.h"
28#include "bagel/spacebar/boflib/list.h"
43 OP_GREATER_THAN_EQUAL,
71 static void initialize();
72 static void shutdown();
77 bool evaluate(
bool negFl =
false,
CBagVar &result = *_tempVar);
86 bool negEvaluate(
CBagVar &result = *_tempVar);
88 void setNegative(
bool b =
true) {
91 bool isNegative()
const {
95 CBagVar *getVariable(
int itemPos);
96 OPERATION getOperation(
int itemPos);
98 ParseCodes setInfo(CBagIfstream &istr)
override;
99 ErrorCode getOperatorFromStream(CBagIfstream &istr, OPERATION &oper);
101 CBagExpression *getPrevExpression()
const {
102 return _prevExpression;
104 void setPrevExpression(CBagExpression *expr) {
105 _prevExpression = expr;
108 virtual bool onAssign(CBagVar *leftHandOper, CBagVar *rightHandOper, CBagVar &resultOper);
109 virtual bool onEqual(CBagVar *leftHandOper, CBagVar *rightHandOper, CBagVar &resultOper);
110 virtual bool onNotEqual(CBagVar *leftHandOper, CBagVar *rightHandOper, CBagVar &resultOper);
111 virtual bool onLessThan(CBagVar *leftHandOper, CBagVar *rightHandOper, CBagVar &resultOper);
112 virtual bool onGreaterThan(CBagVar *leftHandOper, CBagVar *rightHandOper, CBagVar &resultOper);
113 virtual bool onLessThanEqual(CBagVar *leftHandOper, CBagVar *rightHandOper, CBagVar &resultOper);
114 virtual bool onGreaterThanEqual(CBagVar *leftHandOper, CBagVar *rightHandOper, CBagVar &resultOper);
115 virtual bool onPlusAssign(CBagVar *leftHandOper, CBagVar *rightHandOper, CBagVar &resultOper);
116 virtual bool onMinusAssign(CBagVar *leftHandOper, CBagVar *rightHandOper, CBagVar &resultOper);
117 virtual bool onContains(CBagVar *leftHandOper, CBagVar *rightHandOper, CBagVar &resultOper);
118 virtual bool onHas(CBagVar *leftHandOper, CBagVar *rightHandOper, CBagVar &resultOper);
119 virtual bool onCurrSDev(CBagVar *leftHandOper, CBagVar *rightHandOper, CBagVar &resultOper);
120 virtual bool onPlus(CBagVar *leftHandOper, CBagVar *rightHandOper, CBagVar &resultOper);
121 virtual bool onMinus(CBagVar *leftHandOper, CBagVar *rightHandOper, CBagVar &resultOper);
122 virtual bool onMultiply(CBagVar *leftHandOper, CBagVar *rightHandOper, CBagVar &resultOper);
123 virtual bool onDivide(CBagVar *leftHandOper, CBagVar *rightHandOper, CBagVar &resultOper);
124 virtual bool onMod(CBagVar *leftHandOper, CBagVar *rightHandOper, CBagVar &resultOper);
125 virtual bool onAnd(CBagVar *leftHandOper, CBagVar *rightHandOper, CBagVar &resultOper);
126 virtual bool onOr(CBagVar *leftHandOper, CBagVar *rightHandOper, CBagVar &resultOper);
127 virtual bool onStatus(CBagVar *leftHandOper, CBagVar *rightHandOper, CBagVar &resultOper);
Definition: expression.h:33
bool evalLeftToRight(bool negFl=false, CBagVar &result= *_tempVar)
Definition: parse_object.h:48