When evaluating an Expression object, this class is used to resolve symbols and perform functions that the expression uses. More...
Classes | |
class | Visitor |
Used as a callback by the Scope::visitRelativeScope() method. More... | |
Public Member Functions | |
Scope () | |
virtual | ~Scope () |
virtual String | getScopeUID () const |
Returns some kind of globally unique ID that identifies this scope. | |
virtual Expression | getSymbolValue (const String &symbol) const |
Returns the value of a symbol. | |
virtual double | evaluateFunction (const String &functionName, const double *parameters, int numParameters) const |
Executes a named function. | |
virtual void | visitRelativeScope (const String &scopeName, Visitor &visitor) const |
Creates a Scope object for a named scope, and then calls a visitor to do some kind of processing with this new scope. | |
When evaluating an Expression object, this class is used to resolve symbols and perform functions that the expression uses.
Expression::Scope::Scope | ( | ) |
Referenced by Expression::Scope::Visitor::visit().
|
virtual |
|
virtual |
Returns some kind of globally unique ID that identifies this scope.
Reimplemented in RelativeCoordinatePositionerBase::ComponentScope.
|
virtual |
Returns the value of a symbol.
If the symbol is unknown, this can throw an Expression::EvaluationError exception. The member value is set to the part of the symbol that followed the dot, if there is one, e.g. for "foo.bar", symbol = "foo" and member = "bar".
Expression::EvaluationError |
Reimplemented in RelativeCoordinatePositionerBase::ComponentScope.
References Expression::Expression(), and Expression::symbol().
|
virtual |
Executes a named function.
If the function name is unknown, this can throw an Expression::EvaluationError exception.
Expression::EvaluationError |
|
virtual |
Creates a Scope object for a named scope, and then calls a visitor to do some kind of processing with this new scope.
If the name is valid, this method must create a suitable (temporary) Scope object to represent it, and must call the Visitor::visit() method with this new scope.
Reimplemented in RelativeCoordinatePositionerBase::ComponentScope.