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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(c语言语法分析报告器Word文件下载.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c语言语法分析报告器Word文件下载.docx

1、char choose; /*用户输入时使用*/char empt20; /*求_emp()时使用*/char fo20; /*求FOLLOW集合时使用*/*判断一个字符是否在指定字符串中*/int in(char c,char *p)int i;if(strlen(p)=0)return(0);for(i=0;i+) if(pi=c) return(1); /*若在,返回1*/if(i=strlen(p) return(0); /*若不在,返回0*/得到一个不是非终结符的符号char c()char c=A while(in(c,non_ter)=1)c+;return(c);分解含有左递归

2、的产生式void recur(char *point) /*完整的产生式在point中*/ int j,m=0,n=3,k;char temp20,ch;ch=c(); /*得到一个非终结符*/k=strlen(non_ter);non_terk=ch;non_terk+1=0for(j=0;j printf(ninput error! validity=0; return( /*检测输入错误*/ for(k=0;kk+) /*分解输入的各产生式*/ if(pk3=pk0) recur(pk); non_re(pk);return(s);将单个符号或符号串并入另一符号串void merge(c

3、har *d,char *s,int type) /*d是目标符号串,s是源串,type1,源串中的 一并并入目串; type2,源串中的不并入目串*/ int i,j;i=strlen(s)-1; if(type=2&si= ; if(j=0) firsti0= firsti1= TEMP0= TEMP1= if(vj=p0) memcpy(firsti,first1j,strlen(first1j); firstistrlen(first1j)= memcpy(TEMP,first1j,strlen(first1j); TEMPstrlen(first1j)=else /*如果右部为符号串

4、*/if(i merge(firsti,first1j,2); merge(TEMP,first1j,2);for(k=0;=length-1; if(_emp(pk)=1&length-1) if(vm=rightik+1) merge(firsti,first1m,2); merge(TEMP,first1m,2); else if(_emp(pk)=1&k=length-1) merge(firsti,temp,1); merge(TEMP,temp,1); else if(_emp(pk)=0)求各产生式左部的FOLLOWvoid FOLLOW(int i)int j,k,m,n,re

5、sult=1;char c,temp20;c=non_teri; /*c为待求的非终结符*/merge(fo,temp,1);if(c=start) /*若为开始符号*/temp0=#merge(followi,temp,1);if(in(c,rightj)=1) /*找一个右部含有c的产生式*/ if(rightjk=c) /*k为c在该产生式右部的序号*/ if(vm=leftj) /*m为产生式左部非终结符在所有符号中的序号*/ if(k=strlen(rightj)-1) /*如果c在产生式右部的最后*/ if(in(vm,fo)=1) merge(followi,followm,1)

6、; if(Fm= FOLLOW(m); Fm= /*如果c不在产生式右部的最后*/ for(n=k+1;nn+) result*=_emp(rightjn); if(result=1) /*如果右部c后面的符号串能推出*/ /*避免循环递归*/ tempn-k-1=rightjn; tempstrlen(rightj)-k-1= FIRST(-1,temp); merge(followi,TEMP,2);Fi=判断读入文法是否为一个LL(1)文法int ll1() int i,j,length,result=1;char temp50;=49; /*初始化*/firstj0= followj0=first1j0=selectj0=TEMPj=tempj=fj=Fj=strlen(v)-1; first2(j); /*求单个符号的FIRST集合*/n各非终结符导出的first集:%c:%s ,vj,first1j);n能导空的非终结符集合:,empty);/ printf(n_emp:/for(j=0; / printf(%d ,_emp(vj); FIRST(i,righti); /*求FIRST*/=strlen(non_ter)-1; /*求FOLLOW*/

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1