编译原理实验整体编译原理语法分析器

上传人:cn****1 文档编号:508047675 上传时间:2022-07-23 格式:DOC 页数:5 大小:18.02KB
返回 下载 相关 举报
编译原理实验整体编译原理语法分析器_第1页
第1页 / 共5页
编译原理实验整体编译原理语法分析器_第2页
第2页 / 共5页
编译原理实验整体编译原理语法分析器_第3页
第3页 / 共5页
编译原理实验整体编译原理语法分析器_第4页
第4页 / 共5页
编译原理实验整体编译原理语法分析器_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《编译原理实验整体编译原理语法分析器》由会员分享,可在线阅读,更多相关《编译原理实验整体编译原理语法分析器(5页珍藏版)》请在金锄头文库上搜索。

1、编译原理语法分析实验报告 班级:11203105 学号:1120310528 姓名:陈向军 词法分析器与语法分析器I. 问题描述 设计、编制、调试一个语法分析程序,并用它对词法分析程序所提供的单词序列进行语法检查和结构分析。 ii. 设计简要描述 界面需求: 为了更加形象的模拟过程,此实验使用图形界面。要求从图形界面上输入输入串,点击词法分析,可以将词法分析后识别的单词符号显示,点击语法分析,可以将语法分析的堆栈过程显示,并且显示结果(是否是符合文法的句子),清空则可以将所有置空。思路描述: 一、设计构想:本实验决定编写一个简易C语言的词法分析器和语法分析器。使其能够识别while,if等关键

2、字,可以判断赋值语句、条件语句、循环语句。二、 文法分析 1、需要识别的关键字及其识别码有:break,1,BREAK , continue,2,CONTINUE, else,3,ELSE, float,4,FLOAT, for,5,FOR, if,6,IF, int,7,INT, return,8,RETURN, void,9,VOID, while,10,WHILE, printf,41,OUTPUT, scanf,42,INPUT,main,43,MAIN, function,44,function+,16,PLUS , -,17,MINUS, *,18,MULTI, /,19,RDIV

3、, =,20,ASSIGN, ,22,GT, =,24,GE, !=,25,NE, (,26,LR_BRAC, ),27,RR_BRAC, ,28,COMMA, ;,29,SEMIC, ,30,LS_BRAC, ,31,RS_BRAC, ,32,LB_BRAC, ,33,RB_BRAC, %,34,REMAINDER, &,35,AND, |,36,OR, !,37,NOT, +,38,INC, =,39,EQ, &,40,ADDR2、 文法S - S ;S - void main ( ) decls stmts ;S - fun S ;fun - fun fun ;fun - funtype

4、 function id ( fundecls ) decls stmts ;fundecls - fundecls , fundecl ;fundecls - fundecl ;fundecl - type id ;decls - decls decl ;decls - decl ;decl - type ids ;type - float ;type - int ;funtype - float ;funtype - int ;ids - ids , N6 id ;ids - id ;ids - id num = nums ;nums - nums , num ;nums - num ;n

5、ums - xiao ;stmts - stmts stmt ;stmts - stmt ;stmt - return expr ;stmt - asgn ;stmt - iter ;stmt - slct ;stmt - stmts ;stmt - continue ;stmt - break ;expr - E ;E - E + T ;E - E - T ;E - T ;T - T * F ;T - T / F ;T - T % F ;T - F ;F - ( E ) ;F - num ;F - xiao ;F - id ;F - id expr ;asgn - left = expr ;

6、asgn - left = funid ( funcs ) ;funid - id ;funcs - funcs , func ;funcs - func ;func - id ;func - num ;left - id ;left - id expr ;iter - for ( asgn M1 rel N4 inc ) N2 stmt ;iter - while M1 ( rel ) M2 stmt ;M1 - $ ;M2 - $ ;N1 - $ ;N2 - $ ;N3 - $ ;N4 - $ ;N5 - $ ;N6 - $ ;rel - expr op expr ;rel - ! rel ;rel - rel o N3 rel ;op - ;op - = ;op - = ;op - != ;o - & ;o - | ;inc - left + ;slct - if ( rel ) M1 stmt N1 else M2 stmt ;stmt - printf ( str ) ;stmt - printf ( str , N5 ids ) ;stmt - scanf ( str , & id ) ;3、 LR(1)分析表另附上一张LR(1)分析表,LR(1).txt三:实现功能输出规约语法树,一行一个产生式。详见:Parsetree.txt

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号