Freigeben über


ExpressionAntlrParser class

Extends

Parser

Konstruktoren

ExpressionAntlrParser(TokenStream)

Eigenschaften

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

Geerbte Eigenschaften

atn

Rufen Sie die vom Erkennungsmodul für die Vorhersage verwendete serializedATN ab.

buildParseTree

Verfolgen Sie die <xref:ParserRuleContext> Objekte während der Analyse, und verbinden Sie sie mithilfe der <xref:ParserRuleContext%23children> Liste, sodass sie eine Analysestruktur bildet. Die <xref:ParserRuleContext>, die von der Startregel zurückgegeben wird, stellt den Stamm der Analysestruktur dar. Beachten Sie, dass Regelkontexte nur nach oben zeigen, wenn wir keine Analysestrukturen erstellen. Wenn eine Regel beendet wird, wird der Kontext zurückgegeben, der jedoch garbage collection wird, wenn niemand einen Verweis enthält. Es zeigt nach oben, aber niemand zeigt darauf.

Beim Erstellen von Analysestrukturen fügen wir alle diese Kontexte zu <xref:ParserRuleContext%23children> Liste hinzu. Kontexte sind dann keine Kandidaten für die Garbage Collection.

context
currentToken

Übereinstimmung muss das aktuelle Eingabesymbol zurückgeben, das in die Beschriftung für die zugeordnete Token ref eingefügt wird; z.B. x=ID.

EOF
errorHandler
inputStream

Legen Sie den Tokendatenstrom fest, und setzen Sie den Parser zurück.

interpreter

Legen Sie den ATN-Dolmetscher fest, der vom Erkennungsmodul für die Vorhersage verwendet wird.

isMatchedEOF
isTrace

Während einer Analyse ist manchmal hilfreich, um die Regeleingabe- und Exitereignisse sowie Token-Übereinstimmungen zu überwachen. Dies dient zum schnellen und schmutzigen Debuggen.

numberOfSyntaxErrors

Ruft die Anzahl der Während der Analyse gemeldeten Syntaxfehler ab. Dieser Wert wird jedes Mal erhöht, wenn <xref:%23notifyErrorListeners> aufgerufen wird.

Siehe #notifyErrorListeners

parseInfo
precedence

Rufen Sie die Rangfolgeebene für die Oberste Rangfolgenregel ab.

ruleContext
sourceName
state

Gibt an, dass die Erkennung den internen Zustand geändert hat, der mit dem übergebenen ATN-Zustand übereinstimmt. Auf diese Weise wissen wir immer, wo wir uns im ATN befinden, während der Parser weitergeht. Die Regelkontextobjekte bilden einen Stapel, mit dem wir den Stapel der Aufrufen von Regeln sehen können. Kombinieren Sie dies, und wir haben vollständige ATN-Konfigurationsinformationen.

tokenFactory

Methoden

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

Geerbte Methoden

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

Registriert listener, um Ereignisse während des Analysevorgangs zu empfangen. Zur Unterstützung von Ausgabe-erhaltungs-Grammatiktransformationen (einschließlich, aber nicht beschränkt auf das Entfernen von Links-Rekursionen, automatisierte Links-Factoring und optimierte Codegenerierung) können Aufrufe von Listenermethoden während der Analyse erheblich von Aufrufen von <xref:ParseTreeWalker%23DEFAULT> abweichen, die nach Abschluss der Analyse verwendet werden. Insbesondere können Regeleingabe- und Ausgangsereignisse während der Analyse in einer anderen Reihenfolge auftreten als nach dem Parser. Darüber hinaus können Aufrufe bestimmter Regeleingabemethoden weggelassen werden.

Mit den folgenden spezifischen Ausnahmen werden Aufrufe von Listenerereignissen deterministischen, d. h. für identische Eingaben sind die Aufrufe von Listenermethoden identisch.

  • Änderungen an der Grammatik, die zum Generieren von Code verwendet wird, können das Verhalten der Listeneraufrufe ändern.
  • Änderungen an den Befehlszeilenoptionen, die beim Generieren des Parsers an ANTLR 4 übergeben werden, können das Verhalten der Listeneraufrufe ändern.
  • Das Ändern der Version des ANTLR-Tools zum Generieren des Parsers kann das Verhalten der Listeneraufrufe ändern.
compileParseTreePattern(string, number)

Die bevorzugte Methode zum Abrufen eines Strukturmusters. Hier ist beispielsweise eine Beispielverwendung:

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)

Identisch mit [int)](xref:%23compileParseTreePattern(Zeichenfolge%2C), aber geben Sie einen CommonRegexLexer an, anstatt es von diesem Parser abzuleiten.

consume()

Verwenden und Zurückgeben des aktuellen Symbols. Wenn z. B. die folgende Eingabe mit A das aktuelle Lookahead-Symbol ist, verschiebt diese Funktion den Cursor auf B und gibt Azurück.

A B
^

Wenn sich der Parser nicht im Fehlerwiederherstellungsmodus befindet, wird das verbrauchte Symbol mithilfe von <xref:ParserRuleContext%23addChild(TerminalNode)>zur Analysestruktur hinzugefügt, und <xref:ParseTreeListener%23visitTerminal> wird für alle Analyselistener aufgerufen. Wenn der Parser im Fehlerwiederherstellungsmodus ist, wird das verbrauchte Symbol mithilfe von [Token)](xref:%23createErrorNode(ParserRuleContext%2C) zur Analysestruktur hinzugefügt, <xref:ParserRuleContext%23addErrorNode(ErrorNode)> und <xref:ParseTreeListener%23visitErrorNode> wird für alle Analyselistener aufgerufen.

createErrorNode(ParserRuleContext, Token)

So wird's gemacht: Erstellen eines Fehlerknotens aufgrund eines Tokens, das einem übergeordneten Element zugeordnet ist. Normalerweise ist der zu erstellende Fehlerknoten keine Funktion des übergeordneten Elements.

createTerminalNode(ParserRuleContext, Token)

Erstellen eines Tokenblattknotens, der einem übergeordneten Element zugeordnet ist. In der Regel ist der zu erstellende Terminalknoten keine Funktion des übergeordneten Elements.

dumpDFA()

Für das Debuggen und andere Zwecke.

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

Wird immer von generierten Parsern beim Eintrag zu einer Regel aufgerufen. Access-Feld <xref:%23_ctx> den aktuellen Kontext abrufen.

exitRule()
getATNWithBypassAlts()

Das ATN mit Umgehungsalternativen ist teuer zu erstellen, sodass wir es lazily erstellen. @ wenn der aktuelle Parser die serializedATN-Eigenschaft nicht implementiert.

getDFAStrings()

Für das Debuggen und andere Zwecke.

getErrorHeader(RecognitionException)

Was ist der Fehlerheader, normalerweise Zeilen-/Zeichenpositionsinformationen?

getErrorListenerDispatch()
getErrorListeners()
getExpectedTokens()

Berechnet den Satz von Eingabesymbolen, die dem aktuellen Parserstatus bzw. Kontext folgen können, wie durch <xref:%23getState> bzw. <xref:%23getContext>angegeben.

Siehe ATN#getExpectedTokens(int, RuleContext)

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

Rufen Sie den Index einer Regel (d. h. RULE_ruleName Feld) oder -1 ab, wenn sie nicht gefunden wurde.

getRuleIndexMap()

Dient zum Abrufen einer Zuordnung von Regelnamen zu Regelindizes. Wird für die XPath- und Strukturmusterkompilierung verwendet.

getRuleInvocationStack(RuleContext)

Rückgabeliste<Zeichenfolge> der Regelnamen in Ihrer Parserinstanz, die zu einem Aufruf der aktuellen Regel führt. Sie können außer Kraft setzen, wenn Sie weitere Details benötigen, z. B. die Datei-/Zeileninformationen dazu, wo in der ATN-Regel aufgerufen wird. Dies ist sehr nützlich für Fehlermeldungen.

getTokenType(string)
getTokenTypeMap()

Dient zum Abrufen einer Zuordnung von Tokennamen zu Tokentypen. Wird für die XPath- und Strukturmusterkompilierung verwendet.

inContext(string)
isExpectedToken(number)

Überprüft, ob symbol dem aktuellen Status im ATN folgen kann. Das Verhalten dieser Methode entspricht der folgenden Methode, wird jedoch so implementiert, dass der vollständige kontextabhängige Folgesatz nicht explizit erstellt werden muss.

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

Entspricht dem aktuellen Eingabesymbol für ttype. Wenn der Symboltyp übereinstimmt, werden <xref:ANTLRErrorStrategy%23reportMatch> und <xref:%23consume> aufgerufen, um den Übereinstimmungsprozess abzuschließen. Wenn der Symboltyp nicht übereinstimmt, wird <xref:ANTLRErrorStrategy%23recoverInline> für die aktuelle Fehlerstrategie aufgerufen, um die Wiederherstellung zu versuchen. Wenn <xref:%23getBuildParseTree>true ist und der Tokenindex des von <xref:ANTLRErrorStrategy%23recoverInline> zurückgegebenen Symbols -1 ist, wird das Symbol zur Analysestruktur hinzugefügt, indem [Token)](xref:%23createErrorNode(ParserRuleContext%2C) aufgerufen wird, dann <xref:ParserRuleContext%23addErrorNode(ErrorNode)>.

matchWildcard()

Zuordnen des aktuellen Eingabesymbols als Wildcard. Wenn der Symboltyp übereinstimmt (d. h. einen Wert größer als 0 hat), werden <xref:ANTLRErrorStrategy%23reportMatch> und <xref:%23consume> aufgerufen, um den Übereinstimmungsprozess abzuschließen. Wenn der Symboltyp nicht übereinstimmt, wird <xref:ANTLRErrorStrategy%23recoverInline> für die aktuelle Fehlerstrategie aufgerufen, um die Wiederherstellung zu versuchen. Wenn <xref:%23getBuildParseTree>true ist und der Tokenindex des von <xref:ANTLRErrorStrategy%23recoverInline> zurückgegebenen Symbols -1 ist, wird das Symbol zur Analysestruktur hinzugefügt, indem [Token)](xref:Parser%23createErrorNode(ParserRuleContext%2C) aufgerufen wird, <xref:ParserRuleContext%23addErrorNode(ErrorNode)>.

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

Wie <xref:%23enterRule>, aber für rekursive Regeln. Machen Sie den aktuellen Kontext zum untergeordneten Element des eingehenden Localctx.

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

Entfernen Sie listener aus der Liste der Analyselistener. Wenn listenerundefined ist oder nicht als Analyselistener hinzugefügt wurde, führt diese Methode nichts aus.

Siehe #addParseListener

removeParseListeners()

Entfernen Sie alle Analyselistener.

Siehe #addParseListener

reset()

Zurücksetzen des Zustands des Parsers

reset(boolean)
setProfile(boolean)
unrollRecursionContexts(ParserRuleContext)

Details zum Konstruktor

ExpressionAntlrParser(TokenStream)

new ExpressionAntlrParser(input: TokenStream)

Parameter

input

TokenStream

Details zur Eigenschaft

ARROW

public static ARROW: 27 = 27

Eigenschaftswert

27

ASTERISK

public static ASTERISK: 6 = 6

Eigenschaftswert

6

CLOSE_BRACKET

public static CLOSE_BRACKET: 19 = 19

Eigenschaftswert

19

CLOSE_CURLY_BRACKET

public static CLOSE_CURLY_BRACKET: 24 = 24

Eigenschaftswert

24

CLOSE_SQUARE_BRACKET

public static CLOSE_SQUARE_BRACKET: 22 = 22

Eigenschaftswert

22

COLON

public static COLON: 26 = 26

Eigenschaftswert

26

COMMA

public static COMMA: 25 = 25

Eigenschaftswert

25

DOT

public static DOT: 20 = 20

Eigenschaftswert

20

DOUBLE_AND

public static DOUBLE_AND: 12 = 12

Eigenschaftswert

12

DOUBLE_EQUAL

public static DOUBLE_EQUAL: 9 = 9

Eigenschaftswert

9

DOUBLE_VERTICAL_CYLINDER

public static DOUBLE_VERTICAL_CYLINDER: 13 = 13

Eigenschaftswert

13

ESCAPE_CHARACTER

public static ESCAPE_CHARACTER: 37 = 37

Eigenschaftswert

37

grammarFileName

string grammarFileName

Eigenschaftswert

string

IDENTIFIER

public static IDENTIFIER: 32 = 32

Eigenschaftswert

32

INVALID_TOKEN_DEFAULT_MODE

public static INVALID_TOKEN_DEFAULT_MODE: 35 = 35

Eigenschaftswert

35

LESS_OR_EQUAl

public static LESS_OR_EQUAl: 16 = 16

Eigenschaftswert

16

LESS_THAN

public static LESS_THAN: 14 = 14

Eigenschaftswert

14

MORE_OR_EQUAL

public static MORE_OR_EQUAL: 17 = 17

Eigenschaftswert

17

MORE_THAN

public static MORE_THAN: 15 = 15

Eigenschaftswert

15

NEWLINE

public static NEWLINE: 33 = 33

Eigenschaftswert

33

NON

public static NON: 4 = 4

Eigenschaftswert

4

NOT_EQUAL

public static NOT_EQUAL: 10 = 10

Eigenschaftswert

10

NULL_COALESCE

public static NULL_COALESCE: 28 = 28

Eigenschaftswert

28

NUMBER

public static NUMBER: 30 = 30

Eigenschaftswert

30

OPEN_BRACKET

public static OPEN_BRACKET: 18 = 18

Eigenschaftswert

18

OPEN_CURLY_BRACKET

public static OPEN_CURLY_BRACKET: 23 = 23

Eigenschaftswert

23

OPEN_SQUARE_BRACKET

public static OPEN_SQUARE_BRACKET: 21 = 21

Eigenschaftswert

21

PERCENT

public static PERCENT: 8 = 8

Eigenschaftswert

8

PLUS

public static PLUS: 2 = 2

Eigenschaftswert

2

QUESTION_MARK

public static QUESTION_MARK: 29 = 29

Eigenschaftswert

29

ruleNames

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

Eigenschaftswert

string[]

ruleNames

string[] ruleNames

Eigenschaftswert

string[]

RULE_argsList

public static RULE_argsList: 5 = 5

Eigenschaftswert

5

RULE_expression

public static RULE_expression: 1 = 1

Eigenschaftswert

1

RULE_file

public static RULE_file: 0 = 0

Eigenschaftswert

0

RULE_key

public static RULE_key: 9 = 9

Eigenschaftswert

9

RULE_keyValuePair

public static RULE_keyValuePair: 8 = 8

Eigenschaftswert

8

RULE_keyValuePairList

public static RULE_keyValuePairList: 7 = 7

Eigenschaftswert

7

RULE_lambda

public static RULE_lambda: 6 = 6

Eigenschaftswert

6

RULE_primaryExpression

public static RULE_primaryExpression: 2 = 2

Eigenschaftswert

2

RULE_stringInterpolation

public static RULE_stringInterpolation: 3 = 3

Eigenschaftswert

3

RULE_textContent

public static RULE_textContent: 4 = 4

Eigenschaftswert

4

serializedATN

string serializedATN

Eigenschaftswert

string

SINGLE_AND

public static SINGLE_AND: 11 = 11

Eigenschaftswert

11

SLASH

public static SLASH: 7 = 7

Eigenschaftswert

7

STRING

public static STRING: 34 = 34

Eigenschaftswert

34

STRING_INTERPOLATION_START

public static STRING_INTERPOLATION_START: 1 = 1

Eigenschaftswert

1

SUBSTRACT

public static SUBSTRACT: 3 = 3

Eigenschaftswert

3

TEMPLATE

public static TEMPLATE: 36 = 36

Eigenschaftswert

36

TEXT_CONTENT

public static TEXT_CONTENT: 38 = 38

Eigenschaftswert

38

VOCABULARY

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

Eigenschaftswert

Vocabulary

vocabulary

Vocabulary vocabulary

Eigenschaftswert

Vocabulary

WHITESPACE

public static WHITESPACE: 31 = 31

Eigenschaftswert

31

XOR

public static XOR: 5 = 5

Eigenschaftswert

5

Geerbte Eigenschaftsdetails

atn

Rufen Sie die vom Erkennungsmodul für die Vorhersage verwendete serializedATN ab.

atn: ATN

Eigenschaftswert

ATN

von Recognizer.atn geerbt

buildParseTree

Verfolgen Sie die <xref:ParserRuleContext> Objekte während der Analyse, und verbinden Sie sie mithilfe der <xref:ParserRuleContext%23children> Liste, sodass sie eine Analysestruktur bildet. Die <xref:ParserRuleContext>, die von der Startregel zurückgegeben wird, stellt den Stamm der Analysestruktur dar. Beachten Sie, dass Regelkontexte nur nach oben zeigen, wenn wir keine Analysestrukturen erstellen. Wenn eine Regel beendet wird, wird der Kontext zurückgegeben, der jedoch garbage collection wird, wenn niemand einen Verweis enthält. Es zeigt nach oben, aber niemand zeigt darauf.

Beim Erstellen von Analysestrukturen fügen wir alle diese Kontexte zu <xref:ParserRuleContext%23children> Liste hinzu. Kontexte sind dann keine Kandidaten für die Garbage Collection.

buildParseTree: boolean

Eigenschaftswert

boolean

Geerbt von Parser.buildParseTree

context

context: ParserRuleContext

Eigenschaftswert

ParserRuleContext

geerbt von Parser.context

currentToken

Übereinstimmung muss das aktuelle Eingabesymbol zurückgeben, das in die Beschriftung für die zugeordnete Token ref eingefügt wird; z.B. x=ID.

currentToken: Token

Eigenschaftswert

Token

von Parser.currentToken geerbt

EOF

static EOF: number

Eigenschaftswert

number

von Recognizer.EOF geerbt

errorHandler

errorHandler: ANTLRErrorStrategy

Eigenschaftswert

ANTLRErrorStrategy

von Parser.errorHandler geerbt

inputStream

Legen Sie den Tokendatenstrom fest, und setzen Sie den Parser zurück.

inputStream: TokenStream

Eigenschaftswert

TokenStream

geerbt von Parser.inputStream

interpreter

Legen Sie den ATN-Dolmetscher fest, der vom Erkennungsmodul für die Vorhersage verwendet wird.

interpreter: ParserATNSimulator

Eigenschaftswert

ParserATNSimulator

von Recognizer.interpreter geerbt

isMatchedEOF

isMatchedEOF: boolean

Eigenschaftswert

boolean

von Parser.isMatchedEOF geerbt

isTrace

Während einer Analyse ist manchmal hilfreich, um die Regeleingabe- und Exitereignisse sowie Token-Übereinstimmungen zu überwachen. Dies dient zum schnellen und schmutzigen Debuggen.

isTrace: boolean

Eigenschaftswert

boolean

von Parser.isTrace geerbt

numberOfSyntaxErrors

Ruft die Anzahl der Während der Analyse gemeldeten Syntaxfehler ab. Dieser Wert wird jedes Mal erhöht, wenn <xref:%23notifyErrorListeners> aufgerufen wird.

Siehe #notifyErrorListeners

numberOfSyntaxErrors: number

Eigenschaftswert

number

geerbt von Parser.numberOfSyntaxErrors

parseInfo

parseInfo: Promise<ParseInfo | undefined>

Eigenschaftswert

Promise<ParseInfo | undefined>

geerbt von Parser.parseInfo

precedence

Rufen Sie die Rangfolgeebene für die Oberste Rangfolgenregel ab.

precedence: number

Eigenschaftswert

number

geerbt von Parser.precedence

ruleContext

ruleContext: ParserRuleContext

Eigenschaftswert

ParserRuleContext

von Parser.ruleContext geerbt

sourceName

sourceName: string

Eigenschaftswert

string

geerbt von Parser.sourceName

state

Gibt an, dass die Erkennung den internen Zustand geändert hat, der mit dem übergebenen ATN-Zustand übereinstimmt. Auf diese Weise wissen wir immer, wo wir uns im ATN befinden, während der Parser weitergeht. Die Regelkontextobjekte bilden einen Stapel, mit dem wir den Stapel der Aufrufen von Regeln sehen können. Kombinieren Sie dies, und wir haben vollständige ATN-Konfigurationsinformationen.

state: number

Eigenschaftswert

number

geerbt von Recognizer.state

tokenFactory

tokenFactory: TokenFactory

Eigenschaftswert

TokenFactory

geerbt von Parser.tokenFactory

Details zur Methode

argsList()

function argsList(): ArgsListContext

Gibt zurück

expression()

function expression(): ExpressionContext

Gibt zurück

expression(number)

function expression(_p: number): ExpressionContext

Parameter

_p

number

Gibt zurück

file()

function file(): FileContext

Gibt zurück

key()

function key(): KeyContext

Gibt zurück

keyValuePair()

function keyValuePair(): KeyValuePairContext

Gibt zurück

keyValuePairList()

function keyValuePairList(): KeyValuePairListContext

Gibt zurück

lambda()

function lambda(): LambdaContext

Gibt zurück

primaryExpression()

function primaryExpression(): PrimaryExpressionContext

Gibt zurück

primaryExpression(number)

function primaryExpression(_p: number): PrimaryExpressionContext

Parameter

_p

number

Gibt zurück

sempred(RuleContext, number, number)

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

Parameter

_localctx

RuleContext

ruleIndex

number

predIndex

number

Gibt zurück

boolean

stringInterpolation()

function stringInterpolation(): StringInterpolationContext

Gibt zurück

textContent()

function textContent(): TextContentContext

Gibt zurück

Details zur geerbten Methode

action(RuleContext | undefined, number, number)

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

Parameter

_localctx

RuleContext | undefined

ruleIndex

number

actionIndex

number

geerbt von Recognizer.action

addErrorListener(ANTLRErrorListener<Token>)

function addErrorListener(listener: ANTLRErrorListener<Token>)

Parameter

listener

ANTLRErrorListener<Token>

Geerbt von Recognizer.addErrorListener

addParseListener(ParseTreeListener)

Registriert listener, um Ereignisse während des Analysevorgangs zu empfangen. Zur Unterstützung von Ausgabe-erhaltungs-Grammatiktransformationen (einschließlich, aber nicht beschränkt auf das Entfernen von Links-Rekursionen, automatisierte Links-Factoring und optimierte Codegenerierung) können Aufrufe von Listenermethoden während der Analyse erheblich von Aufrufen von <xref:ParseTreeWalker%23DEFAULT> abweichen, die nach Abschluss der Analyse verwendet werden. Insbesondere können Regeleingabe- und Ausgangsereignisse während der Analyse in einer anderen Reihenfolge auftreten als nach dem Parser. Darüber hinaus können Aufrufe bestimmter Regeleingabemethoden weggelassen werden.

Mit den folgenden spezifischen Ausnahmen werden Aufrufe von Listenerereignissen deterministischen, d. h. für identische Eingaben sind die Aufrufe von Listenermethoden identisch.

  • Änderungen an der Grammatik, die zum Generieren von Code verwendet wird, können das Verhalten der Listeneraufrufe ändern.
  • Änderungen an den Befehlszeilenoptionen, die beim Generieren des Parsers an ANTLR 4 übergeben werden, können das Verhalten der Listeneraufrufe ändern.
  • Das Ändern der Version des ANTLR-Tools zum Generieren des Parsers kann das Verhalten der Listeneraufrufe ändern.
function addParseListener(listener: ParseTreeListener)

Parameter

listener

ParseTreeListener

der hinzuzufügende Listener

Geerbt von Parser.addParseListener

compileParseTreePattern(string, number)

Die bevorzugte Methode zum Abrufen eines Strukturmusters. Hier ist beispielsweise eine Beispielverwendung:

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>

Parameter

pattern

string

patternRuleIndex

number

Gibt zurück

Promise<ParseTreePattern>

Geerbt von Parser.compileParseTreePattern

compileParseTreePattern(string, number, Lexer)

Identisch mit [int)](xref:%23compileParseTreePattern(Zeichenfolge%2C), aber geben Sie einen CommonRegexLexer an, anstatt es von diesem Parser abzuleiten.

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

Parameter

pattern

string

patternRuleIndex

number

lexer

Lexer

Gibt zurück

Promise<ParseTreePattern>

Geerbt von Parser.compileParseTreePattern

consume()

Verwenden und Zurückgeben des aktuellen Symbols. Wenn z. B. die folgende Eingabe mit A das aktuelle Lookahead-Symbol ist, verschiebt diese Funktion den Cursor auf B und gibt Azurück.

A B
^

Wenn sich der Parser nicht im Fehlerwiederherstellungsmodus befindet, wird das verbrauchte Symbol mithilfe von <xref:ParserRuleContext%23addChild(TerminalNode)>zur Analysestruktur hinzugefügt, und <xref:ParseTreeListener%23visitTerminal> wird für alle Analyselistener aufgerufen. Wenn der Parser im Fehlerwiederherstellungsmodus ist, wird das verbrauchte Symbol mithilfe von [Token)](xref:%23createErrorNode(ParserRuleContext%2C) zur Analysestruktur hinzugefügt, <xref:ParserRuleContext%23addErrorNode(ErrorNode)> und <xref:ParseTreeListener%23visitErrorNode> wird für alle Analyselistener aufgerufen.

function consume(): Token

Gibt zurück

Token

von Parser.consume geerbt

createErrorNode(ParserRuleContext, Token)

So wird's gemacht: Erstellen eines Fehlerknotens aufgrund eines Tokens, das einem übergeordneten Element zugeordnet ist. Normalerweise ist der zu erstellende Fehlerknoten keine Funktion des übergeordneten Elements.

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

Parameter

parent

ParserRuleContext

t

Token

Gibt zurück

ErrorNode

von Parser.createErrorNode geerbt

createTerminalNode(ParserRuleContext, Token)

Erstellen eines Tokenblattknotens, der einem übergeordneten Element zugeordnet ist. In der Regel ist der zu erstellende Terminalknoten keine Funktion des übergeordneten Elements.

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

Parameter

parent

ParserRuleContext

t

Token

Gibt zurück

TerminalNode

Geerbt von Parser.createTerminalNode

dumpDFA()

Für das Debuggen und andere Zwecke.

function dumpDFA()

geerbt von Parser.dumpDFA

enterLeftFactoredRule(ParserRuleContext, number, number)

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

Parameter

localctx

ParserRuleContext

state

number

ruleIndex

number

von Parser.enterLeftFactoredRule geerbt

enterOuterAlt(ParserRuleContext, number)

function enterOuterAlt(localctx: ParserRuleContext, altNum: number)

Parameter

localctx

ParserRuleContext

altNum

number

geerbt von Parser.enterOuterAlt

enterRecursionRule(ParserRuleContext, number, number, number)

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

Parameter

localctx

ParserRuleContext

state

number

ruleIndex

number

precedence

number

von Parser.enterRecursionRule geerbt

enterRule(ParserRuleContext, number, number)

Wird immer von generierten Parsern beim Eintrag zu einer Regel aufgerufen. Access-Feld <xref:%23_ctx> den aktuellen Kontext abrufen.

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

Parameter

localctx

ParserRuleContext

state

number

ruleIndex

number

geerbt von Parser.enterRule

exitRule()

function exitRule()

geerbt von Parser.exitRule

getATNWithBypassAlts()

Das ATN mit Umgehungsalternativen ist teuer zu erstellen, sodass wir es lazily erstellen. @ wenn der aktuelle Parser die serializedATN-Eigenschaft nicht implementiert.

function getATNWithBypassAlts(): ATN

Gibt zurück

ATN

Geerbt von Parser.getATNWithBypassAlts

getDFAStrings()

Für das Debuggen und andere Zwecke.

function getDFAStrings(): string[]

Gibt zurück

string[]

Von Parser.getDFAStrings geerbt

getErrorHeader(RecognitionException)

Was ist der Fehlerheader, normalerweise Zeilen-/Zeichenpositionsinformationen?

function getErrorHeader(e: RecognitionException): string

Parameter

e

RecognitionException

Gibt zurück

string

geerbt von Recognizer.getErrorHeader

getErrorListenerDispatch()

function getErrorListenerDispatch(): ParserErrorListener

Gibt zurück

ParserErrorListener

Geerbt von Parser.getErrorListenerDispatch

getErrorListeners()

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

Gibt zurück

Array<ANTLRErrorListener<Token>>

Geerbt von Recognizer.getErrorListeners

getExpectedTokens()

Berechnet den Satz von Eingabesymbolen, die dem aktuellen Parserstatus bzw. Kontext folgen können, wie durch <xref:%23getState> bzw. <xref:%23getContext>angegeben.

Siehe ATN#getExpectedTokens(int, RuleContext)

function getExpectedTokens(): IntervalSet

Gibt zurück

IntervalSet

Geerbt von Parser.getExpectedTokens

getExpectedTokensWithinCurrentRule()

function getExpectedTokensWithinCurrentRule(): IntervalSet

Gibt zurück

IntervalSet

Geerbt von Parser.getExpectedTokensWithinCurrentRule

getInvokingContext(number)

function getInvokingContext(ruleIndex: number): ParserRuleContext | undefined

Parameter

ruleIndex

number

Gibt zurück

ParserRuleContext | undefined

Von Parser.getInvokingContext geerbt

getParseListeners()

function getParseListeners(): ParseTreeListener[]

Gibt zurück

ParseTreeListener[]

Geerbt von Parser.getParseListeners

getRuleIndex(string)

Rufen Sie den Index einer Regel (d. h. RULE_ruleName Feld) oder -1 ab, wenn sie nicht gefunden wurde.

function getRuleIndex(ruleName: string): number

Parameter

ruleName

string

Gibt zurück

number

Von Parser.getRuleIndex geerbt

getRuleIndexMap()

Dient zum Abrufen einer Zuordnung von Regelnamen zu Regelindizes. Wird für die XPath- und Strukturmusterkompilierung verwendet.

function getRuleIndexMap(): ReadonlyMap<string, number>

Gibt zurück

ReadonlyMap<string, number>

Geerbt von Recognizer.getRuleIndexMap

getRuleInvocationStack(RuleContext)

Rückgabeliste<Zeichenfolge> der Regelnamen in Ihrer Parserinstanz, die zu einem Aufruf der aktuellen Regel führt. Sie können außer Kraft setzen, wenn Sie weitere Details benötigen, z. B. die Datei-/Zeileninformationen dazu, wo in der ATN-Regel aufgerufen wird. Dies ist sehr nützlich für Fehlermeldungen.

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

Parameter

ctx

RuleContext

Gibt zurück

string[]

Geerbt von Parser.getRuleInvocationStack

getTokenType(string)

function getTokenType(tokenName: string): number

Parameter

tokenName

string

Gibt zurück

number

Geerbt von Recognizer.getTokenType

getTokenTypeMap()

Dient zum Abrufen einer Zuordnung von Tokennamen zu Tokentypen. Wird für die XPath- und Strukturmusterkompilierung verwendet.

function getTokenTypeMap(): ReadonlyMap<string, number>

Gibt zurück

ReadonlyMap<string, number>

Geerbt von Recognizer.getTokenTypeMap

inContext(string)

function inContext(context: string): boolean

Parameter

context

string

Gibt zurück

boolean

geerbt von Parser.inContext

isExpectedToken(number)

Überprüft, ob symbol dem aktuellen Status im ATN folgen kann. Das Verhalten dieser Methode entspricht der folgenden Methode, wird jedoch so implementiert, dass der vollständige kontextabhängige Folgesatz nicht explizit erstellt werden muss.

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

Parameter

symbol

number

der zu überprüfende Symboltyp

Gibt zurück

boolean

true, wenn symbol dem aktuellen Status im ATN folgen kann, andernfalls false.

Geerbt von Parser.isExpectedToken

match(number)

Entspricht dem aktuellen Eingabesymbol für ttype. Wenn der Symboltyp übereinstimmt, werden <xref:ANTLRErrorStrategy%23reportMatch> und <xref:%23consume> aufgerufen, um den Übereinstimmungsprozess abzuschließen. Wenn der Symboltyp nicht übereinstimmt, wird <xref:ANTLRErrorStrategy%23recoverInline> für die aktuelle Fehlerstrategie aufgerufen, um die Wiederherstellung zu versuchen. Wenn <xref:%23getBuildParseTree>true ist und der Tokenindex des von <xref:ANTLRErrorStrategy%23recoverInline> zurückgegebenen Symbols -1 ist, wird das Symbol zur Analysestruktur hinzugefügt, indem [Token)](xref:%23createErrorNode(ParserRuleContext%2C) aufgerufen wird, dann <xref:ParserRuleContext%23addErrorNode(ErrorNode)>.

function match(ttype: number): Token

Parameter

ttype

number

der Tokentyp, der übereinstimmen soll

Gibt zurück

Token

das übereinstimmende Symbol @, wenn das aktuelle Eingabesymbol nicht mit ttype übereinstimmt, und die Fehlerstrategie konnte nicht aus dem nicht übereinstimmenen Symbol wiederhergestellt werden.

Geerbt von Parser.match

matchWildcard()

Zuordnen des aktuellen Eingabesymbols als Wildcard. Wenn der Symboltyp übereinstimmt (d. h. einen Wert größer als 0 hat), werden <xref:ANTLRErrorStrategy%23reportMatch> und <xref:%23consume> aufgerufen, um den Übereinstimmungsprozess abzuschließen. Wenn der Symboltyp nicht übereinstimmt, wird <xref:ANTLRErrorStrategy%23recoverInline> für die aktuelle Fehlerstrategie aufgerufen, um die Wiederherstellung zu versuchen. Wenn <xref:%23getBuildParseTree>true ist und der Tokenindex des von <xref:ANTLRErrorStrategy%23recoverInline> zurückgegebenen Symbols -1 ist, wird das Symbol zur Analysestruktur hinzugefügt, indem [Token)](xref:Parser%23createErrorNode(ParserRuleContext%2C) aufgerufen wird, <xref:ParserRuleContext%23addErrorNode(ErrorNode)>.

function matchWildcard(): Token

Gibt zurück

Token

das übereinstimmende Symbol @, wenn das aktuelle Eingabesymbol nicht mit einem Wildcard übereinstimmte und die Fehlerstrategie nicht aus dem nicht übereinstimmenden Symbol wiederhergestellt werden konnte.

Geerbt von Parser.matchWildcard

notifyErrorListeners(string)

function notifyErrorListeners(msg: string)

Parameter

msg

string

geerbt von Parser.notifyErrorListeners

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

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

Parameter

msg

string

offendingToken

Token | null

e

RecognitionException | undefined

geerbt von Parser.notifyErrorListeners

precpred(RuleContext, number)

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

Parameter

localctx

RuleContext

precedence

number

Gibt zurück

boolean

von Parser.precpred geerbt

pushNewRecursionContext(ParserRuleContext, number, number)

Wie <xref:%23enterRule>, aber für rekursive Regeln. Machen Sie den aktuellen Kontext zum untergeordneten Element des eingehenden Localctx.

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

Parameter

localctx

ParserRuleContext

state

number

ruleIndex

number

geerbt von Parser.pushNewRecursionContext

removeErrorListener(ANTLRErrorListener<Token>)

function removeErrorListener(listener: ANTLRErrorListener<Token>)

Parameter

listener

ANTLRErrorListener<Token>

Geerbt von Recognizer.removeErrorListener

removeErrorListeners()

function removeErrorListeners()

Geerbt von Recognizer.removeErrorListeners

removeParseListener(ParseTreeListener)

Entfernen Sie listener aus der Liste der Analyselistener. Wenn listenerundefined ist oder nicht als Analyselistener hinzugefügt wurde, führt diese Methode nichts aus.

Siehe #addParseListener

function removeParseListener(listener: ParseTreeListener)

Parameter

listener

ParseTreeListener

der zu entfernende Listener

Geerbt von Parser.removeParseListener

removeParseListeners()

Entfernen Sie alle Analyselistener.

Siehe #addParseListener

function removeParseListeners()

geerbt von Parser.removeParseListeners

reset()

Zurücksetzen des Zustands des Parsers

function reset()

geerbt von Parser.reset

reset(boolean)

function reset(resetInput: boolean)

Parameter

resetInput

boolean

geerbt von Parser.reset

setProfile(boolean)

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

Parameter

profile

boolean

Gibt zurück

Promise<void>

Geerbt von Parser.setProfile

unrollRecursionContexts(ParserRuleContext)

function unrollRecursionContexts(_parentctx: ParserRuleContext)

Parameter

_parentctx

ParserRuleContext

Geerbt von Parser.unrollRecursionContexts