使用ANTLR v3编译Java Source时出现问题

时间:2011-02-26 14:29:10

标签: java parsing antlr

我正在尝试从命令行运行ANTLR C语法文件(DummyC.g)来解析C源文件和头文件(a.h)。当我使用antlr.jar文件运行它时,它会生成解析器和词法分析器文件。但是当我编译测试文件Main.java时。它给出了缺少ANTLR包的错误,如下所示。

C:\ antlr-2.7.6 \ test> javac Main.java

  

Main.java:1:package org.antlr.tool不存在   import org.antlr.tool。;
  ^   Main.java:2:包org.antlr.runtime不存在   import org.antlr.runtime。
;
  ^   Main.java:3:包org.antlr.runtime.tree不存在   import org.antlr.runtime.tree。;
  ^   Main.java:4:包org.antlr.stringtemplate不存在   import org.antlr.stringtemplate。
;
  ^   Main.java:8:找不到符号   符号:类CommonTree   位置:班级主要           CommonTree树= DummyCParser.start(“a.h”);

Main.java

import org.antlr.tool.*;   
import org.antlr.runtime.*;   
import org.antlr.runtime.tree.*;   
import org.antlr.stringtemplate.*;   

public class Main {   
    public static void main(String[] args) throws Exception {   
        CommonTree tree = DummyCParser.start("a.h");    
        DOTTreeGenerator gen = new DOTTreeGenerator();   
        StringTemplate st = gen.toDOT(tree);    
        System.out.println(st);   
      }  
}  

可能是什么问题?

1 个答案:

答案 0 :(得分:6)

您正在使用antlr运行时,因此您必须将antlr jar文件指定为类路径的一部分,以便编译器可以找到您使用的antlr类。

   javac -classpath c:\java\antlr-3.3\lib\antlr-3.3-complete.jar Main.java