我们如何使用 Intellij ANTLR V4 插件测试 ANTLR Lexer 规则?

How can we test ANTLR Lexer Rules using Intellij ANTLR V4 plugin?

intellij 中的 ANTLR V4 插件提供了一个选项,可以使用右键单击 window 中的 'Test Rule' 选项来测试语法中的解析器规则。然而,这个选项对于 Lexer 规则是灰色的。如何使用此插件测试 Lexer 规则?

如果您按住 Ctrl 键并将鼠标悬停在预览面板源视图中的输入上,您可以在指针下获得标记的弹出式预览。您可以拉起 Intellij Plugin read.me on github 并搜索“ctrl key”作为示例。您仍然需要 select 一个解析规则来调试以获得此输出。

将鼠标悬停在所有内容上以获取全貌很有用,但有点乏味。

您可能会发现将 grun 别名与 -tokens 选项或 grun <GrammarName> tokens 选项一起使用更有用(使用 tokens 而不是开始规则只会运行 词法分析器并将 tokenStream 转储到系统输出)。它不是插件的一部分,但通常是从命令行(甚至是 IntelliJ 中的终端选项卡)验证词法分析器规则的非常有用的方法。您需要 运行 antlr 命令来生成您的源代码,并将 java 源代码编译为 运行 grun 别名。

ANTLR home page 上的快速入门向您展示了如何设置 grun 别名。