ExpressionAntlrParser class

扩展

Parser

继承属性

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

继承的方法

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)相同,但指定 CommonRegexLexer,而不是尝试从此分析器推断它。

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)
setProfile(boolean)
unrollRecursionContexts(ParserRuleContext)

构造函数详细信息

ExpressionAntlrParser(TokenStream)

new ExpressionAntlrParser(input: TokenStream)

参数

input

TokenStream

属性详细信息

ARROW

public static ARROW: 27 = 27

属性值

27

ASTERISK

public static ASTERISK: 6 = 6

属性值

6

CLOSE_BRACKET

public static CLOSE_BRACKET: 19 = 19

属性值

19

CLOSE_CURLY_BRACKET

public static CLOSE_CURLY_BRACKET: 24 = 24

属性值

24

CLOSE_SQUARE_BRACKET

public static CLOSE_SQUARE_BRACKET: 22 = 22

属性值

22

COLON

public static COLON: 26 = 26

属性值

26

COMMA

public static COMMA: 25 = 25

属性值

25

DOT

public static DOT: 20 = 20

属性值

20

DOUBLE_AND

public static DOUBLE_AND: 12 = 12

属性值

12

DOUBLE_EQUAL

public static DOUBLE_EQUAL: 9 = 9

属性值

9

DOUBLE_VERTICAL_CYLINDER

public static DOUBLE_VERTICAL_CYLINDER: 13 = 13

属性值

13

ESCAPE_CHARACTER

public static ESCAPE_CHARACTER: 37 = 37

属性值

37

grammarFileName

string grammarFileName

属性值

string

IDENTIFIER

public static IDENTIFIER: 32 = 32

属性值

32

INVALID_TOKEN_DEFAULT_MODE

public static INVALID_TOKEN_DEFAULT_MODE: 35 = 35

属性值

35

LESS_OR_EQUAl

public static LESS_OR_EQUAl: 16 = 16

属性值

16

LESS_THAN

public static LESS_THAN: 14 = 14

属性值

14

MORE_OR_EQUAL

public static MORE_OR_EQUAL: 17 = 17

属性值

17

MORE_THAN

public static MORE_THAN: 15 = 15

属性值

15

NEWLINE

public static NEWLINE: 33 = 33

属性值

33

NON

public static NON: 4 = 4

属性值

4

NOT_EQUAL

public static NOT_EQUAL: 10 = 10

属性值

10

NULL_COALESCE

public static NULL_COALESCE: 28 = 28

属性值

28

NUMBER

public static NUMBER: 30 = 30

属性值

30

OPEN_BRACKET

public static OPEN_BRACKET: 18 = 18

属性值

18

OPEN_CURLY_BRACKET

public static OPEN_CURLY_BRACKET: 23 = 23

属性值

23

OPEN_SQUARE_BRACKET

public static OPEN_SQUARE_BRACKET: 21 = 21

属性值

21

PERCENT

public static PERCENT: 8 = 8

属性值

8

PLUS

public static PLUS: 2 = 2

属性值

2

QUESTION_MARK

public static QUESTION_MARK: 29 = 29

属性值

29

ruleNames

public static ruleNames: string[] = [
		"file", "expression", "primaryExpression", "stringInterpolation", "textContent", 
		"argsList", "lambda", "keyValuePairList", "keyValuePair", "key",
	]

属性值

string[]

ruleNames

string[] ruleNames

属性值

string[]

RULE_argsList

public static RULE_argsList: 5 = 5

属性值

5

RULE_expression

public static RULE_expression: 1 = 1

属性值

1

RULE_file

public static RULE_file: 0 = 0

属性值

0

RULE_key

public static RULE_key: 9 = 9

属性值

9

RULE_keyValuePair

public static RULE_keyValuePair: 8 = 8

属性值

8

RULE_keyValuePairList

public static RULE_keyValuePairList: 7 = 7

属性值

7

RULE_lambda

public static RULE_lambda: 6 = 6

属性值

6

RULE_primaryExpression

public static RULE_primaryExpression: 2 = 2

属性值

2

RULE_stringInterpolation

public static RULE_stringInterpolation: 3 = 3

属性值

3

RULE_textContent

public static RULE_textContent: 4 = 4

属性值

4

serializedATN

string serializedATN

属性值

string

SINGLE_AND

public static SINGLE_AND: 11 = 11

属性值

11

SLASH

public static SLASH: 7 = 7

属性值

7

STRING

public static STRING: 34 = 34

属性值

34

STRING_INTERPOLATION_START

public static STRING_INTERPOLATION_START: 1 = 1

属性值

1

SUBSTRACT

public static SUBSTRACT: 3 = 3

属性值

3

TEMPLATE

public static TEMPLATE: 36 = 36

属性值

36

TEXT_CONTENT

public static TEXT_CONTENT: 38 = 38

属性值

38

VOCABULARY

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

属性值

Vocabulary

vocabulary

Vocabulary vocabulary

属性值

Vocabulary

WHITESPACE

public static WHITESPACE: 31 = 31

属性值

31

XOR

public static XOR: 5 = 5

属性值

5

继承属性详细信息

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

方法详细信息

argsList()

function argsList(): ArgsListContext

返回

expression()

function expression(): ExpressionContext

返回

expression(number)

function expression(_p: number): ExpressionContext

参数

_p

number

返回

file()

function file(): FileContext

返回

key()

function key(): KeyContext

返回

keyValuePair()

function keyValuePair(): KeyValuePairContext

返回

keyValuePairList()

function keyValuePairList(): KeyValuePairListContext

返回

lambda()

function lambda(): LambdaContext

返回

primaryExpression()

function primaryExpression(): PrimaryExpressionContext

返回

primaryExpression(number)

function primaryExpression(_p: number): PrimaryExpressionContext

参数

_p

number

返回

sempred(RuleContext, number, number)

function sempred(_localctx: RuleContext, ruleIndex: number, predIndex: number): boolean

参数

_localctx

RuleContext

ruleIndex

number

predIndex

number

返回

boolean

stringInterpolation()

function stringInterpolation(): StringInterpolationContext

返回

textContent()

function textContent(): TextContentContext

返回

继承的方法详细信息

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)相同,但指定 CommonRegexLexer,而不是尝试从此分析器推断它。

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

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

setProfile(boolean)

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

参数

profile

boolean

返回

Promise<void>

继承自 Parser.setProfile

unrollRecursionContexts(ParserRuleContext)

function unrollRecursionContexts(_parentctx: ParserRuleContext)

参数

_parentctx

ParserRuleContext

继承自 Parser.unrollRecursionContexts