我正在尝试从命令行运行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);
}
}
可能是什么问题?
答案 0 :(得分:6)
您正在使用antlr运行时,因此您必须将antlr jar文件指定为类路径的一部分,以便编译器可以找到您使用的antlr类。
javac -classpath c:\java\antlr-3.3\lib\antlr-3.3-complete.jar Main.java