次の方法で共有


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

Match は現在の入力シンボルを返す必要があります。これは、関連付けられているトークン 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)

ルールへの入力時に、生成されたパーサーによって常に呼び出されます。 アクセス フィールド <xref:%23_ctx> 現在のコンテキストを取得します。

exitRule()
getATNWithBypassAlts()

バイパスの代替手段を備えた ATN は、作成にコストがかかるため、遅延して作成します。 現在のパーサーが serializedATN プロパティを実装していない場合は @。

getDFAStrings()

デバッグなどの目的で使用します。

getErrorHeader(RecognitionException)

エラー ヘッダー (通常は行/文字の位置情報) は何ですか?

getErrorListenerDispatch()
getErrorListeners()
getExpectedTokens()

<xref:%23getState> と <xref:%23getContext>によって指定された、現在のパーサーの状態とコンテキストに従うことができる入力シンボルのセットをそれぞれ計算します。

ATN#getExpectedTokens(int, RuleContext) を参照してください

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

ルールのインデックス (RULE_ruleName フィールドなど) を取得するか、見つからない場合は -1 します。

getRuleIndexMap()

ルール名からルール インデックスへのマップを取得します。 XPath とツリー パターンのコンパイルに使用されます。

getRuleInvocationStack(RuleContext)

現在のルール<呼び出しまでのパーサー インスタンス内のルール名の文字列> リストを返します。 ATN 内のルールが呼び出される場所のファイル/行情報などの詳細が必要な場合は、オーバーライドできます。 これは、エラー メッセージに非常に役立ちます。

getTokenType(string)
getTokenTypeMap()

トークン名からトークン型へのマップを取得します。 XPath とツリー パターンのコンパイルに使用されます。

inContext(string)
isExpectedToken(number)

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

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

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

matchWildcard()

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

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

<xref:%23enterRule> と同様ですが、再帰ルールの場合も同様です。 現在のコンテキストを受信 localctx の子にします。

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

解析リスナーの一覧から listener を削除します。 listenerundefined されているか、解析リスナーとして追加されていない場合、このメソッドは何も行いません。

#addParseListener を参照してください

removeParseListeners()

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

#addParseListener を参照してください

reset()

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

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

コンストラクターの詳細

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

Match は現在の入力シンボルを返す必要があります。これは、関連付けられているトークン 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>

Inherited From 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)

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

Inherited From Recognizer.getErrorHeader

getErrorListenerDispatch()

function getErrorListenerDispatch(): ParserErrorListener

戻り値

ParserErrorListener

Parser.getErrorListenerDispatch から継承された

getErrorListeners()

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

戻り値

Array<ANTLRErrorListener<Token>>

Inherited From 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

Inherited From Recognizer.getTokenType

getTokenTypeMap()

トークン名からトークン型へのマップを取得します。 XPath とツリー パターンのコンパイルに使用されます。

function getTokenTypeMap(): ReadonlyMap<string, number>

戻り値

ReadonlyMap<string, number>

Inherited From 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()

Inherited From Recognizer.removeErrorListeners

removeParseListener(ParseTreeListener)

解析リスナーの一覧から listener を削除します。 listenerundefined されているか、解析リスナーとして追加されていない場合、このメソッドは何も行いません。

#addParseListener を参照してください

function removeParseListener(listener: ParseTreeListener)

パラメーター

listener

ParseTreeListener

削除するリスナー

Parser.removeParseListener から継承された

removeParseListeners()

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

#addParseListener を参照してください

function removeParseListeners()

Parser.removeParseListeners から継承された

reset()

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

function reset()

Parser.reset から継承された

reset(boolean)

function reset(resetInput: boolean)

パラメーター

resetInput

boolean

Parser.reset から継承された

sempred(RuleContext | undefined, number, number)

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

パラメーター

_localctx

RuleContext | undefined

ruleIndex

number

actionIndex

number

戻り値

boolean

Recognizer.sempred から継承された

setProfile(boolean)

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

パラメーター

profile

boolean

戻り値

Promise<void>

Parser.setProfile から継承された

unrollRecursionContexts(ParserRuleContext)

function unrollRecursionContexts(_parentctx: ParserRuleContext)

パラメーター

_parentctx

ParserRuleContext

Parser.unrollRecursionContexts から継承された