package
0.0.0-20241204033232-7db03909b819
Repository: https://github.com/chanfung032/labs.git
Documentation: pkg.go.dev
# Packages
No description provided by the author
# README
Chop Chop
一个修改版过的 yacc,生成的解析器可以识别语法片段(可以构建出部分语法树)。
大致逻辑:
- 使用 yacc 生成 action & goto 表。
- 初始状态的确定:根据第一个 token(terminal)找出所有初始可能的状态。
- 然后对所有可能状态,shift reduce 进行规约。
- 如果 reduce 后栈为空,则遍历入栈的 non-terminal 所有可能的下一个状态。
- 最后如果最终规约的 token 数 > 3 ,ast 层数 > 1,则很有可能是一个符合语法规则的语法片段。
相关: