您的位置:首页 > 其它

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

2012-04-04 21:17 148 查看
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 X
X->op E |  empty

E->T X
X->(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 X
X->op T X|  empty

E->T X
X->(op T)*   (代入上式)

E->T (op T)*   EBNF也表示为E -> T {op T}


优先级通过推导步数决定,推导出终结符的步数越多,优先级越低
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: