递归下降中左结合、右结合和优先级的实现

来源:互联网 发布:淘宝店铺头像怎么设置 编辑:程序博客网 时间:2024/06/08 04:35

http://fmt.cs.utwente.nl/courses/vertalerbouw/sheets/vb-04-antlr-1-4up.pdf

右结合

E->T op E | T  推导出 E->T [op [T [op [T op T]]]],故右递归即是右结合提取左因子E->T XX->op E |  emptyE->T XX->(op E)?   (代入上式)E->T (op E)?   EBNF也表示为E -> T [op E]

左结合
E->E op T | T     由这个 E->(((T op T) op T) op T),左递归即是左结合消除左递归E->T XX->op T X|  emptyE->T XX->(op T)*   (代入上式)E->T (op T)*   EBNF也表示为E -> T {op T}

优先级通过推导步数决定,推导出终结符的步数越多,优先级越低

原创粉丝点击