LGFileParser class

扩展

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(字符串%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)

在进入规则时,始终由生成的分析程序调用。 Access 字段 <xref:%23_ctx> 获取当前上下文。

exitRule()
getATNWithBypassAlts()

使用旁路替代项的 ATN 非常昂贵,因此我们懒散地创建它。 @ 如果当前分析程序未实现 serializedATN 属性。

getDFAStrings()

用于调试和其他目的。

getErrorHeader(RecognitionException)

错误标头是什么,通常是行/字符位置信息?

getErrorListenerDispatch()
getErrorListeners()
getExpectedTokens()

计算可以分别遵循当前分析器状态和上下文的输入符号集,<xref:%23getState> 和 <xref:%23getContext>。

请参阅 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(字符串%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)

在进入规则时,始终由生成的分析程序调用。 Access 字段 <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:%23getState> 和 <xref:%23getContext>。

请参阅 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

如果 symbol 可以遵循 ATN 中的当前状态,则 true 否则 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