Java не может найти символы ANTLR ParserRuleContext и RContext

Я пробую проект с использованием ANTLR4, и я слежу за этим руководство и этим вопрос.

Ниже приведен мой файл Drink.java.

import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.tree.*;
import static org.antlr.v4.runtime.CharStreams.fromFileName;

public class Drink {

public static void main (String [] args) {
            CharStream cs = fromFileName("test.txt");  //load the file

            DrinkLexer lexer = new DrinkLexer(cs);  //instantiate a lexer
            CommonTokenStream tokens = new CommonTokenStream(lexer); //scan stream for tokens
            DrinkParser parser = new DrinkParser(tokens);  //parse the tokens

            ParseTree tree = parser.drinkSentence(); // parse the content and get the tree
            DrinkWalker listener = new DrinkWalker();

            ParseTreeWalker walker = new ParseTreeWalker();
            walker.walk(listener,tree);
    }
}

и вот мой файл DrinkWalker.java

public class DrinkWalker extends DrinkBaseListener {
    @Override public void enterEveryRule(ParserRuleContext ctx) {  
        System.out.println("rule entered: " + ctx.getText());//code that executes per rule
    }
    public void enterR(DrinkParser.RContext ctx ) {
            System.out.println( "Entering R : " + ctx.ID().getText() );
    }

    public void exitR(DrinkParser.RContext ctx ) {
            System.out.println( "Exiting R" );
    }
}

Я скомпилировал их вручную и получаю следующие ошибки:

Override public void enterEveryRule(ParserRuleContext ctx) {
                                         ^
symbol:   class ParserRuleContext
location: class DrinkWalker

DrinkWalker.java:5: error: cannot find symbol
    public void enterR(DrinkParser.RContext ctx ) {
                                  ^
symbol:   class RContext
location: class DrinkParser
DrinkWalker.java:9: error: cannot find symbol
    public void exitR(DrinkParser.RContext ctx ) {
                                 ^
symbol:   class RContext
location: class DrinkParser

Какие функции RContext и ParserRuleContext упомянуты выше?

Это не повторяющийся вопрос. Предыдущий упомянутый вопрос касался Java в целом. Этот вопрос касается ANTLR.

Joel Murphy 10.10.2018 21:16

Эти конкретные ошибки возникают из-за того, что вам нужно добавить файл Antlr JAR в путь к классам. Пример на домашней странице antlr.org показывает один пример. Вам придется настроить путь в зависимости от того, где установлен ваш.

Joel Murphy 10.10.2018 21:30
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
397
0

Другие вопросы по теме