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

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

ID:50402285

大小:38.52 KB

页数:5页

时间:2020-03-08

编译原理实验整体编译原理语法分析器.doc_第1页
编译原理实验整体编译原理语法分析器.doc_第2页
编译原理实验整体编译原理语法分析器.doc_第3页
编译原理实验整体编译原理语法分析器.doc_第4页
编译原理实验整体编译原理语法分析器.doc_第5页
资源描述:

《编译原理实验整体编译原理语法分析器.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

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,"

3、MAIN"},{"function",44,"function"}{"+",16,"PLUS"},{"-",17,"MINUS"},{"*",18,"MULTI"},{"/",19,"RDIV"},{"=",20,"ASSIGN"},{"<",21,"LT"},{">",22,"GT"},{"<=",23,"LE"},{">=",24,"GE"},{"!=",25,"NE"},{"(",26,"LR_BRAC"},{")",27,"RR_BRAC"},{",",28,"COMMA"},{";",29,"SEMIC"},{"[",30,"LS_BRAC"},{"]",31,"

4、RS_BRAC"},{"{",32,"LB_BRAC"},{"}",33,"RB_BRAC"},{"%",34,"REMAINDER"},{"&&",35,"AND"},{"

5、

6、",36,"OR"},{"!",37,"NOT"},{"++",38,"INC"},{"==",39,"EQ"},{"&",40,"ADDR"}2、文法S'->S;S->voidmain(){declsstmts};S->funS;fun->funfun;fun->funtypefunctionid(fundecls){declsstmts};fundecls->fundecls,fundecl;f

7、undecls->fundecl;fundecl->typeid;decls->declsdecl;decls->decl;decl->typeids@;type->float;type->int;funtype->float;funtype->int;ids->ids,N6id;ids->id;ids->id[num]={nums};nums->nums,num;nums->num;nums->xiao;stmts->stmtsstmt;stmts->stmt;stmt->returnexpr@;stmt->asgn@;stmt->iter;stmt->slct;stmt

8、->{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;asgn->left=funid(funcs);funid->id;funcs->funcs,func;funcs->func;func->id;func->num;left->id;left->id[expr];iter->for(asgn@M1rel@N4inc)N2stmt;ite

9、r->whileM1(rel)M2stmt;M1->$;M2->$;N1->$;N2->$;N3->$;N4->$;N5->$;N6->$;rel->expropexpr;rel->!rel;rel->reloN3rel;op-><;op->>;op-><=;op->>=;op->==;op->!=;o->&&;o->

10、

11、;inc->left++;slct->if(rel)M1stmtN1elseM2stmt;stmt->printf(str)@;stmt->printf(str,N5ids)@;stmt->sca

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。