Ll 分析,ll分析表四种基本动作

LL、编译原理:grammar 分析 LL(1)本文只是让我熟悉一下这个分析 table的构造过程,并不能提供一个很好的参考定理:如果同非终结符的SELECT交集是空集 , 则该文法为LL(1)文法:结论:该文法为LL(1)文法 。分析该表是一个二维数组m , 我们知道2型文法(CFG)有一个α→β的产生式 , 其中α∈VN,β∈(VN∪VT)*,比如一个表达式的语法:最后导出id (id id)的句子,那么它的导出过程会形成一棵树,即CFG 分析 tree:从分析 tree中我们可以看到,从语法的开始,我们不断地用产生式的右边部分来代替产生式的左边部分的非终结符,这种方法叫做自顶向下分析 method 。
在每一步推导中,我们需要做出两个选择:因为一个句型中可能有多个非终结符 , 所以我们不确定选择替换哪些非终结符 。在这种情况下,我们需要强制每次都选择句型中的第一个非终结符来替换(或者每次都选择句型中的最后一个非终结符来替换) 。自上而下语法分析采用最左边的演绎方式,即总是选择每个句型最左边的非终结符进行替换 。
1、用C写的LL(1【Ll 分析,ll分析表四种基本动作】# include # include # include # include chara # include # include # definevn 8 # definevnn 10 # definepmaxlength 20 # definemaxstlength 50 # definemaxstackdepth 50 charvn本文只是为了让我熟悉一下这个分析 table的构造过程 , 并不能提供一个很好的参考定理:如果同一个非终结符的SELECT交集是一个空集,那么这个文法就是LL(1)文法分析该表是一个二维数组M[A,a],其中A表示行是非终止符 , 表格列是终止符或$ 。

    推荐阅读