2015-07-06 30 views
5

Z ostatecznego odwołania do ANTLR4 przebiegłem pierwszy przykład i wygenerowałem cel JAVA. W katalogu C: \ JavaLib mam antlr-4.5-complete.jar Kiedy próbuję skompilować go z;Próbka kompilująca wyjście ANTRL4

javac -classpath C:\JavaLib *.java 

Tworzy następujące komunikaty o błędach;

helloBaseListener.java:13: error: class HelloBaseListener is public, should be declared in a file named HelloBaseListener.java 
public class HelloBaseListener implements HelloListener { 
^
helloListener.java:9: error: class HelloListener is public, should be declared in a file named HelloListener.java 
public interface HelloListener extends ParseTreeListener { 
^
helloParser.java:12: error: class HelloParser is public, should be declared in a file named HelloParser.java 
public class HelloParser extends Parser { 
^
helloBaseListener.java:3: error: package org.antlr.v4.runtime does not exist 
import org.antlr.v4.runtime.ParserRuleContext; 
        ^
helloBaseListener.java:4: error: package org.antlr.v4.runtime.misc does not exist 
import org.antlr.v4.runtime.misc.NotNull; 
          ^
helloBaseListener.java:5: error: package org.antlr.v4.runtime.tree does not exist 
import org.antlr.v4.runtime.tree.ErrorNode; 
.... 

Co robię źle?

+0

klasa HelloBaseListener jest jawna, należy ją zadeklarować w pliku o nazwie HelloBaseListener.java –

Odpowiedz

5

Wystąpiły 2 problemy. Jednym z nich był plik o nazwie "Hello.g4", a nie "hello.g4", ponieważ gramatyka jest określona jako Hello. Drugi to ścieżka klasy, wymaga ścieżki i nazwy pliku jar, a także bieżącego katalogu. Uruchomiono następujące polecenie;

javac -classpath .;C:\JavaLib\antlr-4.5-complete.jar *.java