理论上我理解分离解析器规则和词法分析器规则背后的理论,但是 ANTLR 中这两个语句之间的实际差异是什么:
my_rule: ... ;
MY_RULE: ... ;
它们会产生不同的 AST 树吗?性能不同?潜在的歧义?
最佳答案
... what are the practical differences between these two statements in ANTLR ...
MY_RULE
将用于标记您的输入源。它代表了您的语言的基本构建 block 。
my_rule
从解析器调用,它由零个或多个其他解析器规则或词法分析器生成的标记组成。
这就是区别。
Do they result in different AST trees? Different performance? ...
解析器使用词法分析器生成的标记构建 AST,因此这些问题(对我来说)毫无意义。词法分析器仅向解析器“提供”一维标记流。
关于parsing - ANTLR 中解析器规则和词法分析器规则之间的实际区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4297770/