《编译原理》实验报告 实验二:语法分析程序设计 班级: 08 计算计(3)班 姓名: 斯军浩 学号: E08620325 递归下降分析器设计 [实验目的]: 1. 了解语法分析的主要任务
2. 熟悉编译程序的编制
[实验内容]:根据某文法,构造一基本递归下降语法分析程序
给出分析过程中所用的产生式序列
[实验要求]: 1
构造一个小语言的文法,例如,Pascal语言子集的文法(同实验一),考虑其中的算术表达式文法: G[]: G[E]: →+|-| E→E+T|T →*|/| T→T*F|F →||() F→i|(E) 2
设计语法树的输出形式,例如: 产生式 …… 3
编写递归下降语法分析程序dgxj
c 实现基本的递归下降分析器,能够分析任给的符号串是否为该文法所定义的合法算术表达式
实验报告中要说明分析使用的方法
生成并输出分析过程中所用的产生式序列: 1 产生式1 2 产生式2 …… [实验步骤]: 1
写出一个小语言的文法,根据情况自由选择C语言或Pascal语言
写出该小语言的算术表达式等价的LL(1)文法
G[E]: 其中 E→TG G为E’ G→+TG|∧ ∧为ε T→FS S为T’ S→*FS|∧ F→i|(E) 3
编写递归下降语法分析程序
调试运行程序
撰写实验报告
实验代码 #include void E(); void T(); void E1(); void T1(); void F(); char s[100]; int i, SIGN; int main() { printf("请输入一个语句,以#号结束语句(直接输入#号推出)\n"); while( 1 ) { SIGN = 0; i=0; scanf("%s",&s); if( s[0] == '#'