Expression class

可以分析或计算以生成值的表达式。 这提供了一个开放式包装器,该包装器支持许多内置函数,也可以在运行时进行扩展。 它还支持验证应无异常的表达式和计算的正确性。

构造函数

Expression(string, ExpressionEvaluator, Expression[])

表达式构造函数。

属性

children

子表达式。

evaluator

表达式的计算器。

functions

函数 => ExpressionEvaluator 的字典。 这是所有可用的函数,可以向其添加自定义函数,但不能替换内置函数。 如果清除字典,它将重置为内置函数。

returnType

计算表达式的预期结果。

type

表达式的类型。

方法

andExpression(Expression[])

构造并验证 And 表达式。

deepEquals(Expression)

在表达式之间进行深度相等。

equalsExpression(Expression[])

构造并验证 Equals 表达式。

lambaExpression(EvaluateExpressionDelegate)

从 EvaluateExpressionDelegate 构造表达式

lambda((arg0: any) => any)

从兰巴表达式中对 状态构造表达式。 异常将被捕获并显示为错误字符串。

lookup(string)

按名称查找 ExpressionEvaluator 函数。

makeExpression(string, ExpressionEvaluator, Expression[])

创建表达式并对其进行验证。

notExpression(Expression)

构造并验证 Not 表达式。

orExpression(Expression[])

构造并验证 Or 表达式。

parse(string, EvaluatorLookup)

将表达式字符串分析为 Expression 对象。

references()

返回内存的静态引用路径。 返回内存的所有静态路径。 如果存在计算元素索引,则路径将终止到该索引处,但也可能从计算部分获取其他路径。

referenceWalk(Expression, (arg0: Expression) => boolean)

用于标识表达式中的静态内存引用的步行函数。

setPathToValue(Expression, any)

构造并验证将属性表达式设置为值表达式。

toString()

返回表示当前 Expression 对象的字符串。

tryEvaluate(MemoryInterface | any, Options)

计算表达式。

validate()

验证即时表达式。

validateTree()

以递归方式验证表达式树。

构造函数详细信息

Expression(string, ExpressionEvaluator, Expression[])

表达式构造函数。

new Expression(type: string, evaluator: ExpressionEvaluator, children: Expression[])

参数

type

string

ExpressionType 中的表达式类型

evaluator
ExpressionEvaluator

有关如何验证和计算表达式的信息。

children

Expression[]

子表达式。

属性详细信息

children

子表达式。

children: Expression[]

属性值

evaluator

表达式的计算器。

evaluator: ExpressionEvaluator

属性值

functions

函数 => ExpressionEvaluator 的字典。 这是所有可用的函数,可以向其添加自定义函数,但不能替换内置函数。 如果清除字典,它将重置为内置函数。

static functions: FunctionTable = new FunctionTable()

属性值

returnType

计算表达式的预期结果。

ReturnType returnType

属性值

计算表达式的预期结果。

type

表达式的类型。

string type

属性值

string

表达式的类型。

方法详细信息

andExpression(Expression[])

构造并验证 And 表达式。

static function andExpression(children: Expression[]): Expression

参数

children

Expression[]

子子句。

返回

新建表达式。

deepEquals(Expression)

在表达式之间进行深度相等。

function deepEquals(other: Expression): boolean

参数

other
Expression

其他表达式。

返回

boolean

如果表达式相同,则为 True。

equalsExpression(Expression[])

构造并验证 Equals 表达式。

static function equalsExpression(children: Expression[]): Expression

参数

children

Expression[]

子子句。

返回

新建表达式。

lambaExpression(EvaluateExpressionDelegate)

从 EvaluateExpressionDelegate 构造表达式

static function lambaExpression(func: EvaluateExpressionDelegate): Expression

参数

func
EvaluateExpressionDelegate

要从中创建表达式的函数。

返回

新表达式。

lambda((arg0: any) => any)

从兰巴表达式中对 状态构造表达式。 异常将被捕获并显示为错误字符串。

static function lambda(func: (arg0: any) => any): Expression

参数

func

(arg0: any) => any

要计算的 ambda 表达式。

返回

新建表达式。

lookup(string)

按名称查找 ExpressionEvaluator 函数。

static function lookup(functionName: string): ExpressionEvaluator

参数

functionName

string

要查找的函数的名称。

返回

对应于函数名称的 ExpressionEvaluator

makeExpression(string, ExpressionEvaluator, Expression[])

创建表达式并对其进行验证。

static function makeExpression(type: string, evaluator: ExpressionEvaluator, children: Expression[]): Expression

参数

type

string

ExpressionType 中的表达式类型。

evaluator
ExpressionEvaluator

有关如何验证和计算表达式的信息。

children

Expression[]

子表达式。

返回

新表达式。

notExpression(Expression)

构造并验证 Not 表达式。

static function notExpression(child: Expression): Expression

参数

child
Expression

子子句。

返回

新建表达式。

orExpression(Expression[])

构造并验证 Or 表达式。

static function orExpression(children: Expression[]): Expression

参数

children

Expression[]

子子句。

返回

新建表达式。

parse(string, EvaluatorLookup)

将表达式字符串分析为 Expression 对象。

static function parse(expression: string, lookup?: EvaluatorLookup): Expression

参数

expression

string

表达式字符串。

lookup
EvaluatorLookup

可选。 分析表达式时,EvaluatorLookup 函数查找。 默认值为 Expression.lookup ,它使用 Expression.functions 表。

返回

表达式对象。

references()

返回内存的静态引用路径。 返回内存的所有静态路径。 如果存在计算元素索引,则路径将终止到该索引处,但也可能从计算部分获取其他路径。

function references(): string[]

返回

string[]

静态引用路径的列表。

referenceWalk(Expression, (arg0: Expression) => boolean)

用于标识表达式中的静态内存引用的步行函数。

function referenceWalk(expression: Expression, extension?: (arg0: Expression) => boolean): { path: string, refs: Set<string> }

参数

expression
Expression

要分析的表达式。

extension

(arg0: Expression) => boolean

如果存在,则调用 以替代模板扩展等项的查找。

返回

{ path: string, refs: Set<string> }

表达式的访问器路径。

setPathToValue(Expression, any)

构造并验证将属性表达式设置为值表达式。

static function setPathToValue(property: Expression, value: any): Expression

参数

property
Expression

属性表达式。

value

any

value 表达式。

返回

新建表达式。

toString()

返回表示当前 Expression 对象的字符串。

function toString(): string

返回

string

一个表示当前 Expression 对象的字符串。

tryEvaluate(MemoryInterface | any, Options)

计算表达式。

function tryEvaluate(state: MemoryInterface | any, options: Options): ValueWithError

参数

state

MemoryInterface | any

要对其计算访问器表达式的全局状态。 可以是 Dictionary,否则反射用于访问属性,然后访问索引器。

options
Options

评估中使用的选项。

返回

计算值和错误字符串。 如果字符串为非 null,则表示存在计算错误。

validate()

验证即时表达式。

function validate()

validateTree()

以递归方式验证表达式树。

function validateTree()