编译原理实验报告 姓名:叶玉虎 班级:计 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(