Java 如何在编辑语法后在Intellij中再次生成ANTLR识别器

Java 如何在编辑语法后在Intellij中再次生成ANTLR识别器,java,intellij-idea,antlr,Java,Intellij Idea,Antlr,我写了一个旋转机器人的语法 grammar RobotController; //Parser program: statement+; statement: rotateStatements; rotateStatements: ROTATE EOS; //lexer ROTATE: 'rotate'; EOS: ';'; 然后我创建了ANTLR识别器,它工作了,它用一些代码创建了一些Java文件。 后来我修改了语法 到 现在我再次创建ANTLR识别器,但先前生成的Java文件在系统中保

我写了一个旋转机器人的语法

grammar RobotController;

//Parser
program: statement+;
statement: rotateStatements;
rotateStatements: ROTATE EOS;

//lexer
ROTATE: 'rotate';
EOS: ';';
然后我创建了ANTLR识别器,它工作了,它用一些代码创建了一些Java文件。 后来我修改了语法 到

现在我再次创建ANTLR识别器,但先前生成的Java文件在系统中保持不变。不会向它们添加新代码


有人知道如何在修改语法后生成ANTLR识别器吗?

信息:重新启动Intellij并使缓存失效解决了问题

您是否通过Antlr4运行新语法,它应该创建java代码,然后通过javac编译器编译java文件?是的,我尝试过,在intellij中,通常通过右键单击并创建ANTLR识别器来完成。我编写了语法,然后构建了项目,并尝试创建识别器,但它不起作用顺便问一下,通过ANTLR运行语法是什么意思,第一次,我只是编写了语法并创建了识别器,它在没有运行的情况下就起作用了。你在Maven中使用ANTLR是什么意思?不要忘记清理如果你的答案回答了你的问题,请接受你的答案。(在StackOverflow上,回答和接受自己的问题是被广泛接受的)。哦,欢迎来到StackOverflow,即使你已经在这里有一段时间了。
grammar RobotController;

//Parser
program: statement+;
statement: rotateStatements;
rotateStatements: ROTATE (LPAREN direction RPAREN)? EOS;
direction: STRING;

//lexer
ROTATE: 'rotate';
LPAREN: '(';
RPAREN: ')';
EOS: ';';
STRING:  '"' (~[\r\n])* '"';