ExpressionAntlrParser class

扩展

Parser

构造函数

ExpressionAntlrParser(TokenStream)

属性

ARROW
ASTERISK
CLOSE_BRACKET
CLOSE_CURLY_BRACKET
CLOSE_SQUARE_BRACKET
COLON
COMMA
DOT
DOUBLE_AND
DOUBLE_EQUAL
DOUBLE_VERTICAL_CYLINDER
ESCAPE_CHARACTER
grammarFileName
IDENTIFIER
INVALID_TOKEN_DEFAULT_MODE
LESS_OR_EQUAl
LESS_THAN
MORE_OR_EQUAL
MORE_THAN
NEWLINE
NON
NOT_EQUAL
NULL_COALESCE
NUMBER
OPEN_BRACKET
OPEN_CURLY_BRACKET
OPEN_SQUARE_BRACKET
PERCENT
PLUS
QUESTION_MARK
ruleNames
ruleNames
RULE_argsList
RULE_expression
RULE_file
RULE_key
RULE_keyValuePair
RULE_keyValuePairList
RULE_lambda
RULE_primaryExpression
RULE_stringInterpolation
RULE_textContent
serializedATN
SINGLE_AND
SLASH
STRING
STRING_INTERPOLATION_START
SUBSTRACT
TEMPLATE
TEXT_CONTENT
VOCABULARY
vocabulary
WHITESPACE
XOR

继承属性

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

方法

argsList()
expression()
expression(number)
file()
key()
keyValuePair()
keyValuePairList()
lambda()
primaryExpression()
primaryExpression(number)
sempred(RuleContext, number, number)
stringInterpolation()
textContent()

继承的方法

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

如果 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

setProfile(boolean)

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

参数

profile

boolean

返回

Promise<void>

继承自 Parser.setProfile

unrollRecursionContexts(ParserRuleContext)

function unrollRecursionContexts(_parentctx: ParserRuleContext)

参数

_parentctx

ParserRuleContext

继承自 Parser.unrollRecursionContexts