首页 > 解决方案 > 我们如何使用 Intellij ANTLR V4 插件测试 ANTLR Lexer 规则?

问题描述

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

标签: intellij-ideaantlrantlr4

解决方案


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

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

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

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


推荐阅读