第55页 回溯解析器
- 章节名:回溯解析器
- 页码:第55页
两天前重新回到了第一章去看,因为想用Common Lisp来改写一下书中的代码。现在的进度就是在回溯解析器的实现这里,不得不抱怨一下。 作者在这一章里的实现的例子很不完整(其实包括前一章的LL(k)的解析器的实现也不完整),而且貌似还有点小错误。代码中出现了三个新的异常,一个是NoViableAltException,第二个是RecognitionException,最后一个是MismatchedTokenException。第一个是由作为驱动方法的stat抛出的,可以不捕捉;第二个在speculate_stat_alt系列方法中均有捕捉。但是第三个则貌似没有存在的必要? 实际上我觉得反过来了。在speculate_stat_alt系列方法中中应该捕捉的是MismatchedTokenException异常,而不是RecognitionException。其实反过来说也可以,因为重要的不是名字,而是对应关系。 当匹配失败时,Parser类中的match方法会抛出一个异常来表示这一次的测试失败了,可以知道这个异常会被顶层的speculate_stat_alt系列方法捕捉,因此speculate_stat_alt1(或者2)中的try...catch...捕捉的应该和match方法抛出的一样才对,这样才能正确处理。MismatchedTokenException和RecognitionException,两者只能有一个,改掉即可。 哦,我是试验出来的结论。
51人阅读
Liutos对本书的所有笔记 · · · · · ·
-
第76页 4.1为什么要构建树?
画图太麻烦了,大家要么自己看书,要么就靠想象吧=,= 今天上课看到了第四章了,其实本身也是...
-
第55页 回溯解析器
> 查看全部2篇
说明 · · · · · ·
表示其中内容是对原文的摘抄