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)

從 lamba 運算式建構狀態的運算式。 例外狀況會攔截並呈現為錯誤字串。

lookup(string)

依名稱查閱 ExpressionEvaluator 函 式。

makeExpression(string, ExpressionEvaluator, Expression[])

建立運算式並加以驗證。

notExpression(Expression)

建構並驗證 Not 運算式。

orExpression(Expression[])

建構並驗證 Or 運算式。

parse(string, EvaluatorLookup)

將運算式字串剖析為 Expression 物件。

references()

傳回記憶體的靜態參考路徑。 將所有靜態路徑傳回至記憶體。 如果有計算專案索引,則路徑會在該處終止,但您也可以從計算部分取得其他路徑。

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

用來識別運算式中靜態記憶體參考的 Walking 函式。

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)

從 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

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

選擇性。 剖析運算式時評估工具Lookup函數查閱。 預設值為使用Expression.functions資料表的Expression.lookup

傳回

運算式物件。

references()

傳回記憶體的靜態參考路徑。 將所有靜態路徑傳回至記憶體。 如果有計算專案索引,則路徑會在該處終止,但您也可以從計算部分取得其他路徑。

function references(): string[]

傳回

string[]

靜態參考路徑的清單。

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

用來識別運算式中靜態記憶體參考的 Walking 函式。

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()