目的:熟练掌握自下而上的语法分析方法,并能用程序实现。 要求: 1. 使用如下文法: E E+T | T T T*F | F F (E) | id 2. 对于任意给定的输入串(词法记号流)进行语法分析,要求采用LR分析器来完成。手工构造LR分析表,利用移进-归约分析算法(P69 图3.12)输出(P70 表3.8)对应的动作部分。如: 输入:id*+id/(id+id)# 输出:移进 按 F->id归约 移进 error …… 3. 要有一定的错误处理功能。即对错误能提示,并
编译技术第6次上机内容 目的:充分理解并掌握中间代码生成的相关方法,用C++程序实现。 要求: 1.以S属性的语法制导定义为基础,将下列产生式附上一定的语义规则。即在原来语法分析的基础上插入相应的语义动作:将输入串翻译成三地址代码序列。 E ® E1 + T E ® T T ® T1 * F T ® F F® (E) F ® digit F ® id 2.以词法分析和语法分析部分的上机结果为基础,添加语义分析部分。即以LR文法为基础。当进行产生式归约时执行对应的语义动作。 3.输入:(-b+c
目的:熟练掌握自下而上的语法分析方法,并能用程序实现。
要求:
1. 使用如下文法:
E E+T | T
T T*F | F
F (E) | id
2. 对于任意给定的输入串(词法记号流)进行语法分析,要求采用LR分析器来完成。手工构造LR分析表,利用移进-归约分析算法(P71 图3.12)输出(P72 表3.8)对应的动作部分。如:
输入:id*+id/(id+id)#
输出:移进
按 F->id归约
移进
error