Проблема компиляции исходного кода Java с использованием ANTLR v3 - PullRequest
6 голосов
/ 26 февраля 2011

Я пытаюсь запустить файл грамматики C ANTLR (DummyC.g) из командной строки, чтобы проанализировать исходные и заголовочные файлы C (ах).Когда я запускаю его с файлом antlr.jar, он генерирует файлы парсера и лексера.но когда я компилирую тестовый файл Main.java.Это дает ошибку отсутствующих пакетов ANTLR, как показано ниже.

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

Main.java: 1: пакет org.antlr.tool не существует import org.antlr.инструмент. ;
^ Main.java:2: пакет org.antlr.runtime не существует импорт 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 расположение: класс Main CommonTree tree = DummyCParser.start ("ах");

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 Ответ

6 голосов
/ 26 февраля 2011

Вы используете среду выполнения antlr, поэтому вам нужно будет указать jar-файлы antlr как часть пути к классам, чтобы компилятор мог найти используемые вами классы antlr, например,

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