电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

实验四-语法分析的yacc实现实验报告

6页
  • 卖家[上传人]:枫**
  • 文档编号:505002984
  • 上传时间:2023-08-02
  • 文档格式:DOC
  • 文档大小:79.50KB
  • / 6 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、实验四语法分析的yacc实现实验报告题目语法分析的yacc实现姓名及分工康黎明 SWE10029陈俊杰 SWE10031许冬青 SWE10033王吉 SWE10028日期2012-12-20一、实验目的:加深对语法分析器工作过程的理解;熟练掌握yacc工具。二、实验分工:小组成员共同分析实验过程,在老师的指导分析下,完成了完整的程序编码。三、程序说明:1 程序输入示例:测试程序保存成文件input.c,Yacc的main()函数从input.c读取字符并进行分析,将用到的文法规则输出输入C语言程序为: main() a = 10*(b+2);2程序输出示例运行Yacc程序,输出窗口直接显示运行结果:四、 实验说明:编译环境说明:Windows下的Visual C+文法说明:0. program main() expression_stmt 1. expression_stmt expression ; | ;表达式语句有一个可选的且后面跟着分号的表达式。这样的表达式通常求出它们一方的结果。因此,这个语句用于赋值和函数调用。2. expression var = expression |

      2、 simple-expression3. var ID | ID expression 表达式是一个变量引用,后面跟着赋值符号(等号)和一个表达式,或者就是一个简单的表达式。赋值的语义为:首先找到由变量var的地址,然后对赋值符右边的子表达式进行求值,再将子表达式的值存储到给定的地址。这个值也作为整个表达式的值返回。var是简单的整型变量或下标数组变量。需要检查下标值为非负,但不进行下标越界检查。建议:可实现var ID;根据实际情况实现var ID expression 数组变量的识别。4. simple-expression additive-expression relop additive-expression | additive-expression5. relop = | | = | = |!=6. additive-expression additive-expression addop term | term7. addop + | - 8. term term mulop factor | factor9. mulop * | / 加法表达式和项表示了算术操作符的结

      3、合性和优先级。10. factor ( expression ) | var | NUM因子是围在括号内的表达式;或一个变量,求出其变量的值;或者一个函数调用,求出函数的返回值;或者一个NUM,其值由词法分析器确定。其他说明:实验过程遇到的问题:1、.lex部分出现问题.|n应为分号(;),表示不做任何操作。2、delim为对Tab键做清除跳过操作。3、Yacc部分%nonassoc LOWER_THAN_ELSE ,%nonassoc ELSE;为消除歧义作用。4、%start program开始按照写好的文法对Input进行分析,并打印出每一条文法结果。五、 源程序:1、 Lex代码(读出token)%#include #include extern char* yylval;int line_counter = 1;%letterA-Za-zdigit0-9numberdigit+delim t+keywordmain|while|if|else|for|break|continue|int|char|voididletter(letter|digit)*%delim;main

      4、yylval = strdup(yytext); return MAIN; -+*/()=;., return *yytext; id yylval = strdup(yytext); return ID; number yylval = strdup(yytext); return NUM; .|n;%int yywrap()return 1;2、yacc代码(语义分析)%#include #include #include #include #define YYSTYPE char*%start program%token ID NUM LE RE EQ NQ MAIN IF WHILE ELSE%nonassoc LOWER_THAN_ELSE / 消除歧义%nonassoc ELSE%program :MAIN()expression_stmt printf (program-main() expression_stmt n );expression_stmt :expression; printf(expression_stmt-expression;n); |; print

      5、f(expression_stmt-;n); ;expression : var=expression printf(expression-var = expressionn); |simple_expression printf(expression-simple-expressionn); ;var :ID printf(var-IDn); |IDexpression printf(var-IDexpressionn); ;simple_expression :additive_expression relop additive_expression printf(simple-expression-additive-expression relop additive-expressionn); |additive_expression printf(simple-expression-additive-expressionn); ;relop :LE printf(relop- =n); | printf(relop- n); |RE printf(relop- =n); |EQ

      6、 printf(relop- =n); |NQ printf(relop- !=n); ;additive_expression :additive_expression addop term printf(additive-expression-additive-expression addop termn); |term printf(additive-expression-additive-expression addop term | termn); ;addop :+ printf(addop-+n); |- printf(addop-n); ;term :term mulop factor printf(term-term mulop factorn); |factor printf(term-factorn); ;mulop :* printf(mulop-*n); |/ printf(mulop-/n); ;factor :(expression) printf(factor-(expression)n); |NUM printf(factor-NUMn); |var printf(factor-varn); ;%#include lex.yy.cint main() extern FILE *yyin; yyin=fopen(input.c,r); yyout = fopen(out.txt,w); yyparse(); return 0;yyerror(char *s) fprintf(stderr,.%sn,s);六、实验总结:通过本次实验,让我们对YACC有了初步的认识和运用,同时理解到很多语法分析的知识。了解原来YACC原来比C语言方便很多,同时也要感谢在实验过程中老师的帮忙和指导。

      《实验四-语法分析的yacc实现实验报告》由会员枫**分享,可在线阅读,更多相关《实验四-语法分析的yacc实现实验报告》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.