Как импортировать пользовательский класс Java в мою грамматику Antlr?

#java #antlr

#java #antlr

Вопрос:

В каталоге с именем Test у меня есть класс Java в файле Word.java , подобном этому:

 public class Word {
  public String value;

  public Word(String v) {
    value = v;
  }
}
 

И в том же каталоге мой тест грамматики antlr4.g4 выглядит так:

 grammar Test;    
@header {
  import Test.Word;
}
@members {
  ArrayList<Word> words = new ArrayList<Word>();
}

program
@after { System.out.println(words.toString()); }
  : (ID { words.add(new Word($ID.text)); } ) 
  ;
 

(В этом примере я просто использую Word вместо String, чтобы протестировать импорт. Грамматика и действия пока не моя проблема)

Теперь, когда я пытаюсь запустить java org.antlr.v4.runtime.misc.TestRig Test это результат:

блаблабла

Вызвано: java.lang.Исключение ClassNotFoundException: Test.Word

блаблабла

Это сводит меня с ума, как я могу импортировать свой класс в файл .g4? Я знаю, что пакеты Java по умолчанию могут быть загружены, но как мне импортировать мой пользовательский класс Java?

tl; dr: я создал класс java и хочу использовать его в своей грамматике antlr. Как я могу это сделать?

Комментарии:

1. Спасибо всем, кто отклонил мой вопрос без объяснения причин. Это правильный способ улучшить сообщество, понизить вопрос и позволить парню самому разобраться, что он сделал не так. Хорошая работа! : D

Ответ №1:

Ваш путь к классу должен включать каталог, содержащий Test .