【发布时间】:2015-05-28 00:25:25
【问题描述】:
所以我最近问了一个question 关闭这个并得到了一个很好的答案。然而,所描述的步骤似乎更像是创建具体语法树的步骤。
LR解析过程中的每一次约简对应一个内部 解析树中的节点。减少的规则是内部 AST 节点,从堆栈中弹出的项目对应于 那个内部节点。为 goto 推送的项目对应于 内部节点,而由 shift 动作推送的节点对应于 AST 的叶子(令牌)。
将所有这些放在一起,您可以通过创建一个 每次进行减少和接线时都会有新的内部节点 适当地在一起。 ~克里斯·多德
我知道所采取的步骤暗示了解析树,但是我不想显式构建解析树。并且每次减少生成一个节点似乎会导致整个解析树。我考虑过,如果看到某个状态,我只构建一个节点。但是,这似乎无法正常工作。
【问题讨论】:
标签: java parsing tree abstract-syntax-tree lr