2013-02-19 6 views
0

Antlrworks2를 사용하고 있습니다. 거기에 '어휘 모드'가 정의 된 렉서 문법이 있습니다. 나는 렉서 문법을 가져 오는 문법을 결합했다. 결합 된 문법에서 코드를 생성 한 후 두 개의 .java 파일을 생성합니다. 예 : 결합 된 문법 파일 이름이 'xyz.g4'인 경우 java 파일 이름은 'xyzLexer.java', 'xyzParser.java'입니다. 하지만 Antlrworks2에서 'TestRig에서 실행'을 클릭하면 콘솔의 아래 오류가 발생합니다. 전 (위의 예에서는 xyzLexer.java) CDFCombinedGrammarLexer.java에서 관찰가져온 문법의 렉서 모드는 결합 된 문법에서 식별되지 않습니다. 'testRig에서 실행'을 클릭하면 컴파일 오류가 발생합니다. Antlrworks2

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 

는 '어휘 모드'의 코드가 존재하지 않는다. 실제 lexer 파일에서 생성 된 java 파일에서 mode에 대한 코드를 찾을 수 있습니다.

아래 코드는 실제 렉서에서 볼 수있는 코드입니다.

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

어떤 도움이 되나요? 나는 기다리고있다!

미리 감사드립니다.

답변