电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

安徽工业大学编译原理实验报告

安徽工业大学编译原理实验报告_第1页
1/18
安徽工业大学编译原理实验报告_第2页
2/18
安徽工业大学编译原理实验报告_第3页
3/18
编译原理实验报告 姓名:叶玉虎 班级:计 12 2班 指导老师:王森玉 实验日期:2025/5/1 1实验内容:1。求出每个非终结符得 FIRST 集合2、求出每个产生式右部得 FI RS T 集合3。求出每个非终结符得 Foll o w 集合实验环境: Visual Studio2025实验目得:ﻩ 让同学们掌握FIRST集合与FOLLOW集合得求法实验代码:#include〈stdio、h>#include〈string、h〉#define MAX 50char css[MAX][MAX];//保存所有得产生式int count=0;int cnt=0;struct L{//保存所有得终结符ﻩchar ch;int flag;//1:能推出ε,0:不能,初值:-1int num;char first[MAX];int s;//first得长度ﻩchar follow[MAX];ﻩint l;//follow得长度}l[MAX];//对输入得格式进行控制,并校验输入就是否符合格式int handle(char a[]){int len,i=0,j,k;ﻩlen=strlen(a);while(a[i]!=10)ﻩ{ﻩif(a[i]=='$')ﻩﻩﻩreturn 2;if((' ’==a[i])||(9==a[i]))ﻩ{ﻩﻩi++;ﻩﻩ continue;ﻩﻩ}ﻩif((a[i]>='A’)&&(a[i]〈=’Z’)){ﻩﻩﻩif((a[i+1]!=’-')||(a[i+2]!='>'))ﻩﻩ{ﻩﻩﻩprintf(”产生式格式错误\n");ﻩreturn -1;ﻩ}elseﻩﻩ{ﻩﻩj=i;ﻩﻩﻩk=0;ﻩﻩﻩwhile((a[j]!=’ ')&&(a[j]!=9)&&(a[j]!='$')&&(a[j]!=10))ﻩﻩ{ﻩﻩif(a[j]==’|’)ﻩﻩﻩ{ﻩﻩﻩﻩﻩcss[count][k]='\0’;ﻩﻩﻩcount++;ﻩﻩﻩif((a[j+1]==' ’)||(a[j]==9)||(a[j]=='$’)||(a[j]==10))ﻩﻩﻩﻩ{ﻩﻩprintf("产生式格式错误\n");ﻩﻩﻩreturn 0;ﻩ}ﻩcss[count][0]=a[i];ﻩﻩﻩﻩcss[count][1]=a[i+1];ﻩﻩ css[count][2]=a[i+2];ﻩﻩﻩﻩk=3;ﻩﻩﻩﻩj++;ﻩﻩﻩcontinue;ﻩﻩﻩﻩ}ﻩﻩﻩcss[count][k]=a[j];ﻩﻩﻩ k++;ﻩﻩj++;ﻩ}ﻩﻩcss[count][k]=’\0';ﻩﻩﻩ i=j;ﻩﻩcount++;ﻩﻩ}ﻩ}ﻩﻩelseﻩ{ﻩﻩﻩprintf("产生式格式错误\n");ﻩﻩﻩreturn -1;ﻩ}ﻩ}ﻩreturn 0;}//从键盘获得输入int input(){char a[MAX*MAX];ﻩint v;printf("输入产生式,产生式之间以空格回车或Tab键分隔,并以$键结束。\n");printf(”用表示虚拟符号ε,终结符用大写字母表示,其她字符表示非终结符\n”);ﻩwhile(1){...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

安徽工业大学编译原理实验报告

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部