概述
- 简单优先分析的基本思想是对一个文法按照一定的原则求出该文法所有符号之间的优先关系,按照这种关系确定规约过程中的句柄。算符优先分析的基本思想是只规定算符之间的优先关系,在规约过程中只要找到可规约串就规约。
简单优先分析
-
1 :优先关系定义
(2):若X优先级小于Y,当且仅当G中含有产生式规则A->....XB....,且B是Y的短
语。
(3):若X优先级大于Y,当且仅当G中含有产生式规则A->...BD....,且B是X的短
语,D是Y的短语。
2:简单优先分析的操作步骤
2: 栈顶当前符号为句柄尾,由此向左在栈中找到句柄的头符号。 3: 将句柄产生式和文法右部产生式匹配,若找到,进行替换,若找不到,则出错。
4: 重复上述步骤,直至栈中只剩下文法的开始符号为止。
算符优先分析法
- 算符优先只分析终结符之间的优先级,且文法必须满足两个相邻的非终结符之间必有一个终结符,FIRSTVT代表第一个终结符,LASTVT代表最后一个终结符。
- 实例分析
- 最左素短语
定义:句型至少包含一个终结符,并且自身外不包含其他素短语,最左边的素短语陈给最左素短语。其实寻找最左边的终结字符或者两个非终结字符夹着一个终结字符的形式,看下面的例子。