2014-05-09 105 views
13

我在遍地查找了如何为IntelliJ IDEA配置antlr4插件。但我找不到任何东西。我只能安装插件。如果我为一个空项目手动添加.g4文件,我会在右键菜单中获得“生成ANTLR识别器”选项。就这些。我认为这是非常有前途的插件。任何人都可以告诉/指导我如何继续使用插件?如何为Intellij IDEA配置antlr4插件

谢谢

回答

1

你看过与它相关的页面吗?您还应该看到诸如预览窗口之类的工具窗口。

+0

我猜你是在谈论[这]。 Im(https://theantlrguy.atlassian.net/wiki/display/ANTLR4/Java+IDE+Integration)对不起,除了如何将插件添加到IDE之外,我没有看到任何其他内容。 – Morpheus

+0

是的,我看到Parser Tree窗口。但是如何运行语法? g4文件站在那里,我什么都做不了。顺便说一句,如果它是简单明显的Eclipse插件,我不会问这个问题。 – Morpheus

+0

在编辑器或导航器中单击鼠标右键,然后选择“测试ANTLR规则”?你在寻找一个RUN按钮吗?也可以随时阅读文档 –

15

我在IntelliJ 14上安装了ANTLR插件,并能够正常工作。一些小事使得它比预期的更难。

  • 插件设置是根据ANTLR文件(.g4)突出显示想要生成的.g4文件,然后右键单击以配置ANTLR。否则,ANTLR相关的上下文菜单变灰。
  • 输出目录设置与您的主目录有关,所以如果您设置了输出目录并没有看到任何内容,请尝试查看您的主目录或设置绝对路径。如果您根本没有设置输出目录,它似乎会生成相对于项目目录的Java工件。这就是我能够得到它的工作原理。
  • 右键单击ANTLR语法文件并从上下文菜单中选择Generate ANTLR Recognizer。编译'file.g4'选项在主Build菜单下对我没有任何帮助。
  • 将输出目录(默认情况下,项目根目录下的gen目录)标记为生成的源。右键单击gen并在上下文菜单的底部附近应该将'Mark Directory As'标记为'Generated Sources Root'作为子菜单。如果不将ANTLR输出目录标记为生成的源,IntelliJ将无法找到词法分析器和解析器的Java类文件,因此它不会编译它们,并且它不会清除您的语法错误其他程序文件引用ANTLR词法分析器/解析器。
  • 看来插件使用它包含的ANTLR版本而不是您在项目中使用的ANTLR版本作为库,因此使用该插件可以生成不会在您的项目中编译的Java源代码。

这里你可以看到一个Java ANTLR项目的一个简单的例子:https://stackoverflow.com/a/21552478/4239384

+0

谢谢,非常有帮助。 –

+0

我收到错误消息,说明生成的代码是版本4.5,但Antlr运行时是4.4。我不知道这个版本4.4从哪里来。我尝试使用antlr-4.5-complete.jar和maven之一。我在哪里可以确定或检查(甚至更改)运行时的版本? – Pille

+0

@J。 Simpson:你知道如何配置/禁用插入到生成的源文件中的生成的注释吗? –