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 |
將運算式字串剖析為 Expression 物件。 |
references() | 傳回記憶體的靜態參考路徑。 將所有靜態路徑傳回至記憶體。 如果有計算專案索引,則路徑會在該處終止,但您也可以從計算部分取得其他路徑。 |
reference |
用來識別運算式中靜態記憶體參考的 Walking 函式。 |
set |
建構並驗證將屬性運算式設定為值運算式。 |
to |
傳回代表目前 Expression 物件的字串。 |
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
如果運算式相同,則為 True。
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)
將運算式字串剖析為 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()
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()