2using System.Reflection;
3using System.Threading.Tasks;
43 if (!(Obj is
null) && T.GetTypeInfo().IsAssignableFrom(Obj.GetType().GetTypeInfo()))
49 return base.Evaluate(Left, Right,
Variables);
66 if (!(Obj is
null) && T.GetTypeInfo().IsAssignableFrom(Obj.GetType().GetTypeInfo()))
67 return Task.FromResult<
IElement>(Left);
72 return base.EvaluateAsync(Left, Right,
Variables);
89 if (!(Obj is
null) && T.GetTypeInfo().IsAssignableFrom(Obj.GetType().GetTypeInfo()))
112 if (!(Obj is
null) && T.GetTypeInfo().IsAssignableFrom(Obj.GetType().GetTypeInfo()))
113 return Task.FromResult<
IElement>(Left);
Script runtime exception.
Class managing a script expression.
Base class for binary scalar operators.
Base class for all nodes in a parsed script tree.
int Length
Length of expression covered by node.
int Start
Start position in script expression.
static readonly ObjectValue Null
Null value.
override Task< IElement > EvaluateAsync(IElement Left, IElement Right, Variables Variables)
Evaluates the operator.
override IElement Evaluate(IElement Left, IElement Right, Variables Variables)
Evaluates the operator.
As(ScriptNode Left, ScriptNode Right, int Start, int Length, Expression Expression)
As operator.
override UpgradeBehaviour ScalarUpgradeBehaviour
How scalar operands of different types are to be treated. By default, scalar operands are required to...
override IElement EvaluateScalar(IElement Left, IElement Right, Variables Variables)
Evaluates the operator on scalar operands.
override Task< IElement > EvaluateScalarAsync(IElement Left, IElement Right, Variables Variables)
Evaluates the operator on scalar operands.
Basic interface for all types of elements.
object AssociatedObjectValue
Associated object value.
UpgradeBehaviour
How operands are to be handled if not of the same type.