0

私はAntlrworks2を使用しています。「字句モード」が定義されている字句文法があります。レクサー文法をインポートする文法を組み合わせました。結合された文法からコードを生成した後、2つの.javaファイルを生成します。例:結合された文法ファイル名が「xyz.g4」の場合、Javaファイル名は「xyzLexer.java」、「xyzParser.java」です。しかし、Antlrworks2で[TestRigで実行]をクリックすると、コンソールで以下のエラーが発生します。

Compiling grammar files...
warning: Supported source version 'RELEASE_6' from annotation processor 'org.netbeans.modules.openide.modules.PatchedPublicProcessor' less than -source '1.7'
warning: Supported source version 'RELEASE_6' from annotation processor 'org.netbeans.modules.openide.util.ServiceProviderProcessor' less than -source '1.7'
warning: Supported source version 'RELEASE_6' from annotation processor 'org.netbeans.modules.openide.util.NamedServiceProcessor' less than -source '1.7'
warning: Supported source version 'RELEASE_6' from annotation processor 'org.netbeans.modules.openide.util.NbBundleProcessor' less than -source '1.7'
C:\Users\cc91kor\AppData\Local\Temp\TestRigTask-1361256016169\CDFCombinedGrammarLexer.java:144: error: cannot find symbol
        case 1: _mode = INSIDE_BRACKETS;  break;
                        ^
  symbol:   variable INSIDE_BRACKETS
  location: class CDFCombinedGrammarLexer
C:\Users\cc91kor\AppData\Local\Temp\TestRigTask-1361256016169\CDFCombinedGrammarLexer.java:149: error: cannot find symbol
        case 0: _mode = INSIDE_BRACKETS;  break;
                        ^
  symbol:   variable INSIDE_BRACKETS
  location: class CDFCombinedGrammarLexer
2 errors
4 warnings
Arguments: [CDFCombinedGrammar, vt, -tokens, -tree, -gui, C:\Users\cc91kor\Desktop\vt.txt]
Can't load CDFCombinedGrammar as lexer or parser

CDFCombinedGrammarLexer.java(上記の例ではxyzLexer.java)で観察したように、「字句モード」のコードは存在しません。実際のレクサーファイルから生成されたJavaファイルでモードのコードを見つけることができました。

以下は、実際のレクサーで生成されたJavaファイルで確認できるコードです。

public static final int INSIDE_BRACKETS = 1;
    public static String[] modeNames = {
        "DEFAULT_MODE", "INSIDE_BRACKETS"
    };

これに関する助けはありますか?お待ちしております!!!

前もって感謝します!

4

1 に答える 1

0

マルチモード レクサー文法のインポートは、ANTLR 4 ではまだサポートされていません。次の問題は、この機能の進行状況を追跡します。

マルチモードの字句解析文法のインポートをサポート

于 2013-02-19T16:46:28.663 に答える