我正在阅读本书中有关 LR(0) 解析器的内容:Java 中的现代编译器实现。下面是基于这本书的解析表的样子。 http://postimg.org/image/hyowddu1h/
开始符号:S --> E$
制作:
(1) E --> T + E
(2) E --> T
(3) T --> x
我尝试根据给出的产品制作解析表,但我没有得到与书中相同的解析表。我想我正确地移动了符号。只是我的解析表与书中的解析表不同。(注意:我从状态 0 开始,而不是书中的状态 1)
那么解析表是唯一的,还是有什么经验法则可以决定首先将哪个符号转移到堆栈或如何正确标记解析状态?我总是先移动终端符号,然后移动非终端符号,如下所示: http: //postimg.org/image/76vbu2vu3/
提前致谢!