毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 报告 >> 正文

语法分析-编译原理-语法分析

更新时间:2008-12-15:  来源:毕业论文

语法分析-编译原理-语法分析
1、 实验内容或题目
编制一个递归下降分析程序,实现对词法分析程序所提供的单词序列的语法检查和结构分析。
2、实验目的与要求
利用C语言编制递归下降分析程序,并对简单语言进行语法分析。
3、 实验步骤与源程序
  ⑴ 实验步骤
1.待分析的简单语言的语法
用扩充的BNF表示如下:
①<程序>::=begin<语句串>end
  ②<语句串>::=<语句>{;<语句>}
  ③<语句>::=<赋值语句>
  ④<赋值语句>::=ID:=<表达式>
  ⑤<表达式>::=<项>{+<项>|-<项>}
  ⑥<项>::=<因子>{*<因子>|/<因子>}
  ⑦<因子>::=ID|NUM|(<表达式>)

2.试验要求说明
  输入单词串,以“#”结束,如果是文法正确的句子,则输出成功信息,打印“success”,否则,输出“error”。
  例如:
       输入   begin a:=9;x:=2*3;b:= a + x  end  #
       输出   success
       输入   x:= a + b * c end #
       输出   error

3.语法分析程序的算法思想
  ①主程序示意图如下图
 
图C.3语法分析主程序示意图

  ②递归下降分析程序示意图如下图
图C.4递归下降分析程序示意图

③语句串分析过程示意图如下图
图C.5 语句串分析示意图

  ④statement语句分析函数流程如图C.6、图C.7、图C.8、图C.9所示。
图C.9 factory分析函数示意图
  ⑵ 源代码
# include <stdio.h>
# include <string.h>
char prog[80],token[8];
char ch;
int syn,p,m,n,sum=0,kk;
char *rwtab[6]={"begin","if","then","while","do","end"};
void scaner();
Irparser();
yucu();
statement();
expression();
term();
factor();

void main()
{
    p=0;
    printf("\n please input string:\n");
    do{
        scanf("%c",&prog[p++]);
    }while(prog[p-1]!='#');
    p=0;165

[1] [2] [3] 下一页

语法分析-编译原理-语法分析下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©lwfree.cn 六维论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。