Expression class
可以分析或计算以生成值的表达式。 这提供了一个开放端包装器,支持许多内置函数,也可以在运行时进行扩展。 它还支持验证应无异常的表达式和计算的正确性。
构造函数
Expression(string, Expression |
表达式构造函数。 |
属性
children | 子表达式。 |
evaluator | 表达式的计算器。 |
functions | 函数字典 => ExpressionEvaluator。 这是所有可用的函数,你可以向其添加自定义函数,但不能替换内置函数。 如果清除字典,它将重置为内置函数。 |
return |
计算表达式的预期结果。 |
type | 表达式的类型。 |
方法
and |
构造并验证 And 表达式。 |
deep |
在表达式之间执行深度相等。 |
equals |
构造并验证 Equals 表达式。 |
lamba |
从 EvaluateExpressionDelegate 构造表达式 |
lambda((arg0: any) => any) | 通过状态从 lamba 表达式构造表达式。 异常将捕获并显示为错误字符串。 |
lookup(string) | 按名称查找 ExpressionEvaluator 函数。 |
make |
创建表达式并对其进行验证。 |
not |
构造并验证 Not 表达式。 |
or |
构造并验证 Or 表达式。 |
parse(string, Evaluator |
将表达式字符串分析为 表达式 对象。 |
references() | 返回内存的静态引用路径。 将所有静态路径返回到内存。 如果有计算元素索引,则路径将终止在那里,但也可以从计算部件获取其他路径。 |
reference |
用于识别表达式中的静态内存引用的步行函数。 |
set |
构造并验证将属性表达式设置为值表达式。 |
to |
返回一个字符串,表示当前 表达式 对象。 |
try |
计算表达式。 |
validate() | 验证即时表达式。 |
validate |
以递归方式验证表达式树。 |
构造函数详细信息
Expression(string, ExpressionEvaluator, Expression[])
表达式构造函数。
new Expression(type: string, evaluator: ExpressionEvaluator, children: Expression[])
参数
- type
-
string
ExpressionType 中的表达式类型
- evaluator
- ExpressionEvaluator
有关如何验证和计算表达式的信息。
- children
子表达式。
属性详细信息
children
evaluator
functions
函数字典 => ExpressionEvaluator。 这是所有可用的函数,你可以向其添加自定义函数,但不能替换内置函数。 如果清除字典,它将重置为内置函数。
static functions: FunctionTable = new FunctionTable()
属性值
returnType
type
表达式的类型。
string type
属性值
string
表达式的类型。
方法详细信息
andExpression(Expression[])
构造并验证 And 表达式。
static function andExpression(children: Expression[]): Expression
参数
- children
子句。
返回
新表达式。
deepEquals(Expression)
在表达式之间执行深度相等。
function deepEquals(other: Expression): boolean
参数
- other
- Expression
其他表达式。
返回
boolean
如此 如果表达式相同。
equalsExpression(Expression[])
构造并验证 Equals 表达式。
static function equalsExpression(children: Expression[]): Expression
参数
- children
子句。
返回
新表达式。
lambaExpression(EvaluateExpressionDelegate)
从 EvaluateExpressionDelegate 构造表达式
static function lambaExpression(func: EvaluateExpressionDelegate): Expression
参数
用于从中创建表达式的函数。
返回
新表达式。
lambda((arg0: any) => any)
通过状态从 lamba 表达式构造表达式。 异常将捕获并显示为错误字符串。
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
子表达式。
返回
新表达式。
notExpression(Expression)
构造并验证 Not 表达式。
static function notExpression(child: Expression): Expression
参数
- child
- Expression
子句。
返回
新表达式。
orExpression(Expression[])
构造并验证 Or 表达式。
static function orExpression(children: Expression[]): Expression
参数
- children
子句。
返回
新表达式。
parse(string, EvaluatorLookup)
将表达式字符串分析为 表达式 对象。
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()
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()