我已经开始学习ANTLR,并同时拥有2007年的书籍“ANTLR参考”和ANTLRWorks(一种用于创建语法的交互式工具)。而且,作为那种人,我从第3章开始(“不耐烦的快速浏览”)。ANTLR入门和避免常见错误
这是一个相当痛苦的过程,特别是因为一些错误是相当困难的(例如ANTLR: "missing attribute access on rule scope" problem这只是对我意味着“你有什么问题”)。另外我有一些非常简单的语法(只有3-4个产品)和简单的输入(2行),当运行时出现“OutOfMemory”错误。
ANTLR网站很有用,但有些分散,有些SO用户评论说(https://stackoverflow.com/questions/278480/good-tutorial-for-antlr)这本书和教程期望很高的入门级。正因为如此,我一直不愿意接近ANTLR的讨论名单。
LATER我们开始接触它了。简单可靠的例子可以轻松扩展,这将是有用的。这是值得精通的,因为我们改变了很多基于ANTLR的想法。
一个问题是ANTLR V3与V2有显着的变化。 SO(以及ANTLR页面)上的一个答案指的是不再可用的V2语法。
SO上的一些ANTLR问题对我有很大帮助,但发现它们有点特别。所以我想知道SO用户如何帮助学习过程减轻痛苦。 (如果您参考参考书,指向特定页面将会很有用)。
编辑。 @duffymo和@JamesAnderson已经证实ANTLR很努力 - 主要是因为解析器很困难。 (FWIW我已经通过LEX/YACC等,毫无疑问ANTLR更强大,更容易处理。)我认为在有可能避免污染的领域仍然有用,例如:
- 确保变量名
- 加包名词法分析器的正确大小写以及解析器
- 照顾过的规则顺序,因为它会影响优先
多的这些排序将是有益的。
虽然没有具体关于ANTLR,泰尔写道称为语言实现模式以后的书。这是一个*优秀*与新手和兽医都相关的工作。我| MVHO绝对必须为任何人解析工作。 – 2011-03-02 12:10:39