Parsing 配置文件Antlr语法

Parsing 配置文件Antlr语法,parsing,profiling,antlr4,Parsing,Profiling,Antlr4,我在这里找到了OP要求分析ANTLTR语法的方法。 然而,答案有点不令人满意,因为它仅限于没有动作的语法,更重要的是,它是一个自动评测,将(如我所见)使用生成的lexer/parser的defaul构造函数来构造它 我需要分析一个语法,它确实包含动作,并且必须使用自定义构造函数来构造。因此,我需要能够自己实例化lexer+解析器,然后对其进行分析。 我找不到关于这个话题的任何信息。我知道IntelliJ有一个分析器,但它的工作原理与链接问题的答案中描述的非常相似(可能甚至是相同的) 有人知道我如

我在这里找到了OP要求分析ANTLTR语法的方法。
然而,答案有点不令人满意,因为它仅限于没有动作的语法,更重要的是,它是一个自动评测,将(如我所见)使用生成的lexer/parser的defaul构造函数来构造它

我需要分析一个语法,它确实包含动作,并且必须使用自定义构造函数来构造。因此,我需要能够自己实例化lexer+解析器,然后对其进行分析。
我找不到关于这个话题的任何信息。我知道IntelliJ有一个分析器,但它的工作原理与链接问题的答案中描述的非常相似(可能甚至是相同的)

有人知道我如何根据这种特殊需要来分析我的语法吗?我不需要任何花哨的GUI。如果我把结果打印到控制台或类似的东西上,我会很满意的

总而言之:我正在寻找一个工具或一个关于如何编写一些代码的提示,让我能够分析我的ANTLR语法(使用自实例化的lexer/parser)。

顺便说一句,我的目标语言是Java,所以我想分析器也必须是Java。

一个好的开始是将
Parser.setProfile()
设置为true,并在解析运行后检查从
Parser.getParseInfo()获得的信息。我还没有仔细查看评测结果提供的详细信息,但它位于ANTLR4的vscode扩展的todo列表中,为语法提供评测信息以帮助改进语法


从决策信息到特定规则的提示:有一个,它是到的索引。您可以通过此操作获得的
DecisionState
实例是一个
ATNState
子体,它允许从中获取一个。然后,可以将规则索引与解析器的
ruleNames
属性一起使用,以查找该规则的名称。该值也是用于规则枚举项的值。

这个问题非常广泛,因此很难在这里回答。相反,您可以先将
Parser.setProfile()
设置为true,然后在解析运行后检查从
Parser.getParseInfo()
中获得的内容。好的,我会试试。。。我甚至不知道有一个选项存在,它似乎涵盖了我所寻找的所有信息。如果你写了一个包含评论内容的答案(可能还有如何将decisionInfo与相应规则的名称联系起来),我会接受它作为我问题的正确答案。