antlr2構文からantlr4構文に文法ファイルを書き直す必要があり、次の質問があります。antlr2からantlr4クラス指定子、オプション、TOKENSなど
1)Bart Kiersには、文法、オプション、トークン、@header、@メンバーがこのSO postに厳密な順序があると記載されています。このantlr2.org postは、ヘッダーを表示することにオプションの前に一致しません。 antlr4の正しい順序(存在する場合)を示すリソースはありますか?
2)同じantlr2.org投稿には次のように書かれています。 "文法のオプションセクションが指定されている場合、 ';'クラス指定子の:antlr4で実行している場合
class MyParser extends Parser;
options { k=2; }
はしかし、任意のクラス指定子は、このエラーが作成されます。
syntax error: missing COLON at 'MyParser' while matching a rule
3)What happened to options in antlr4?には、ルールレベルのオプションは、一度に存在しないと言い
。warning(83): MyGrammar.g4:4:4: unsupported option k
warning(83): MyGrammar.g4:5:4: unsupported option exportVocab
warning(83): MyGrammar.g4:6:4: unsupported option codeGenMakeSwitchThreshold
warning(83): MyGrammar.g4:7:4: unsupported option codeGenBitsetTestThreshold
warning(83): MyGrammar.g4:8:4: unsupported option defaultErrorHandler
warning(83): MyGrammar.g4:9:4: unsupported option buildAST
私は。)antlr4の適応LL(*)構文解析アルゴリズムは、もはやKトークンlookheadを必要としないのでしょうか?
ii)は、exportVocabのantlr4に相当するものはありますか?
iii。)最適化codeGenMakeSwitchThresholdとcodeGenBitsetTestThresholdのantlr4に相当するものが存在するのか、それらは廃止されましたか?
iv)はdefaultErrorHandlerと同等ですか?
v。)私はantlr4がもはやASTを構築しないことを知っています。私はまだこれが現在生成されている* Parser.javaと* Lexer.javaをどのように使用するかにどのように影響するかを理解しようとしています。
4)私の現在の文法ファイルがTOKENSセクション
tokens {
ROOT; FOO; BAR; TRUE="true"; FALSE="false"; NULL="null";
}
を指定し、私は試してみて、それぞれを取り除くために、単一引用符とセミコロン、カンマへとコロンと等号に二重引用符を変更構文エラーですが、このエラーがあります:
mismatched input ':' expecting RBRACE
その他書き換えは、次のようになります。「真」と::
tokens {
ROOT; FOO; BAR; TRUE:'true'; FALSE:'false' ...
}
ので、私は取り除か「false」にし、TRUEとFALSEは、生成MyGrammar.tokensに表示されますが、私はそれが以前と同じように機能するかどうかはわかりません。
ありがとうございます!
私はANTLR3について話していました。 –
1つの質問に多くの質問があります。これはQ&Aスタイルのアプローチを打ち負かすので、これはお勧めできません。 –