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

标签 intellij-idea antlr antlr4

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

最佳答案

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

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

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

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

关于intellij-idea - 我们如何使用 Intellij ANTLR V4 插件测试 ANTLR Lexer 规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69081085/

相关文章:

Ubuntu apt-get 从不存在的文件安装错误

java - ANTLR4 语法仅匹配解析器规则的第一部分

java - 用 unicode 编写语法规则名称 [ANTLR 4]

java - ANTLR4 如何制作否定连接

antlr4 - 如何复制 RuleContext

java - Intellij思想: Issues with building project using IBM JDK 7

intellij-idea - IntelliJ 快捷方式显示类中可搜索的方法的弹出窗口

mongodb - 用grails启动mongodb吗?

java - 如何编写 ANTLR 语法翻译器以返回带有方法的 java 类?

java - ANTLR - 如何使用生成的 AST 树?