LGTemplateParser class

Extends

Parser

コンストラクター

LGTemplateParser(TokenStream)

プロパティ

CASE
COMMENTS
DASH
DEFAULT
ELSE
ELSEIF
ESCAPE_CHARACTER
ESCAPE_CHARACTER_IN_STRUCTURE_BODY
EXPRESSION
EXPRESSION_IN_STRUCTURE_BODY
grammarFileName
IF
INVALID_TOKEN
LEFT_SQUARE_BRACKET
MULTILINE_PREFIX
MULTILINE_SUFFIX
NEWLINE
NEWLINE_IN_BODY
NEWLINE_IN_STRUCTURE_NAME
ruleNames
ruleNames
RULE_body
RULE_errorStructuredName
RULE_errorStructureLine
RULE_errorTemplateString
RULE_expression
RULE_expressionInStructure
RULE_ifCondition
RULE_ifConditionRule
RULE_ifElseTemplateBody
RULE_keyValueStructureLine
RULE_keyValueStructureValue
RULE_normalTemplateBody
RULE_normalTemplateString
RULE_structuredBodyContentLine
RULE_structuredBodyEndLine
RULE_structuredBodyNameLine
RULE_structuredTemplateBody
RULE_switchCaseRule
RULE_switchCaseStat
RULE_switchCaseTemplateBody
RULE_template
RULE_templateString
serializedATN
STRUCTURED_BODY_END
STRUCTURED_COMMENTS
STRUCTURED_NEWLINE
STRUCTURE_EQUALS
STRUCTURE_IDENTIFIER
STRUCTURE_NAME
STRUCTURE_OR_MARK
SWITCH
TEXT
TEXT_IN_STRUCTURE_BODY
TEXT_IN_STRUCTURE_NAME
VOCABULARY
vocabulary
WS
WS_IN_BODY
WS_IN_STRUCTURE_BODY
WS_IN_STRUCTURE_NAME

継承されたプロパティ

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

メソッド

body()
errorStructuredName()
errorStructureLine()
errorTemplateString()
expression()
expressionInStructure()
ifCondition()
ifConditionRule()
ifElseTemplateBody()
keyValueStructureLine()
keyValueStructureValue()
normalTemplateBody()
normalTemplateString()
structuredBodyContentLine()
structuredBodyEndLine()
structuredBodyNameLine()
structuredTemplateBody()
switchCaseRule()
switchCaseStat()
switchCaseTemplateBody()
template()
templateString()

継承されたメソッド

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

listener解析プロセス中にイベントを受信するように登録します。 出力を保持する文法変換 (左再帰の削除、自動左要素化、最適化されたコード生成など) をサポートするために、解析中のリスナー メソッドの呼び出しは、解析の完了後に使用される <xref:ParseTreeWalker%23DEFAULT> 呼び出しと大きく異なる場合があります。 特に、ルールの開始イベントと終了イベントは、パーサーの後とは異なる順序で解析中に発生する可能性があります。 また、特定のルール エントリ メソッドの呼び出しを省略することもできます。

次の特定の例外では、リスナー イベントの呼び出しは 決定的です。つまり、同じ入力の場合、リスナー メソッドの呼び出しは同じになります。

  • コードの生成に使用される文法を変更すると、リスナー呼び出しの動作が変更される可能性があります。
  • パーサーの生成時に ANTLR 4 に渡されるコマンド ライン オプションを変更すると、リスナー呼び出しの動作が変更される可能性があります。
  • パーサーの生成に使用する ANTLR ツールのバージョンを変更すると、リスナー呼び出しの動作が変更される可能性があります。
compileParseTreePattern(string, number)

ツリー パターンを取得するための推奨される方法。 たとえば、次に例を示します。

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

[int)](xref:%23compileParseTreePattern(String%2C) と同じですが、このパーサーから推測するのではなく、 を指定 LGFileLexer します。

consume()

現在のシンボルを使用して返します。 たとえば、次の入力が A 現在の先読み記号である場合、この関数は カーソルを に B 移動し、 を返します A

A B
^

パーサーがエラー回復モードでない場合、使用されたシンボルは を使用して <xref:ParserRuleContext%23addChild(TerminalNode)>解析ツリーに追加され、 <xref:ParseTreeListener%23visitTerminal> すべての解析リスナーで呼び出されます。 パーサーエラー回復モードの場合、使用されたシンボルは [Token)](xref:%23createErrorNode(ParserRuleContext%2C) を使用して解析ツリーに追加され<xref:ParserRuleContext%23addErrorNode(ErrorNode)><xref:ParseTreeListener%23visitErrorNode>、すべての解析リスナーで呼び出されます。

createErrorNode(ParserRuleContext, Token)

親に関連付けられたトークンを指定して、エラー ノードを作成する方法。 通常、作成するエラー ノードは親の関数ではありません。

createTerminalNode(ParserRuleContext, Token)

親に関連付けられているトークン リーフ ノードを作成する方法。 通常、作成するターミナル ノードは親の関数ではありません。

dumpDFA()

デバッグやその他の目的のため。

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

ルールへの入力時に、生成されたパーサーによって常に呼び出されます。 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)

ATN の現在の状態に従うことができるかどうかを symbol 確認します。 このメソッドの動作は次と同じですが、完全な状況依存のフォロー セットを明示的に構築する必要がないように実装されています。

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

に対して現在の入力シンボルを照合します ttype。 シンボルの種類が一致し<xref:%23consume>、<xref:ANTLRErrorStrategy%23reportMatch>一致プロセスを完了するために が呼び出される場合。 シンボルの種類が一致しない場合は、 <xref:ANTLRErrorStrategy%23recoverInline> 現在のエラー戦略で が呼び出され、復旧が試行されます。 が true で、 によって<xref:ANTLRErrorStrategy%23recoverInline>返されるシンボルのトークン インデックスが -1 の場合<xref:%23getBuildParseTree>、シンボルは [Token)](xref:%23createErrorNode(ParserRuleContext%2C) を呼び出して解析ツリーに追加されます<xref:ParserRuleContext%23addErrorNode(ErrorNode)>。

matchWildcard()

現在の入力シンボルをワイルドカードとして照合します。 シンボルの種類が一致する場合 (つまり、値が 0 より大きい場合) <xref:ANTLRErrorStrategy%23reportMatch><xref:%23consume> 、一致プロセスを完了するために が呼び出されます。 シンボルの種類が一致しない場合は、 <xref:ANTLRErrorStrategy%23recoverInline> 現在のエラー戦略で が呼び出され、復旧が試行されます。 が true で、 によって<xref:ANTLRErrorStrategy%23recoverInline>返されるシンボルのトークン インデックスが -1 の場合<xref:%23getBuildParseTree>、シンボルは [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 します。 が undefined または が解析リスナーとして追加されていない場合listener、このメソッドは何も行いません。

「#addParseListener」を参照してください

removeParseListeners()

すべての解析リスナーを削除します。

「#addParseListener」を参照してください

reset()

パーサーの状態をリセットする

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

コンストラクターの詳細

LGTemplateParser(TokenStream)

new LGTemplateParser(input: TokenStream)

パラメーター

input

TokenStream

プロパティの詳細

CASE

public static CASE: 14 = 14

プロパティ値

14

COMMENTS

public static COMMENTS: 3 = 3

プロパティ値

3

DASH

public static DASH: 4 = 4

プロパティ値

4

DEFAULT

public static DEFAULT: 15 = 15

プロパティ値

15

ELSE

public static ELSE: 12 = 12

プロパティ値

12

ELSEIF

public static ELSEIF: 11 = 11

プロパティ値

11

ESCAPE_CHARACTER

public static ESCAPE_CHARACTER: 16 = 16

プロパティ値

16

ESCAPE_CHARACTER_IN_STRUCTURE_BODY

public static ESCAPE_CHARACTER_IN_STRUCTURE_BODY: 31 = 31

プロパティ値

31

EXPRESSION

public static EXPRESSION: 17 = 17

プロパティ値

17

EXPRESSION_IN_STRUCTURE_BODY

public static EXPRESSION_IN_STRUCTURE_BODY: 32 = 32

プロパティ値

32

grammarFileName

string grammarFileName

プロパティ値

string

IF

public static IF: 10 = 10

プロパティ値

10

INVALID_TOKEN

public static INVALID_TOKEN: 6 = 6

プロパティ値

6

LEFT_SQUARE_BRACKET

public static LEFT_SQUARE_BRACKET: 5 = 5

プロパティ値

5

MULTILINE_PREFIX

public static MULTILINE_PREFIX: 8 = 8

プロパティ値

8

MULTILINE_SUFFIX

public static MULTILINE_SUFFIX: 19 = 19

プロパティ値

19

NEWLINE

public static NEWLINE: 2 = 2

プロパティ値

2

NEWLINE_IN_BODY

public static NEWLINE_IN_BODY: 9 = 9

プロパティ値

9

NEWLINE_IN_STRUCTURE_NAME

public static NEWLINE_IN_STRUCTURE_NAME: 21 = 21

プロパティ値

21

ruleNames

public static ruleNames: string[] = [
		"template", "body", "structuredTemplateBody", "structuredBodyNameLine", 
		"errorStructuredName", "structuredBodyContentLine", "errorStructureLine", 
		"keyValueStructureLine", "keyValueStructureValue", "structuredBodyEndLine", 
		"normalTemplateBody", "templateString", "normalTemplateString", "errorTemplateString", 
		"ifElseTemplateBody", "ifConditionRule", "ifCondition", "switchCaseTemplateBody", 
		"switchCaseRule", "switchCaseStat", "expression", "expressionInStructure",
	]

プロパティ値

string[]

ruleNames

string[] ruleNames

プロパティ値

string[]

RULE_body

public static RULE_body: 1 = 1

プロパティ値

1

RULE_errorStructuredName

public static RULE_errorStructuredName: 4 = 4

プロパティ値

4

RULE_errorStructureLine

public static RULE_errorStructureLine: 6 = 6

プロパティ値

6

RULE_errorTemplateString

public static RULE_errorTemplateString: 13 = 13

プロパティ値

13

RULE_expression

public static RULE_expression: 20 = 20

プロパティ値

20

RULE_expressionInStructure

public static RULE_expressionInStructure: 21 = 21

プロパティ値

21

RULE_ifCondition

public static RULE_ifCondition: 16 = 16

プロパティ値

16

RULE_ifConditionRule

public static RULE_ifConditionRule: 15 = 15

プロパティ値

15

RULE_ifElseTemplateBody

public static RULE_ifElseTemplateBody: 14 = 14

プロパティ値

14

RULE_keyValueStructureLine

public static RULE_keyValueStructureLine: 7 = 7

プロパティ値

7

RULE_keyValueStructureValue

public static RULE_keyValueStructureValue: 8 = 8

プロパティ値

8

RULE_normalTemplateBody

public static RULE_normalTemplateBody: 10 = 10

プロパティ値

10

RULE_normalTemplateString

public static RULE_normalTemplateString: 12 = 12

プロパティ値

12

RULE_structuredBodyContentLine

public static RULE_structuredBodyContentLine: 5 = 5

プロパティ値

5

RULE_structuredBodyEndLine

public static RULE_structuredBodyEndLine: 9 = 9

プロパティ値

9

RULE_structuredBodyNameLine

public static RULE_structuredBodyNameLine: 3 = 3

プロパティ値

3

RULE_structuredTemplateBody

public static RULE_structuredTemplateBody: 2 = 2

プロパティ値

2

RULE_switchCaseRule

public static RULE_switchCaseRule: 18 = 18

プロパティ値

18

RULE_switchCaseStat

public static RULE_switchCaseStat: 19 = 19

プロパティ値

19

RULE_switchCaseTemplateBody

public static RULE_switchCaseTemplateBody: 17 = 17

プロパティ値

17

RULE_template

public static RULE_template: 0 = 0

プロパティ値

0

RULE_templateString

public static RULE_templateString: 11 = 11

プロパティ値

11

serializedATN

string serializedATN

プロパティ値

string

STRUCTURED_BODY_END

public static STRUCTURED_BODY_END: 27 = 27

プロパティ値

27

STRUCTURED_COMMENTS

public static STRUCTURED_COMMENTS: 24 = 24

プロパティ値

24

STRUCTURED_NEWLINE

public static STRUCTURED_NEWLINE: 26 = 26

プロパティ値

26

STRUCTURE_EQUALS

public static STRUCTURE_EQUALS: 29 = 29

プロパティ値

29

STRUCTURE_IDENTIFIER

public static STRUCTURE_IDENTIFIER: 28 = 28

プロパティ値

28

STRUCTURE_NAME

public static STRUCTURE_NAME: 22 = 22

プロパティ値

22

STRUCTURE_OR_MARK

public static STRUCTURE_OR_MARK: 30 = 30

プロパティ値

30

SWITCH

public static SWITCH: 13 = 13

プロパティ値

13

TEXT

public static TEXT: 18 = 18

プロパティ値

18

TEXT_IN_STRUCTURE_BODY

public static TEXT_IN_STRUCTURE_BODY: 33 = 33

プロパティ値

33

TEXT_IN_STRUCTURE_NAME

public static TEXT_IN_STRUCTURE_NAME: 23 = 23

プロパティ値

23

VOCABULARY

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

プロパティ値

Vocabulary

vocabulary

Vocabulary vocabulary

プロパティ値

Vocabulary

WS

public static WS: 1 = 1

プロパティ値

1

WS_IN_BODY

public static WS_IN_BODY: 7 = 7

プロパティ値

7

WS_IN_STRUCTURE_BODY

public static WS_IN_STRUCTURE_BODY: 25 = 25

プロパティ値

25

WS_IN_STRUCTURE_NAME

public static WS_IN_STRUCTURE_NAME: 20 = 20

プロパティ値

20

継承されたプロパティの詳細

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

メソッドの詳細

body()

function body(): BodyContext

戻り値

errorStructuredName()

function errorStructuredName(): ErrorStructuredNameContext

戻り値

errorStructureLine()

function errorStructureLine(): ErrorStructureLineContext

戻り値

errorTemplateString()

function errorTemplateString(): ErrorTemplateStringContext

戻り値

expression()

function expression(): ExpressionContext

戻り値

expressionInStructure()

function expressionInStructure(): ExpressionInStructureContext

戻り値

ifCondition()

function ifCondition(): IfConditionContext

戻り値

ifConditionRule()

function ifConditionRule(): IfConditionRuleContext

戻り値

ifElseTemplateBody()

function ifElseTemplateBody(): IfElseTemplateBodyContext

戻り値

keyValueStructureLine()

function keyValueStructureLine(): KeyValueStructureLineContext

戻り値

keyValueStructureValue()

function keyValueStructureValue(): KeyValueStructureValueContext

戻り値

normalTemplateBody()

function normalTemplateBody(): NormalTemplateBodyContext

戻り値

normalTemplateString()

function normalTemplateString(): NormalTemplateStringContext

戻り値

structuredBodyContentLine()

function structuredBodyContentLine(): StructuredBodyContentLineContext

戻り値

structuredBodyEndLine()

function structuredBodyEndLine(): StructuredBodyEndLineContext

戻り値

structuredBodyNameLine()

function structuredBodyNameLine(): StructuredBodyNameLineContext

戻り値

structuredTemplateBody()

function structuredTemplateBody(): StructuredTemplateBodyContext

戻り値

switchCaseRule()

function switchCaseRule(): SwitchCaseRuleContext

戻り値

switchCaseStat()

function switchCaseStat(): SwitchCaseStatContext

戻り値

switchCaseTemplateBody()

function switchCaseTemplateBody(): SwitchCaseTemplateBodyContext

戻り値

template()

function template(): TemplateContext

戻り値

templateString()

function templateString(): TemplateStringContext

戻り値

継承済みメソッドの詳細

action(RuleContext | undefined, number, number)

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

パラメーター

_localctx

RuleContext | undefined

ruleIndex

number

actionIndex

number

継承元 Recognizer.action

addErrorListener(ANTLRErrorListener<Token>)

function addErrorListener(listener: ANTLRErrorListener<Token>)

パラメーター

listener

ANTLRErrorListener<Token>

継承元 Recognizer.addErrorListener

addParseListener(ParseTreeListener)

listener解析プロセス中にイベントを受信するように登録します。 出力を保持する文法変換 (左再帰の削除、自動左要素化、最適化されたコード生成など) をサポートするために、解析中のリスナー メソッドの呼び出しは、解析の完了後に使用される <xref:ParseTreeWalker%23DEFAULT> 呼び出しと大きく異なる場合があります。 特に、ルールの開始イベントと終了イベントは、パーサーの後とは異なる順序で解析中に発生する可能性があります。 また、特定のルール エントリ メソッドの呼び出しを省略することもできます。

次の特定の例外では、リスナー イベントの呼び出しは 決定的です。つまり、同じ入力の場合、リスナー メソッドの呼び出しは同じになります。

  • コードの生成に使用される文法を変更すると、リスナー呼び出しの動作が変更される可能性があります。
  • パーサーの生成時に ANTLR 4 に渡されるコマンド ライン オプションを変更すると、リスナー呼び出しの動作が変更される可能性があります。
  • パーサーの生成に使用する ANTLR ツールのバージョンを変更すると、リスナー呼び出しの動作が変更される可能性があります。
function addParseListener(listener: ParseTreeListener)

パラメーター

listener

ParseTreeListener

追加するリスナー

継承元 Parser.addParseListener

compileParseTreePattern(string, number)

ツリー パターンを取得するための推奨される方法。 たとえば、次に例を示します。

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

パラメーター

pattern

string

patternRuleIndex

number

戻り値

Promise<ParseTreePattern>

継承元 Parser.compileParseTreePattern

compileParseTreePattern(string, number, Lexer)

[int)](xref:%23compileParseTreePattern(String%2C) と同じですが、このパーサーから推測するのではなく、 を指定 LGFileLexer します。

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

パラメーター

pattern

string

patternRuleIndex

number

lexer

Lexer

戻り値

Promise<ParseTreePattern>

継承元 Parser.compileParseTreePattern

consume()

現在のシンボルを使用して返します。 たとえば、次の入力が A 現在の先読み記号である場合、この関数は カーソルを に B 移動し、 を返します A

A B
^

パーサーがエラー回復モードでない場合、使用されたシンボルは を使用して <xref:ParserRuleContext%23addChild(TerminalNode)>解析ツリーに追加され、 <xref:ParseTreeListener%23visitTerminal> すべての解析リスナーで呼び出されます。 パーサーエラー回復モードの場合、使用されたシンボルは [Token)](xref:%23createErrorNode(ParserRuleContext%2C) を使用して解析ツリーに追加され<xref:ParserRuleContext%23addErrorNode(ErrorNode)><xref:ParseTreeListener%23visitErrorNode>、すべての解析リスナーで呼び出されます。

function consume(): Token

戻り値

Token

継承元 Parser.consume

createErrorNode(ParserRuleContext, Token)

親に関連付けられたトークンを指定して、エラー ノードを作成する方法。 通常、作成するエラー ノードは親の関数ではありません。

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

パラメーター

parent

ParserRuleContext

t

Token

戻り値

ErrorNode

継承元 Parser.createErrorNode

createTerminalNode(ParserRuleContext, Token)

親に関連付けられているトークン リーフ ノードを作成する方法。 通常、作成するターミナル ノードは親の関数ではありません。

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

パラメーター

parent

ParserRuleContext

t

Token

戻り値

TerminalNode

継承元 Parser.createTerminalNode

dumpDFA()

デバッグやその他の目的のため。

function dumpDFA()

継承元 Parser.dumpDFA

enterLeftFactoredRule(ParserRuleContext, number, number)

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

パラメーター

localctx

ParserRuleContext

state

number

ruleIndex

number

継承元 Parser.enterLeftFactoredRule

enterOuterAlt(ParserRuleContext, number)

function enterOuterAlt(localctx: ParserRuleContext, altNum: number)

パラメーター

localctx

ParserRuleContext

altNum

number

継承元 Parser.enterOuterAlt

enterRecursionRule(ParserRuleContext, number, number, number)

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

パラメーター

localctx

ParserRuleContext

state

number

ruleIndex

number

precedence

number

継承元 Parser.enterRecursionRule

enterRule(ParserRuleContext, number, number)

ルールへの入力時に、生成されたパーサーによって常に呼び出されます。 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)

ATN の現在の状態に従うことができるかどうかを symbol 確認します。 このメソッドの動作は次と同じですが、完全な状況依存のフォロー セットを明示的に構築する必要がないように実装されています。

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

パラメーター

symbol

number

チェックするシンボルの種類

戻り値

boolean

true ATN の現在の状態に従うことができる場合 symbol は 。それ以外の場合 falseは 。

継承元 Parser.isExpectedToken

match(number)

に対して現在の入力シンボルを照合します ttype。 シンボルの種類が一致し<xref:%23consume>、<xref:ANTLRErrorStrategy%23reportMatch>一致プロセスを完了するために が呼び出される場合。 シンボルの種類が一致しない場合は、 <xref:ANTLRErrorStrategy%23recoverInline> 現在のエラー戦略で が呼び出され、復旧が試行されます。 が true で、 によって<xref:ANTLRErrorStrategy%23recoverInline>返されるシンボルのトークン インデックスが -1 の場合<xref:%23getBuildParseTree>、シンボルは [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> 現在のエラー戦略で が呼び出され、復旧が試行されます。 が true で、 によって<xref:ANTLRErrorStrategy%23recoverInline>返されるシンボルのトークン インデックスが -1 の場合<xref:%23getBuildParseTree>、シンボルは [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 します。 が undefined または が解析リスナーとして追加されていない場合listener、このメソッドは何も行いません。

「#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