parsing - ANTLR 中解析器规则和词法分析器规则之间的实际区别?

标签 parsing antlr lexical-analysis

理论上我理解分离解析器规则和词法分析器规则背后的理论,但是 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/

相关文章:

c++ - C++中读取转换字符的问题

javascript - 将 HEX ASCII 解析为数字?

Antlr:意外行为

java - Antlr token 优先级

parsing - 是否有一个简单的小语言编译器

c - flex - 没有入口点

javascript - 是否可以在文本区域中索引输入的文本?

java - 从以不必要的数据开头的 URL 中读取 Java 中的 JSON

java - Eclipse 中的 Antlr IDE 不工作

python - 如何使用文本分析来调查问卷回复?