共用方式為


LGFileParser class

Extends

Parser

建構函式

LGFileParser(TokenStream)

屬性

COMMENT
ESCAPE_CHARACTER
grammarFileName
IMPORT
INLINE_MULTILINE
INVALID_LINE
MULTILINE_PREFIX
MULTILINE_SUFFIX
MULTILINE_TEXT
NEWLINE
OPTION
ruleNames
ruleNames
RULE_commentDefinition
RULE_errorDefinition
RULE_file
RULE_importDefinition
RULE_optionDefinition
RULE_paragraph
RULE_templateBody
RULE_templateBodyLine
RULE_templateDefinition
RULE_templateNameLine
serializedATN
TEMPLATE_BODY
TEMPLATE_NAME_LINE
VOCABULARY
vocabulary

繼承的屬性

atn

serializedATN取得辨識器用於預測的 。

buildParseTree

<xref:ParserRuleContext>在剖析期間追蹤物件,並使用 <xref:ParserRuleContext%23children> 清單連結化物件,使其形成剖析樹狀結構。 <xref:ParserRuleContext>從開始規則傳回的 代表剖析樹狀結構的根目錄。 請注意,如果我們不是建置剖析樹狀結構,規則內容只會向上指向。 當規則結束時,它會傳回內容,但如果沒有任何人保存參考,則會進行垃圾收集。 它會向上指向,但沒有人指向它。

當我們建置剖析樹狀結構時,我們會將這些內容新增至 <xref:ParserRuleContext%23children> 清單中。 內容接著不是垃圾收集的候選項目。

context
currentToken

比對需要傳回目前的輸入符號,這會放入相關聯標記 ref 的標籤中;例如 x=ID。

EOF
errorHandler
inputStream

設定權杖資料流程並重設剖析器。

interpreter

設定辨識器用於預測的 ATN 解譯器。

isMatchedEOF
isTrace

在剖析期間,有時有助於接聽規則專案和結束事件以及權杖相符專案。 這是快速且已變更的偵錯。

numberOfSyntaxErrors

取得剖析期間報告的語法錯誤數目。 每次呼叫 時 <xref:%23notifyErrorListeners> ,這個值都會遞增。

請參閱#notifyErrorListeners

parseInfo
precedence

取得最高優先順序規則的優先順序層級。

ruleContext
sourceName
state

指出辨識器已變更與傳入 ATN 狀態一致的內部狀態。 如此一來,我們一律會知道我們在 ATN 中的位置,因為剖析器會跟著進行。 規則內容物件形成堆疊,讓我們可以看到叫用規則的堆疊。 結合這一點,我們已完成 ATN 組態資訊。

tokenFactory

方法

commentDefinition()
errorDefinition()
file()
importDefinition()
optionDefinition()
paragraph()
templateBody()
templateBodyLine()
templateDefinition()
templateNameLine()

繼承的方法

action(RuleContext | undefined, number, number)
addErrorListener(ANTLRErrorListener<Token>)
addParseListener(ParseTreeListener)

listener註冊以在剖析程式期間接收事件。 為了支援輸出保留文法轉換, (包括但不限於左遞迴移除、自動化左因素處理,以及優化程式碼產生) ,剖析期間的接聽程式方法呼叫可能會與剖析完成之後所使用的呼叫 <xref:ParseTreeWalker%23DEFAULT> 有很大的差異。 特別是,在剖析期間,規則進入和結束事件可能會以不同于剖析器之後的順序發生。 此外,可能會省略對特定規則輸入方法的呼叫。

在下列特定例外狀況下,接聽程式事件的呼叫是 具決定性的,也就是說,對於相同的輸入,接聽程式方法的呼叫會相同。

  • 變更用來產生程式碼的文法可能會變更接聽程式呼叫的行為。
  • 產生剖析器時,傳遞至 ANTLR 4 的命令列選項變更可能會變更接聽程式呼叫的行為。
  • 變更用來產生剖析器的 ANTLR 工具版本可能會變更接聽程式呼叫的行為。
compileParseTreePattern(string, number)

取得樹狀模式的慣用方法。 例如,以下是範例用法:

let t: ParseTree = parser.expr();
let p: ParseTreePattern = await parser.compileParseTreePattern("<ID>+0", MyParser.RULE_expr);
let m: ParseTreeMatch = p.match(t);
let id: string = m.get("ID");
compileParseTreePattern(string, number, Lexer)

與 [int) ] (xref:%23compileParseTreePattern (String%2C) 相同,但請指定 LGFileLexer ,而不是嘗試從這個剖析器推斷它。

consume()

取用並傳回 目前的符號。 例如,假設下列輸入是 A 目前的外觀符號,此函式會將游標 B 移至 並傳 A 回 。

A B
^

如果剖析器不是處於錯誤復原模式,則會使用 將 <xref:ParserRuleContext%23addChild(TerminalNode)> 取用的符號新增至剖析樹狀結構,並在 <xref:ParseTreeListener%23visitTerminal> 任何剖析接聽程式上呼叫。 如果剖析器處於錯誤復原模式,則會使用 [Token) ] (xref:%23createErrorNode (ParserRuleCoNtext%2C) 呼叫剖析樹狀結構,然後在 <xref:ParserRuleContext%23addErrorNode(ErrorNode)> 任何剖析接聽程式上呼叫 。 <xref:ParseTreeListener%23visitErrorNode>

createErrorNode(ParserRuleContext, Token)

如何建立錯誤節點,並指定與父代相關聯的權杖。 一般而言,要建立的錯誤節點不是父系的函式。

createTerminalNode(ParserRuleContext, Token)

如何建立與父代相關聯的權杖分葉節點。 一般而言,要建立的終端節點不是父系的函式。

dumpDFA()

用於偵錯和其他用途。

enterLeftFactoredRule(ParserRuleContext, number, number)
enterOuterAlt(ParserRuleContext, number)
enterRecursionRule(ParserRuleContext, number, number, number)
enterRule(ParserRuleContext, number, number)

在規則進入時,一律由產生的剖析器呼叫。 存取欄位 <xref:%23_ctx> 會取得目前的內容。

exitRule()
getATNWithBypassAlts()

使用略過替代方案的 ATN 會耗費大量成本來建立,因此我們會延遲建立。 如果目前的剖析器未實作 屬性,則 serializedATN 為 @ 。

getDFAStrings()

用於偵錯和其他用途。

getErrorHeader(RecognitionException)

錯誤標頭是什麼,通常是行/字元位置資訊?

getErrorListenerDispatch()
getErrorListeners()
getExpectedTokens()

計算一組輸入符號,這些符號可以分別遵循目前的剖析器狀態和內容,如 和 <xref:%23getContext> 所指定 <xref:%23getState> 。

請參閱 ATN#getExpectedTokens (int,RuleCoNtext)

getExpectedTokensWithinCurrentRule()
getInvokingContext(number)
getParseListeners()
getRuleIndex(string)

取得規則的索引 (,也就是 RULE_ruleName 找不到欄位) 或 -1。

getRuleIndexMap()

從規則名稱到規則索引取得對應。 用於 XPath 和樹狀架構編譯。

getRuleInvocationStack(RuleContext)

<傳回剖析器實例中規則名稱的清單字串 > ,導致呼叫目前規則。 如果您想要更多詳細資料,例如叫用規則在 ATN 中位置的檔案/行資訊,您可以覆寫。 這非常適用于錯誤訊息。

getTokenType(string)
getTokenTypeMap()

從權杖名稱到權杖類型取得對應。 用於 XPath 和樹狀架構編譯。

inContext(string)
isExpectedToken(number)

檢查是否 symbol 可遵循 ATN 中的目前狀態。 這個方法的行為相當於下列專案,但實作方式是讓完整內容相關的追蹤集不需要明確建構。

return getExpectedTokens().contains(symbol);
match(number)

比對目前的輸入符號與 ttype 。 如果符號類型相符, <xref:ANTLRErrorStrategy%23reportMatch> 則會 <xref:%23consume> 呼叫 以完成比對程式。 如果符號類型不相符, <xref:ANTLRErrorStrategy%23recoverInline> 則會在目前的錯誤策略上呼叫 以嘗試復原。 如果 <xref:%23getBuildParseTree> 是 true ,而 傳 <xref:ANTLRErrorStrategy%23recoverInline> 回的符號的標記索引是 -1,則會呼叫 [Token) ] (xref:%23createErrorNode (ParserRuleCoNtext%2C) ,將符號新增至剖析樹狀 <xref:ParserRuleContext%23addErrorNode(ErrorNode)> 結構。

matchWildcard()

比對目前的輸入符號做為萬用字元。 如果符號類型符合 (,亦即具有大於 0 的值) , <xref:ANTLRErrorStrategy%23reportMatch> 並 <xref:%23consume> 呼叫 以完成比對程式。 如果符號類型不相符, <xref:ANTLRErrorStrategy%23recoverInline> 則會在目前的錯誤策略上呼叫 以嘗試復原。 如果 <xref:%23getBuildParseTree> 是 true ,且 所 <xref:ANTLRErrorStrategy%23recoverInline> 傳回的符號的標記索引是 -1,則會呼叫 [Token) ] (xref:Parser%23createErrorNode (ParserRuleCoNtext%2C) ,將符號新增至剖析樹狀 <xref:ParserRuleContext%23addErrorNode(ErrorNode)> 結構。

notifyErrorListeners(string)
notifyErrorListeners(string, Token | null, RecognitionException | undefined)
precpred(RuleContext, number)
pushNewRecursionContext(ParserRuleContext, number, number)

如同 <xref:%23enterRule> ,但用於遞迴規則。 將目前內容設為傳入 localctx 的子系。

removeErrorListener(ANTLRErrorListener<Token>)
removeErrorListeners()
removeParseListener(ParseTreeListener)

從剖析接聽程式清單中移除 listener 。 如果 listenerundefined 或 尚未新增為剖析接聽程式,則此方法不會執行任何動作。

請參閱#addParseListener

removeParseListeners()

移除所有剖析接聽程式。

請參閱#addParseListener

reset()

重設剖析器的狀態

reset(boolean)
sempred(RuleContext | undefined, number, number)
setProfile(boolean)
unrollRecursionContexts(ParserRuleContext)

建構函式詳細資料

LGFileParser(TokenStream)

new LGFileParser(input: TokenStream)

參數

input

TokenStream

屬性詳細資料

COMMENT

public static COMMENT: 3 = 3

屬性值

3

ESCAPE_CHARACTER

public static ESCAPE_CHARACTER: 11 = 11

屬性值

11

grammarFileName

string grammarFileName

屬性值

string

IMPORT

public static IMPORT: 4 = 4

屬性值

4

INLINE_MULTILINE

public static INLINE_MULTILINE: 6 = 6

屬性值

6

INVALID_LINE

public static INVALID_LINE: 9 = 9

屬性值

9

MULTILINE_PREFIX

public static MULTILINE_PREFIX: 7 = 7

屬性值

7

MULTILINE_SUFFIX

public static MULTILINE_SUFFIX: 10 = 10

屬性值

10

MULTILINE_TEXT

public static MULTILINE_TEXT: 12 = 12

屬性值

12

NEWLINE

public static NEWLINE: 1 = 1

屬性值

1

OPTION

public static OPTION: 2 = 2

屬性值

2

ruleNames

public static ruleNames: string[] = [
		"file", "paragraph", "commentDefinition", "importDefinition", "optionDefinition", 
		"errorDefinition", "templateDefinition", "templateNameLine", "templateBody", 
		"templateBodyLine",
	]

屬性值

string[]

ruleNames

string[] ruleNames

屬性值

string[]

RULE_commentDefinition

public static RULE_commentDefinition: 2 = 2

屬性值

2

RULE_errorDefinition

public static RULE_errorDefinition: 5 = 5

屬性值

5

RULE_file

public static RULE_file: 0 = 0

屬性值

0

RULE_importDefinition

public static RULE_importDefinition: 3 = 3

屬性值

3

RULE_optionDefinition

public static RULE_optionDefinition: 4 = 4

屬性值

4

RULE_paragraph

public static RULE_paragraph: 1 = 1

屬性值

1

RULE_templateBody

public static RULE_templateBody: 8 = 8

屬性值

8

RULE_templateBodyLine

public static RULE_templateBodyLine: 9 = 9

屬性值

9

RULE_templateDefinition

public static RULE_templateDefinition: 6 = 6

屬性值

6

RULE_templateNameLine

public static RULE_templateNameLine: 7 = 7

屬性值

7

serializedATN

string serializedATN

屬性值

string

TEMPLATE_BODY

public static TEMPLATE_BODY: 8 = 8

屬性值

8

TEMPLATE_NAME_LINE

public static TEMPLATE_NAME_LINE: 5 = 5

屬性值

5

VOCABULARY

public static VOCABULARY: Vocabulary = new VocabularyImpl(LGFileParser._LITERAL_NAMES, LGFileParser._SYMBOLIC_NAMES, [])

屬性值

Vocabulary

vocabulary

Vocabulary vocabulary

屬性值

Vocabulary

繼承的屬性詳細資料

atn

serializedATN取得辨識器用於預測的 。

atn: ATN

屬性值

ATN

繼承自 Recognizer.atn

buildParseTree

<xref:ParserRuleContext>在剖析期間追蹤物件,並使用 <xref:ParserRuleContext%23children> 清單連結化物件,使其形成剖析樹狀結構。 <xref:ParserRuleContext>從開始規則傳回的 代表剖析樹狀結構的根目錄。 請注意,如果我們不是建置剖析樹狀結構,規則內容只會向上指向。 當規則結束時,它會傳回內容,但如果沒有任何人保存參考,則會進行垃圾收集。 它會向上指向,但沒有人指向它。

當我們建置剖析樹狀結構時,我們會將這些內容新增至 <xref:ParserRuleContext%23children> 清單中。 內容接著不是垃圾收集的候選項目。

buildParseTree: boolean

屬性值

boolean

繼承自 Parser.buildParseTree

context

context: ParserRuleContext

屬性值

ParserRuleContext

繼承自 Parser.coNtext

currentToken

比對需要傳回目前的輸入符號,這會放入相關聯標記 ref 的標籤中;例如 x=ID。

currentToken: Token

屬性值

Token

繼承自 Parser.currentToken

EOF

static EOF: number

屬性值

number

繼承自 Recognizer.EOF

errorHandler

errorHandler: ANTLRErrorStrategy

屬性值

ANTLRErrorStrategy

繼承自 Parser.errorHandler

inputStream

設定權杖資料流程並重設剖析器。

inputStream: TokenStream

屬性值

TokenStream

繼承自 Parser.inputStream

interpreter

設定辨識器用於預測的 ATN 解譯器。

interpreter: ParserATNSimulator

屬性值

ParserATNSimulator

繼承自 Recognizer.interpreter

isMatchedEOF

isMatchedEOF: boolean

屬性值

boolean

繼承自 Parser.isMatchedEOF

isTrace

在剖析期間,有時有助於接聽規則專案和結束事件以及權杖相符專案。 這是快速且已變更的偵錯。

isTrace: boolean

屬性值

boolean

繼承自 Parser.isTrace

numberOfSyntaxErrors

取得剖析期間報告的語法錯誤數目。 每次呼叫 時 <xref:%23notifyErrorListeners> ,這個值都會遞增。

請參閱#notifyErrorListeners

numberOfSyntaxErrors: number

屬性值

number

繼承自 Parser.numberOfSyntaxErrors

parseInfo

parseInfo: Promise<ParseInfo | undefined>

屬性值

Promise<ParseInfo | undefined>

繼承自 Parser.parseInfo

precedence

取得最高優先順序規則的優先順序層級。

precedence: number

屬性值

number

繼承自 Parser.precedence

ruleContext

ruleContext: ParserRuleContext

屬性值

ParserRuleContext

繼承自 Parser.ruleCoNtext

sourceName

sourceName: string

屬性值

string

繼承自 Parser.sourceName

state

指出辨識器已變更與傳入 ATN 狀態一致的內部狀態。 如此一來,我們一律會知道我們在 ATN 中的位置,因為剖析器會跟著進行。 規則內容物件形成堆疊,讓我們可以看到叫用規則的堆疊。 結合這一點,我們已完成 ATN 組態資訊。

state: number

屬性值

number

繼承自 Recognizer.state

tokenFactory

tokenFactory: TokenFactory

屬性值

TokenFactory

繼承自 Parser.tokenFactory

方法詳細資料

commentDefinition()

function commentDefinition(): CommentDefinitionContext

傳回

errorDefinition()

function errorDefinition(): ErrorDefinitionContext

傳回

file()

function file(): FileContext

傳回

importDefinition()

function importDefinition(): ImportDefinitionContext

傳回

optionDefinition()

function optionDefinition(): OptionDefinitionContext

傳回

paragraph()

function paragraph(): ParagraphContext

傳回

templateBody()

function templateBody(): TemplateBodyContext

傳回

templateBodyLine()

function templateBodyLine(): TemplateBodyLineContext

傳回

templateDefinition()

function templateDefinition(): TemplateDefinitionContext

傳回

templateNameLine()

function templateNameLine(): TemplateNameLineContext

傳回

繼承的方法的詳細資料

action(RuleContext | undefined, number, number)

function action(_localctx: RuleContext | undefined, ruleIndex: number, actionIndex: number)

參數

_localctx

RuleContext | undefined

ruleIndex

number

actionIndex

number

繼承自 Recognizer.action

addErrorListener(ANTLRErrorListener<Token>)

function addErrorListener(listener: ANTLRErrorListener<Token>)

參數

listener

ANTLRErrorListener<Token>

繼承自 Recognizer.addErrorListener

addParseListener(ParseTreeListener)

listener註冊以在剖析程式期間接收事件。 為了支援輸出保留文法轉換, (包括但不限於左遞迴移除、自動化左因素處理,以及優化程式碼產生) ,剖析期間的接聽程式方法呼叫可能會與剖析完成之後所使用的呼叫 <xref:ParseTreeWalker%23DEFAULT> 有很大的差異。 特別是,在剖析期間,規則進入和結束事件可能會以不同于剖析器之後的順序發生。 此外,可能會省略對特定規則輸入方法的呼叫。

在下列特定例外狀況下,接聽程式事件的呼叫是 具決定性的,也就是說,對於相同的輸入,接聽程式方法的呼叫會相同。

  • 變更用來產生程式碼的文法可能會變更接聽程式呼叫的行為。
  • 產生剖析器時,傳遞至 ANTLR 4 的命令列選項變更可能會變更接聽程式呼叫的行為。
  • 變更用來產生剖析器的 ANTLR 工具版本可能會變更接聽程式呼叫的行為。
function addParseListener(listener: ParseTreeListener)

參數

listener

ParseTreeListener

要新增的接聽程式

繼承自 Parser.addParseListener

compileParseTreePattern(string, number)

取得樹狀模式的慣用方法。 例如,以下是範例用法:

let t: ParseTree = parser.expr();
let p: ParseTreePattern = await parser.compileParseTreePattern("<ID>+0", MyParser.RULE_expr);
let m: ParseTreeMatch = p.match(t);
let id: string = m.get("ID");
function compileParseTreePattern(pattern: string, patternRuleIndex: number): Promise<ParseTreePattern>

參數

pattern

string

patternRuleIndex

number

傳回

Promise<ParseTreePattern>

繼承自 Parser.compileParseTreePattern

compileParseTreePattern(string, number, Lexer)

與 [int) ] (xref:%23compileParseTreePattern (String%2C) 相同,但請指定 LGFileLexer ,而不是嘗試從這個剖析器推斷它。

function compileParseTreePattern(pattern: string, patternRuleIndex: number, lexer?: Lexer): Promise<ParseTreePattern>

參數

pattern

string

patternRuleIndex

number

lexer

Lexer

傳回

Promise<ParseTreePattern>

繼承自 Parser.compileParseTreePattern

consume()

取用並傳回 目前的符號。 例如,假設下列輸入是 A 目前的外觀符號,此函式會將游標 B 移至 並傳 A 回 。

A B
^

如果剖析器不是處於錯誤復原模式,則會使用 將 <xref:ParserRuleContext%23addChild(TerminalNode)> 取用的符號新增至剖析樹狀結構,並在 <xref:ParseTreeListener%23visitTerminal> 任何剖析接聽程式上呼叫。 如果剖析器處於錯誤復原模式,則會使用 [Token) ] (xref:%23createErrorNode (ParserRuleCoNtext%2C) 呼叫剖析樹狀結構,然後在 <xref:ParserRuleContext%23addErrorNode(ErrorNode)> 任何剖析接聽程式上呼叫 。 <xref:ParseTreeListener%23visitErrorNode>

function consume(): Token

傳回

Token

繼承自 Parser.consume

createErrorNode(ParserRuleContext, Token)

如何建立錯誤節點,並指定與父代相關聯的權杖。 一般而言,要建立的錯誤節點不是父系的函式。

function createErrorNode(parent: ParserRuleContext, t: Token): ErrorNode

參數

parent

ParserRuleContext

t

Token

傳回

ErrorNode

繼承自 Parser.createErrorNode

createTerminalNode(ParserRuleContext, Token)

如何建立與父代相關聯的權杖分葉節點。 一般而言,要建立的終端節點不是父系的函式。

function createTerminalNode(parent: ParserRuleContext, t: Token): TerminalNode

參數

parent

ParserRuleContext

t

Token

傳回

TerminalNode

繼承自 Parser.createTerminalNode

dumpDFA()

用於偵錯和其他用途。

function dumpDFA()

繼承自 Parser.dumpDFA

enterLeftFactoredRule(ParserRuleContext, number, number)

function enterLeftFactoredRule(localctx: ParserRuleContext, state: number, ruleIndex: number)

參數

localctx

ParserRuleContext

state

number

ruleIndex

number

繼承自 Parser.enterLeftFactoredRule

enterOuterAlt(ParserRuleContext, number)

function enterOuterAlt(localctx: ParserRuleContext, altNum: number)

參數

localctx

ParserRuleContext

altNum

number

繼承自 Parser.enterOuterAlt

enterRecursionRule(ParserRuleContext, number, number, number)

function enterRecursionRule(localctx: ParserRuleContext, state: number, ruleIndex: number, precedence: number)

參數

localctx

ParserRuleContext

state

number

ruleIndex

number

precedence

number

繼承自 Parser.enterRecursionRule

enterRule(ParserRuleContext, number, number)

在規則進入時,一律由產生的剖析器呼叫。 存取欄位 <xref:%23_ctx> 會取得目前的內容。

function enterRule(localctx: ParserRuleContext, state: number, ruleIndex: number)

參數

localctx

ParserRuleContext

state

number

ruleIndex

number

繼承自 Parser.enterRule

exitRule()

function exitRule()

繼承自 Parser.exitRule

getATNWithBypassAlts()

使用略過替代方案的 ATN 會耗費大量成本來建立,因此我們會延遲建立。 如果目前的剖析器未實作 屬性,則 serializedATN 為 @ 。

function getATNWithBypassAlts(): ATN

傳回

ATN

繼承自 Parser.getATNWithBypassAlts

getDFAStrings()

用於偵錯和其他用途。

function getDFAStrings(): string[]

傳回

string[]

繼承自 Parser.getDFAStrings

getErrorHeader(RecognitionException)

錯誤標頭是什麼,通常是行/字元位置資訊?

function getErrorHeader(e: RecognitionException): string

參數

e

RecognitionException

傳回

string

繼承自 Recognizer.getErrorHeader

getErrorListenerDispatch()

function getErrorListenerDispatch(): ParserErrorListener

傳回

ParserErrorListener

繼承自 Parser.getErrorListenerDispatch

getErrorListeners()

function getErrorListeners(): Array<ANTLRErrorListener<Token>>

傳回

Array<ANTLRErrorListener<Token>>

繼承自 Recognizer.getErrorListeners

getExpectedTokens()

計算一組輸入符號,這些符號可以分別遵循目前的剖析器狀態和內容,如 和 <xref:%23getContext> 所指定 <xref:%23getState> 。

請參閱 ATN#getExpectedTokens (int,RuleCoNtext)

function getExpectedTokens(): IntervalSet

傳回

IntervalSet

繼承自 Parser.getExpectedTokens

getExpectedTokensWithinCurrentRule()

function getExpectedTokensWithinCurrentRule(): IntervalSet

傳回

IntervalSet

繼承自 Parser.getExpectedTokensWithinCurrentRule

getInvokingContext(number)

function getInvokingContext(ruleIndex: number): ParserRuleContext | undefined

參數

ruleIndex

number

傳回

ParserRuleContext | undefined

繼承自 Parser.getInvokingCoNtext

getParseListeners()

function getParseListeners(): ParseTreeListener[]

傳回

ParseTreeListener[]

繼承自 Parser.getParseListeners

getRuleIndex(string)

取得規則的索引 (,也就是 RULE_ruleName 找不到欄位) 或 -1。

function getRuleIndex(ruleName: string): number

參數

ruleName

string

傳回

number

繼承自 Parser.getRuleIndex

getRuleIndexMap()

從規則名稱到規則索引取得對應。 用於 XPath 和樹狀架構編譯。

function getRuleIndexMap(): ReadonlyMap<string, number>

傳回

ReadonlyMap<string, number>

繼承自 Recognizer.getRuleIndexMap

getRuleInvocationStack(RuleContext)

<傳回剖析器實例中規則名稱的清單字串 > ,導致呼叫目前規則。 如果您想要更多詳細資料,例如叫用規則在 ATN 中位置的檔案/行資訊,您可以覆寫。 這非常適用于錯誤訊息。

function getRuleInvocationStack(ctx?: RuleContext): string[]

參數

ctx

RuleContext

傳回

string[]

繼承自 Parser.getRuleInvocationStack

getTokenType(string)

function getTokenType(tokenName: string): number

參數

tokenName

string

傳回

number

繼承自 Recognizer.getTokenType

getTokenTypeMap()

從權杖名稱到權杖類型取得對應。 用於 XPath 和樹狀架構編譯。

function getTokenTypeMap(): ReadonlyMap<string, number>

傳回

ReadonlyMap<string, number>

繼承自 Recognizer.getTokenTypeMap

inContext(string)

function inContext(context: string): boolean

參數

context

string

傳回

boolean

繼承自 Parser.inCoNtext

isExpectedToken(number)

檢查是否 symbol 可遵循 ATN 中的目前狀態。 這個方法的行為相當於下列專案,但實作方式是讓完整內容相關的追蹤集不需要明確建構。

return getExpectedTokens().contains(symbol);
function isExpectedToken(symbol: number): boolean

參數

symbol

number

要檢查的符號類型

傳回

boolean

true 如果 symbol 可以遵循 ATN 中的目前狀態,則為 ,否則 false 為 。

繼承自 Parser.isExpectedToken

match(number)

比對目前的輸入符號與 ttype 。 如果符號類型相符, <xref:ANTLRErrorStrategy%23reportMatch> 則會 <xref:%23consume> 呼叫 以完成比對程式。 如果符號類型不相符, <xref:ANTLRErrorStrategy%23recoverInline> 則會在目前的錯誤策略上呼叫 以嘗試復原。 如果 <xref:%23getBuildParseTree> 是 true ,而 傳 <xref:ANTLRErrorStrategy%23recoverInline> 回的符號的標記索引是 -1,則會呼叫 [Token) ] (xref:%23createErrorNode (ParserRuleCoNtext%2C) ,將符號新增至剖析樹狀 <xref:ParserRuleContext%23addErrorNode(ErrorNode)> 結構。

function match(ttype: number): Token

參數

ttype

number

要比對的權杖類型

傳回

Token

相符符號 @ 如果目前的輸入符號不相符 ttype ,而且錯誤策略無法從不相符的符號復原

繼承自 Parser.match

matchWildcard()

比對目前的輸入符號做為萬用字元。 如果符號類型符合 (,亦即具有大於 0 的值) , <xref:ANTLRErrorStrategy%23reportMatch> 並 <xref:%23consume> 呼叫 以完成比對程式。 如果符號類型不相符, <xref:ANTLRErrorStrategy%23recoverInline> 則會在目前的錯誤策略上呼叫 以嘗試復原。 如果 <xref:%23getBuildParseTree> 是 true ,且 所 <xref:ANTLRErrorStrategy%23recoverInline> 傳回的符號的標記索引是 -1,則會呼叫 [Token) ] (xref:Parser%23createErrorNode (ParserRuleCoNtext%2C) ,將符號新增至剖析樹狀 <xref:ParserRuleContext%23addErrorNode(ErrorNode)> 結構。

function matchWildcard(): Token

傳回

Token

相符符號 @ 如果目前的輸入符號不符合萬用字元,而且錯誤策略無法從不相符的符號復原

繼承自 Parser.matchWildcard

notifyErrorListeners(string)

function notifyErrorListeners(msg: string)

參數

msg

string

繼承自 Parser.notifyErrorListeners

notifyErrorListeners(string, Token | null, RecognitionException | undefined)

function notifyErrorListeners(msg: string, offendingToken: Token | null, e: RecognitionException | undefined)

參數

msg

string

offendingToken

Token | null

e

RecognitionException | undefined

繼承自 Parser.notifyErrorListeners

precpred(RuleContext, number)

function precpred(localctx: RuleContext, precedence: number): boolean

參數

localctx

RuleContext

precedence

number

傳回

boolean

繼承自 Parser.precpred

pushNewRecursionContext(ParserRuleContext, number, number)

如同 <xref:%23enterRule> ,但用於遞迴規則。 將目前內容設為傳入 localctx 的子系。

function pushNewRecursionContext(localctx: ParserRuleContext, state: number, ruleIndex: number)

參數

localctx

ParserRuleContext

state

number

ruleIndex

number

繼承自 Parser.pushNewRecursionCoNtext

removeErrorListener(ANTLRErrorListener<Token>)

function removeErrorListener(listener: ANTLRErrorListener<Token>)

參數

listener

ANTLRErrorListener<Token>

繼承自 Recognizer.removeErrorListener

removeErrorListeners()

function removeErrorListeners()

繼承自 Recognizer.removeErrorListeners

removeParseListener(ParseTreeListener)

從剖析接聽程式清單中移除 listener 。 如果 listenerundefined 或 尚未新增為剖析接聽程式,則此方法不會執行任何動作。

請參閱#addParseListener

function removeParseListener(listener: ParseTreeListener)

參數

listener

ParseTreeListener

要移除的接聽程式

繼承自 Parser.removeParseListener

removeParseListeners()

移除所有剖析接聽程式。

請參閱#addParseListener

function removeParseListeners()

繼承自 Parser.removeParseListeners

reset()

重設剖析器的狀態

function reset()

繼承自 Parser.reset

reset(boolean)

function reset(resetInput: boolean)

參數

resetInput

boolean

繼承自 Parser.reset

sempred(RuleContext | undefined, number, number)

function sempred(_localctx: RuleContext | undefined, ruleIndex: number, actionIndex: number): boolean

參數

_localctx

RuleContext | undefined

ruleIndex

number

actionIndex

number

傳回

boolean

繼承自 Recognizer.sempred

setProfile(boolean)

function setProfile(profile: boolean): Promise<void>

參數

profile

boolean

傳回

Promise<void>

繼承自 Parser.setProfile

unrollRecursionContexts(ParserRuleContext)

function unrollRecursionContexts(_parentctx: ParserRuleContext)

參數

_parentctx

ParserRuleContext

繼承自 Parser.unrollRecursionCoNtexts