antlr4 не удалось сгенерировать грамматику - PullRequest
0 голосов
/ 10 сентября 2018

Код tool.process(grammar, false); создает исключение нулевого указателя.

См. Мой код ниже:

package antlr;

import java.nio.file.Files;
import java.nio.file.Paths;
import org.antlr.v4.Tool;
import org.antlr.v4.tool.Grammar;
import org.antlr.v4.tool.ast.GrammarRootAST;
import org.junit.Test;

// License : Apache License Version 2.0  https://www.apache.org/licenses/LICENSE-2.0
/**
 *
 * @author Peter <peter@quantr.hk>
 */
public class TestDynamicParser {

    @Test
    public void testDynamicParser() throws Exception {
        Tool tool = new Tool();
        String content = new String(Files.readAllBytes(Paths.get(getClass().getResource("Hello.g4").toURI())));
        GrammarRootAST ast = tool.parseGrammarFromString(content);
        Grammar grammar = tool.createGrammar(ast);
        tool.process(grammar, false);
    }
}

Грамматика:

grammar Hello;
r   : 'hello' ID;
ID  : [a-z]+ ;
WS  : [ \t\r\n]+ -> skip ;

Ошибка:

java.lang.NullPointerException
    at antlr.TestDynamicParser.testDynamicParser(TestDynamicParser.java:23)

Как я могу предотвратить возникновение этой ошибки?

...