ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:18.62KB ,
资源ID:5631278      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5631278.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(编译原理及实现附录C语法分析程序代码包含词法分析代码Word文档格式.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

编译原理及实现附录C语法分析程序代码包含词法分析代码Word文档格式.docx

1、 printf(n 打开文件 %s 错误! n, Scanout); es = 10; if (es = 0) es = program(); printf(=语法分析结果! = n); switch (es) case 0:语法分析成功!n break; case 10:printf(打开文件%s失败!,Scanout); case 1:缺少 !break; case 2:缺少 ! case 3:缺少标识符! case 4:少分号! case 5:缺少 (! case 6:缺少)! case 7:狹少操作数! fclose(fp); return(es);/ :=/program:= sta

2、tement_list int program() fscanf(fp, %s %sn, token, token1); if (strcmp(token, ) /判断是否为 es = 1; return(es);, &token, &token1); es = declaration_list(); if (es 0) return(es); es = statement_list();) /判断是否为, es = 2; return (es);= 1 / |e /3tJl* 0) return(es);=ID; = int ID; int declaration_stat() printf

3、 (,token, token1); if (strcmp (token, ID) return (es*3); /不是标识符 fscanf(fp,&token,&,token,token1); if(strcmp(token,?) return(es=4); fscanf (fp, = |e statement_list = |e /改成8= 0) return (es);if语句 |for语句 丨resd语句丨表达式语句if_statwhile_stat for_stat/ |expression_statint statement() if (es = 0 & strcmp(token,

4、 if) = 0) es = if_stat();while) = 0) es = while_stat();while语句for) = 0) es=for_stat(); for 语句resd) = 0) es = read_stat();readSJwrite) = 0) es = write_stat();write SI) = 0) es = compound_stat(); (strcmp(token, ) = 0 | strcmp(token, NUM() = 0) es = expression_stat(); = if ( ) 4136 = if ) else 0) retur

5、n (es = 5); /少左括号 es = expression(); 0) return (es = 4); /少分号) 0) return (es = 6); /少右括号 es = statement();else) = 0) /else部分处理 fscanf(fp, return (es);while 语句=while ( = while () ) 0) return (es= 6); es=statement(); for语句 = for ( ;=for (=write = write0) return (es); resci_j5 找日化变量resd_stat = resd ID;

6、int read_stat() 0) return(es=3) ; /例示识符 0) return (es=4); /少分号 fscanf (fp,-( = - ,: - -1int compound_stat() /复合语句函数 es= statement_list();人:丨;expressgLon_stat | ;int expression_stat() fscanf(fp, printf (,token,token1) ; if(es= 0 & strcmp (token, fscanf (fp, printf ( return(es); else es=4;标识符布尔表达式 = I

7、D=int expression() int es=0,filesdd; char token220,token340;) = 0) filesdd = ftell(fp); /记住当前文件位置%s %sVitoken2, &token3);, token2, token3 ) ; if (strcmp(token2, =) = 0) / = fscanf(fp, printf( es = bool_expr(); if (es 0) return(es ); else fseek(fp, filesdd, 0); /若非= ,则文件指针回到=前的标识符 ,token, token1); el

8、se es = bool_expr(); return (es) ;算术表达式算术表达式 (彳=丨additive_expr f= | = | = | !*)= 0 |strcmp(token,) =0 |strcmp (token, )=0 |strcmp (token, )=0 |strcmp(token,=)= 0|strcmp(token,= es= additive_expr();项 (+ | -) (+ | - ) int additive_expr() es=term();+- es = term();/ 48 | ( * | / ) * ( * ( /)int term() es= factor(); while(strcmp(token,*)=0|strcmp(token,/ es= factor(); if (es因子(= ()丨 ID|NUMint factor() es=expression(); if (strcmp (token, ) return (es=6); if (strcmp(token, token1)

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2