2using System.Threading.Tasks;
51 return Differentiable.DefaultVariableName;
123 if (!(this.op is
null))
125 bool b = !Callback(this.op, out
ScriptNode NewNode, State);
126 if (!(NewNode is
null))
131 this.isAsync = NewNode.IsAsynchronous;
134 if (b || (Order ==
SearchMethod.TreeOrder && !
this.op.ForAllChildNodes(Callback, State, Order)))
158 int Result = base.GetHashCode();
Class managing a script expression.
Base class for all nodes in a parsed script tree.
int Length
Length of expression covered by node.
override bool Equals(object obj)
int Start
Start position in script expression.
virtual bool IsAsynchronous
If the node (or its decendants) include asynchronous evaluation. Asynchronous nodes should be evaluat...
void SetParent(ScriptNode Parent)
Sets the parent node. Can only be used when expression is being parsed.
override int GetHashCode()
abstract IElement Evaluate(Variables Variables)
Evaluates the node, using the variables provided in the Variables collection. This method should be ...
virtual Task< IElement > EvaluateAsync(Variables Variables)
Evaluates the node, using the variables provided in the Variables collection. This method should be ...
Base class for all unary operators.
abstract IElement Evaluate(IElement Operand, Variables Variables)
Evaluates the operator.
override IElement Evaluate(Variables Variables)
Evaluates the node, using the variables provided in the Variables collection.
virtual string DefaultVariableName
Default variable name, if any, null otherwise.
ScriptNode Operand
Operand.
override bool ForAllChildNodes(ScriptNodeEventHandler Callback, object State, SearchMethod Order)
Calls the callback method for all child nodes.
UnaryOperator(ScriptNode Operand, int Start, int Length, Expression Expression)
Base class for all unary operators.
bool isAsync
If subtree is asynchroneous.
override bool Equals(object obj)
override async Task< IElement > EvaluateAsync(Variables Variables)
Evaluates the node, using the variables provided in the Variables collection.
override int GetHashCode()
virtual Task< IElement > EvaluateAsync(IElement Operand, Variables Variables)
Evaluates the operator.
override bool IsAsynchronous
If the node (or its decendants) include asynchronous evaluation. Asynchronous nodes should be evaluat...
Basic interface for all types of elements.
Base interface for lambda expressions.
delegate bool ScriptNodeEventHandler(ScriptNode Node, out ScriptNode NewNode, object State)
Delegate for ScriptNode callback methods.
SearchMethod
Method to traverse the expression structure