原文地址: http://blog.thesharpmind.com/?p=2002
这两种分析方法对应的就是LL和LR语法分析,也就是从产生式推导到终结字符和从终结字符规约到产生式的区别。
LL分析先拿到产生式左值。此时想要做的是确认这个产生式左值非终结符号是什么,即是由什么产生式右值构成的。对于不nullable的非终结符A,只有以FIRST(A)中的文法符号开头的文法符号串才有可能构成这个A。根据向前看的字符,与之于FIRST(A)匹配,匹配失败则报error。对于nullable的A,它可以被跳过,所以如果下一个文法符号在FOLLOW(A)中则可以用A->ε把A推导为空。迭代这个过程最终把开始符号作为根节点展开成一颗语法树。
语法分析:自顶向下 vs 自底向上
最新推荐文章于 2023-11-20 21:21:23 发布