2013-06-16 4 views
0

ANTLR을 사용하여 Java 코드를 구문 분석했으며 모든 것이 잘 작동합니다. 그러나 문제는 내가 Mac에서 그것을에서 실행할 때 다음과 같은 오류가 점점 :(CommonTree) parser.javaSource() 행의 antlr 오류

javac -cp antlrworks-1-1.4.3.jar *.java 
Main.java:18: cannot find symbol 
symbol : method javaSource() 
location: class JavaParser 
     CommonTree tree = (CommonTree)parser.javaSource().getTree(); 
              ^
1 error

답변

1

당신이 javaSource라는 규칙이없는 사용하고있는 자바 문법, 그래서 그 이름이 생성 된 코드에 존재하는 어떠한 방법. 내가 본 일부 Java 문법은 compilationUnit을 사용하지만 문법을 보지 않아도이를 수정하는 방법을 정확하게 알 수는 없습니다.

+0

나는 이것을 사용했다 : http://openjdk.java.net/projects/compiler-grammar/antlrworks/Java.g 이제 다른 자바 문법을 사용하려고 시도했지만 나에게 효과가없고 100 개의 오류가있다. 오히려 하나, 내가 자바 코드에 대한 AST를 생성해야합니다, 어떻게해야합니까? –

+0

@CuteAlsharif, Sam (280Z28)이 귀하의 질문에 답변했습니다. 사용중인 문법에'javaSource' 규칙이 없기 때문에 생성 된 파서에'javaSource' 메소드가 없습니다. 대신에'compilationUnit'을 사용해보십시오. 그러나 당신이 말하는 문법이 대서양 표준시를 생성하지는 않습니다. 즉, 'CommonTree'에 캐스트하면 예외가 발생합니다! –