语法分析的主要任务是接收词法分析程序识别出来的单词符由某种号串,判断它们是否语言的文法产生,即判断被识别的符号串是否为某语法部分。
LR(k)分析法是给出一种能根据当前分析栈中的符号串,“k”是指为了作出分析决定而向前看的输入符号的个数。据栈中的符号串和向右顺序查看输入串的k(k³0)个符号,就能唯一确定分析器的动作是移进还是归约,以及用哪个产生式进行归约。其中LR(0)分析器是在分析过程中不需要向右查看输入符号的,因而它对文法的限制较大,但是它是构造LR类分析器的基础。对于是否是LR(0)文法,可以通过查看是否存在两类冲突来判定,而需要的是判定功能,所以用项目集作为模块的输入。
1