Не удается найти символ при компиляции кода java - PullRequest
0 голосов
/ 03 марта 2020

Компиляция с использованием cmd: javac Test. java. Однако компиляция не удалась, сказав, что не может найти символ parser.prog (). Есть идеи?

import org.antlr.runtime.*;

    public class TestT {
        public static void main(String[] args) throws Exception {

            // Create an TLexer that feeds from that stream
            //TLexer lexer = new TLexer(new ANTLRInputStream(System.in));
            TLexer lexer = new TLexer(new ANTLRFileStream("input.txt"));

            // Create a stream of tokens fed by the lexer
            CommonTokenStream tokens = new CommonTokenStream(lexer);

            // Create a parser that feeds off the token stream
            TParser parser = new TParser(tokens);

            // Begin parsing at rule prog
            parser.prog();
        }
    }

1 Ответ

0 голосов
/ 03 марта 2020

В вашей T.g4 грамматике (или T.g) вы также должны иметь правило синтаксического анализатора с именем prog:

grammar T;

prog
 : ...
 ;

...

Глядя на сгенерированный синтаксический анализатор, я вижу, что у вас есть правило синтаксического анализатора как это:

filter
 : expression EOF
 ;

Используйте это вместо:

// Begin parsing at rule prog
parser.filter();
...