共用方式為


Expander class

LG 範本展開器。

Extends

AbstractParseTreeVisitor<unknown[]>

建構函式

Expander(Templates, EvaluationOptions)

建立 Expander 類別的新實例。

屬性

templateMap

TemplateMap。

templates

範本。

方法

constructScope(string, unknown[], Template[])

建構範圍,將自變數的值對應至範本的參數。

expandTemplate(string, unknown)

展開具有指定名稱和範圍的範本結果。

visitIfElseBody(IfElseBodyContext)

請流覽由 LGTemplateParser.body 中標示為替代的 ifElseBody 所產生的剖析樹狀結構。

visitNormalBody(NormalBodyContext)

流覽 LGTemplateParser.body 中 normalBody 標記替代專案所產生的剖析樹狀結構。

visitNormalTemplateBody(NormalTemplateBodyContext)

流覽 LGTemplateParser.normalTemplateBody 所產生的剖析樹狀結構。

visitNormalTemplateString(NormalTemplateStringContext)

流覽 LGTemplateParser.normalTemplateString 所產生的剖析樹狀結構。

visitStructuredBody(StructuredBodyContext)

流覽 LGTemplateParser.structuredBody 所產生的剖析樹狀結構。

visitSwitchCaseBody(SwitchCaseBodyContext)

請流覽 LGTemplateParser.body 中 switchCaseBody 標記替代專案所產生的剖析樹狀結構。

繼承的方法

visit(ParseTree)

{@inheritDoc}默認實作會在指定的樹狀結構上呼叫 <xref:ParseTree%23accept>。

visitChildren(RuleNode)

{@inheritDoc}預設實作會將匯總結果初始化為 defaultResult()。 訪問每個子系之前,它會呼叫 shouldVisitNextChild;如果結果 false 不會再流覽任何子系,而且會傳回目前的匯總結果。 造訪子系之後,匯總結果會藉由呼叫 aggregateResult,以及造訪子系的結果來更新。

在修改樹狀結構之訪客中,默認實作不安全。 修改樹狀結構的訪客應該覆寫此方法,以針對使用中的特定演算法正確運作。

visitErrorNode(ErrorNode)

{@inheritDoc}默認實作會傳回 defaultResult的結果。

visitTerminal(TerminalNode)

{@inheritDoc}默認實作會傳回 defaultResult的結果。

建構函式詳細資料

Expander(Templates, EvaluationOptions)

建立 Expander 類別的新實例。

new Expander(templates: Templates, opt?: EvaluationOptions)

參數

templates
Templates

範本清單。

opt
EvaluationOptions

LG 的選項。

屬性詳細資料

templateMap

TemplateMap。

templateMap: [key: string]: Template

屬性值

[key: string]: Template

templates

範本。

templates: 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[]

參數

ctx
IfElseBodyContext

剖析樹狀結構。

傳回

unknown[]

造訪 if-else 本文的結果。

visitNormalBody(NormalBodyContext)

流覽 LGTemplateParser.body 中 normalBody 標記替代專案所產生的剖析樹狀結構。

function visitNormalBody(ctx: NormalBodyContext): unknown[]

參數

ctx
NormalBodyContext

剖析樹狀結構。

傳回

unknown[]

訪問正常身體的結果。

visitNormalTemplateBody(NormalTemplateBodyContext)

流覽 LGTemplateParser.normalTemplateBody 所產生的剖析樹狀結構。

function visitNormalTemplateBody(ctx: NormalTemplateBodyContext): unknown[]

參數

ctx
NormalTemplateBodyContext

剖析樹狀結構。

傳回

unknown[]

流覽一般範本主體的結果。

visitNormalTemplateString(NormalTemplateStringContext)

流覽 LGTemplateParser.normalTemplateString 所產生的剖析樹狀結構。

function visitNormalTemplateString(ctx: NormalTemplateStringContext): unknown[]

參數

ctx
NormalTemplateStringContext

剖析樹狀結構。

傳回

unknown[]

流覽 NormalTemplateString 的結果。

visitStructuredBody(StructuredBodyContext)

流覽 LGTemplateParser.structuredBody 所產生的剖析樹狀結構。

function visitStructuredBody(ctx: StructuredBodyContext): unknown[]

參數

ctx
StructuredBodyContext

剖析樹狀結構。

傳回

unknown[]

流覽結構化本文的結果。

visitSwitchCaseBody(SwitchCaseBodyContext)

請流覽 LGTemplateParser.body 中 switchCaseBody 標記替代專案所產生的剖析樹狀結構。

function visitSwitchCaseBody(ctx: SwitchCaseBodyContext): unknown[]

參數

ctx
SwitchCaseBodyContext

剖析樹狀結構。

傳回

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