Expander class
LG 範本展開器。
- Extends
-
AbstractParseTreeVisitor<unknown[]>
建構函式
Expander(Templates, Evaluation |
建立 Expander 類別的新實例。 |
屬性
template |
TemplateMap。 |
templates | 範本。 |
方法
construct |
建構範圍,將自變數的值對應至範本的參數。 |
expand |
展開具有指定名稱和範圍的範本結果。 |
visit |
請流覽由 LGTemplateParser.body 中標示為替代的 ifElseBody 所產生的剖析樹狀結構。 |
visit |
流覽 LGTemplateParser.body 中 normalBody 標記替代專案所產生的剖析樹狀結構。 |
visit |
流覽 LGTemplateParser.normalTemplateBody 所產生的剖析樹狀結構。 |
visit |
流覽 LGTemplateParser.normalTemplateString 所產生的剖析樹狀結構。 |
visit |
流覽 LGTemplateParser.structuredBody 所產生的剖析樹狀結構。 |
visit |
請流覽 LGTemplateParser.body 中 switchCaseBody 標記替代專案所產生的剖析樹狀結構。 |
繼承的方法
visit(Parse |
{@inheritDoc}默認實作會在指定的樹狀結構上呼叫 <xref:ParseTree%23accept>。 |
visit |
{@inheritDoc}預設實作會將匯總結果初始化為 defaultResult()。 訪問每個子系之前,它會呼叫 shouldVisitNextChild;如果結果 在修改樹狀結構之訪客中,默認實作不安全。 修改樹狀結構的訪客應該覆寫此方法,以針對使用中的特定演算法正確運作。 |
visit |
{@inheritDoc}默認實作會傳回 defaultResult |
visit |
{@inheritDoc}默認實作會傳回 defaultResult |
建構函式詳細資料
Expander(Templates, EvaluationOptions)
建立 Expander 類別的新實例。
new Expander(templates: Templates, opt?: EvaluationOptions)
參數
- templates
- Templates
範本清單。
LG 的選項。
屬性詳細資料
templateMap
templates
方法詳細資料
constructScope(string, unknown[], Template[])
建構範圍,將自變數的值對應至範本的參數。
function constructScope(inputTemplateName: string, args: unknown[], allTemplates: Template[]): MemoryInterface
參數
- inputTemplateName
-
string
要評估的範本名稱。
- args
-
unknown[]
要對應至範本參數的自變數。
- allTemplates
-
Template[]
所有範本。
傳回
MemoryInterface
如果自變數數目為0,則為目前的範圍,否則會傳回 CustomizedMemory。 將參數名稱對應至加入範圍中的自變數值。
expandTemplate(string, unknown)
展開具有指定名稱和範圍的範本結果。
function expandTemplate(templateName: string, scope: unknown): unknown[]
參數
- templateName
-
string
指定的範本名稱。
- scope
-
unknown
指定範圍。
傳回
unknown[]
所有可置中的結果。
visitIfElseBody(IfElseBodyContext)
請流覽由 LGTemplateParser.body 中標示為替代的 ifElseBody 所產生的剖析樹狀結構。
function visitIfElseBody(ctx: IfElseBodyContext): unknown[]
參數
剖析樹狀結構。
傳回
unknown[]
造訪 if-else 本文的結果。
visitNormalBody(NormalBodyContext)
流覽 LGTemplateParser.body 中 normalBody 標記替代專案所產生的剖析樹狀結構。
function visitNormalBody(ctx: NormalBodyContext): unknown[]
參數
剖析樹狀結構。
傳回
unknown[]
訪問正常身體的結果。
visitNormalTemplateBody(NormalTemplateBodyContext)
流覽 LGTemplateParser.normalTemplateBody 所產生的剖析樹狀結構。
function visitNormalTemplateBody(ctx: NormalTemplateBodyContext): unknown[]
參數
剖析樹狀結構。
傳回
unknown[]
流覽一般範本主體的結果。
visitNormalTemplateString(NormalTemplateStringContext)
流覽 LGTemplateParser.normalTemplateString 所產生的剖析樹狀結構。
function visitNormalTemplateString(ctx: NormalTemplateStringContext): unknown[]
參數
剖析樹狀結構。
傳回
unknown[]
流覽 NormalTemplateString 的結果。
visitStructuredBody(StructuredBodyContext)
流覽 LGTemplateParser.structuredBody 所產生的剖析樹狀結構。
function visitStructuredBody(ctx: StructuredBodyContext): unknown[]
參數
剖析樹狀結構。
傳回
unknown[]
流覽結構化本文的結果。
visitSwitchCaseBody(SwitchCaseBodyContext)
請流覽 LGTemplateParser.body 中 switchCaseBody 標記替代專案所產生的剖析樹狀結構。
function visitSwitchCaseBody(ctx: SwitchCaseBodyContext): unknown[]
參數
剖析樹狀結構。
傳回
unknown[]
流覽 switch 案例本文的結果。
繼承的方法的詳細資料
visit(ParseTree)
{@inheritDoc}默認實作會在指定的樹狀結構上呼叫 <xref:ParseTree%23accept>。
function visit(tree: ParseTree): unknown[]
參數
- tree
-
ParseTree
傳回
unknown[]
繼承自 AbstractParseTreeVisitor.visit
visitChildren(RuleNode)
{@inheritDoc}預設實作會將匯總結果初始化為 defaultResult()。 訪問每個子系之前,它會呼叫 shouldVisitNextChild;如果結果 false
不會再流覽任何子系,而且會傳回目前的匯總結果。 造訪子系之後,匯總結果會藉由呼叫 aggregateResult,以及造訪子系的結果來更新。
在修改樹狀結構之訪客中,默認實作不安全。 修改樹狀結構的訪客應該覆寫此方法,以針對使用中的特定演算法正確運作。
function visitChildren(node: RuleNode): unknown[]
參數
- node
-
RuleNode
傳回
unknown[]
繼承自 AbstractParseTreeVisitor.visitChildren
visitErrorNode(ErrorNode)
{@inheritDoc}默認實作會傳回 defaultResult
function visitErrorNode(node: ErrorNode): unknown[]
參數
- node
-
ErrorNode
傳回
unknown[]
繼承自 AbstractParseTreeVisitor.visitErrorNode
visitTerminal(TerminalNode)
{@inheritDoc}默認實作會傳回 defaultResult
function visitTerminal(node: TerminalNode): unknown[]
參數
- node
-
TerminalNode
傳回
unknown[]
繼承自 AbstractParseTreeVisitor.visitTerminal