首先按照课程设计的要求,写一个能识别 while 循环语句的文法,并使它符合 LL(1)法
的要求,按照这个文法编写一个程序,该程序能识别输入的语句是否符合 while 语句的文法,
或者通过文法的开始符号能判断是否能推导出该语句。
程序应该包括词法分析器,能对输入的语句进行词法分析,对输入的源程序从左到右进
行扫描并将其分解为一个个的单词符号。然后再对结果进行语法分析。词法分析器应能识别
关键字,标识符,常量,操作符等。
该程序的语法分析器能对输入的语法进行分析,判断输入语句能否满足 while 循环语句
的文法,如果不是则提示错误,如果满足 while 循环语句文法,判断是否符合 LL(1)法,运
用最左推导对其进行分析,看能否通过开始符号推导出来。
1) 词法分析:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的
单词符号:关键字(do,while)、标识符、常量、操作符等。
2) 语法分析:在词法分析的基础上,根据语法规则,把单词符号串分解成各类语法单
位。
3) 语义分析与中间代码产生:对语法分析所识别出的各类语法范畴,分析其含义,并
进行初步翻译(产生中间代码)。
4) LL(1)文法:LL(1)文法是一种自上而下的语法分析方法。第一个 L 是自上而下的分析,
第二个 L 是从最左单词开始分析,1 代表只通过下 1 个单词分析需要用到的语法。
5) 预测分析程序:实现 LL(1)法分析的一种有效方法,使用一张预测分析表和一个栈进
行联合控制。预测分析程序就是属于这种类型的 LL(1)分析器。
评论1
最新资源