AURobotServers
4
|
#include <uvarcalc.h>
Public Member Functions | |
bool | evaluateD () |
bool | evaluateOperator (const char *line, const char *start, const char **end, char *errorTxt, const int errorTextCnt, bool syntaxCheck) |
decode an operator More... | |
bool | evaluateV () |
double | getValue () |
UVariable * | getVar () const |
void | insertOperator (UVarCalcOper *oper) |
void | inverseValue () |
void | negateValue () |
void | print (const char *preStr) |
void | remVar () |
void | setValue (double value, const char *line, const char *start) |
void | setValue (UVariable *val, bool asLocal, const char *line, const char *start) |
UVarCalcOper () | |
~UVarCalcOper () | |
Public Attributes | |
UVarCalcOper * | left |
int | num |
value as UVariable structure More... | |
UVarCalcOper * | parent |
UVarCalcOper * | right |
Protected Member Functions | |
void | evaluateMinusD () |
void | evaluateMinusV () |
const char * | getOperStr () |
bool | isRem (const char *r) |
Protected Attributes | |
bool | evalud |
int | oper |
const char * | operLine |
int | operPos |
int | priority |
double | value |
int | valueType |
UVariable * | var |
bool | varLocal |
A waiting operator
UVarCalcOper::UVarCalcOper | ( | ) |
bool UVarCalcOper::evaluateD | ( | ) |
evaluate using double values
References evaluateD(), evaluateMinusD(), evalud, left, oper, operLine, operPos, right, and value.
Referenced by evaluateD(), UVarCalc::evaluateD(), evaluateMinusD(), UVarCalc::evaluateParametersD(), UVarCalc::evaluateToStringD(), and UVarCalc::evaluateUnaryValD().
|
protected |
convert all minus operators to + by changing sign of the first right value or convert division to multiplication by a 1/value operation
References evaluateD(), evaluateMinusD(), evalud, left, oper, priority, right, and value.
Referenced by evaluateD(), evaluateMinusD(), and remVar().
|
protected |
convert all minus operators to + by changing sign of the first right value or convert division to multiplication by a 1/value operation (no good for vectors)
References evaluateMinusV(), evaluateV(), evalud, inverseValue(), left, negateValue(), oper, priority, and right.
Referenced by evaluateMinusV(), evaluateV(), and remVar().
bool UVarCalcOper::evaluateOperator | ( | const char * | line, |
const char * | start, | ||
const char ** | end, | ||
char * | errorTxt, | ||
const int | errorTextCnt, | ||
bool | syntaxCheck | ||
) |
decode an operator
line | is the original line to decode |
start | is the position where to search for the operator |
end | returns the next unused character after the operator. |
References isRem(), oper, operLine, and priority.
Referenced by UVarCalc::evaluateD(), and UVarCalc::evaluateV().
bool UVarCalcOper::evaluateV | ( | ) |
evaluate using var values
References evaluateMinusV(), evaluateV(), evalud, left, oper, operLine, operPos, right, UVariable::setBinaryAnd(), UVariable::setBinaryOr(), UVariable::setBinaryShiftLeft(), UVariable::setBinaryShiftRight(), UVariable::setBinaryXor(), UVariable::setDiff(), UVariable::setDivide(), UVariable::setEq(), UVariable::setGe(), UVariable::setGt(), UVariable::setLe(), UVariable::setLogicalAnd(), UVariable::setLogicalOr(), UVariable::setLt(), UVariable::setModulo(), UVariable::setNe(), UVariable::setPlus(), UVariable::setPow(), UVariable::setProduct(), value, var, and varLocal.
Referenced by evaluateMinusV(), UVarCalc::evaluateParametersV(), UVarCalc::evaluateToStringV(), UVarCalc::evaluateUnaryValV(), evaluateV(), and UVarCalc::evaluateV().
|
protected |
|
inline |
|
inline |
void UVarCalcOper::insertOperator | ( | UVarCalcOper * | oper | ) |
insert an new operator relative to this
References insertOperator(), left, oper, parent, priority, and right.
Referenced by UVarCalc::evaluateD(), UVarCalc::evaluateV(), and insertOperator().
void UVarCalcOper::inverseValue | ( | ) |
Do an element-wise inverse of the variable
References UVariable::inverse(), var, and varLocal.
Referenced by evaluateMinusV(), and remVar().
|
protected |
Is the string at this position a remark? A remark starts at a '#', a ';' or a '//'
Referenced by evaluateOperator(), and remVar().
void UVarCalcOper::negateValue | ( | ) |
Do an element-wise negation of the variable
References UVariable::negate(), var, and varLocal.
Referenced by evaluateMinusV(), and remVar().
void UVarCalcOper::print | ( | const char * | preStr | ) |
|
inline |
remove var structure
References evaluateMinusD(), evaluateMinusV(), getOperStr(), inverseValue(), isRem(), negateValue(), var, and varLocal.
Referenced by UVarCalc::evaluateV().
void UVarCalcOper::setValue | ( | double | value, |
const char * | line, | ||
const char * | start | ||
) |
set base values
References evalud, operLine, operPos, priority, and value.
Referenced by UVarCalc::evaluateD(), and UVarCalc::evaluateV().
void UVarCalcOper::setValue | ( | UVariable * | val, |
bool | asLocal, | ||
const char * | line, | ||
const char * | start | ||
) |
|
protected |
Evaluated
Referenced by evaluateD(), evaluateMinusD(), evaluateMinusV(), evaluateV(), print(), setValue(), and UVarCalcOper().
UVarCalcOper* UVarCalcOper::left |
operator string left side value
Referenced by evaluateD(), evaluateMinusD(), evaluateMinusV(), evaluateV(), insertOperator(), print(), and UVarCalcOper().
int UVarCalcOper::num |
value as UVariable structure
Referenced by UVarCalc::evaluateV().
|
protected |
operator
Referenced by evaluateD(), evaluateMinusD(), evaluateMinusV(), evaluateOperator(), evaluateV(), getOperStr(), insertOperator(), print(), and UVarCalcOper().
|
protected |
operation line
Referenced by evaluateD(), evaluateOperator(), evaluateV(), setValue(), and UVarCalcOper().
|
protected |
operator position in string
Referenced by evaluateD(), evaluateV(), setValue(), and UVarCalcOper().
UVarCalcOper* UVarCalcOper::parent |
parent operator
Referenced by UVarCalc::evaluateD(), UVarCalc::evaluateV(), and insertOperator().
|
protected |
Priority 1 boolean, 2 addition, 3 mult, 4 exp
Referenced by evaluateMinusD(), evaluateMinusV(), evaluateOperator(), insertOperator(), setValue(), and UVarCalcOper().
UVarCalcOper* UVarCalcOper::right |
right side value
Referenced by evaluateD(), UVarCalc::evaluateD(), evaluateMinusD(), evaluateMinusV(), evaluateV(), UVarCalc::evaluateV(), insertOperator(), print(), and UVarCalcOper().
|
protected |
Value after evaluation
Referenced by evaluateD(), evaluateMinusD(), UVarCalc::evaluateToStringD(), UVarCalc::evaluateToStringV(), UVarCalc::evaluateUnaryValV(), evaluateV(), getValue(), UVarCalc::getValueAnyV(), UVarCalc::getVariableAny(), print(), and setValue().
|
protected |
Value type 1=bool, 2=int, 3=double, 4=variable
|
protected |
Value as variable reference
Referenced by evaluateV(), getVar(), inverseValue(), negateValue(), remVar(), setValue(), UVarCalcOper(), and ~UVarCalcOper().
|
protected |
Is the variable locally created - and thus should be deleted
Referenced by evaluateV(), inverseValue(), negateValue(), remVar(), setValue(), UVarCalcOper(), and ~UVarCalcOper().