91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 80KB
    文件類型: .rar
    金幣: 2
    下載: 1 次
    發(fā)布日期: 2021-07-22
  • 語言: C/C++
  • 標(biāo)簽: LL(1)??編譯原理??

資源簡介

編譯原理中LL(1)文法的設(shè)計(jì)和實(shí)現(xiàn)!有說明文檔!你懂得!

資源截圖

代碼片段和文件信息

/*******************************************
?語法分析程序
?作者:龔勛?????????劉棟?????????羅曉波
?學(xué)號:200131500342?200131500350?200131500351
?計(jì)科系?13班
********************************************/
#include
#include
#include
/*******************************************/
int?count=0;??????????????/*分解的產(chǎn)生式的個(gè)數(shù)*/
int?number;???????????????/*所有終結(jié)符和非終結(jié)符的總數(shù)*/
char?start;???????????????/*開始符號*/
char?termin[50];??????????/*終結(jié)符號*/
char?non_ter[50];?????????/*非終結(jié)符號*/
char?v[50];???????????????/*所有符號*/
char?left[50];????????????/*左部*/
char?right[50][50];???????/*右部*/
char?first[50][50]follow[50][50];???????/*各產(chǎn)生式右部的FIRST和左部的FOLLOW集合*/
char?first1[50][50];??????/*所有單個(gè)符號的FIRST集合*/
char?select[50][50];??????/*各單個(gè)產(chǎn)生式的SELECT集合*/
char?f[50]F[50];?????????/*記錄各符號的FIRST和FOLLOW是否已求過*/
char?empty[20];???????????/*記錄可直接推出^的符號*/
char?TEMP[50];????????????/*求FOLLOW時(shí)存放某一符號串的FIRST集合*/
int?validity=1;???????????/*表示輸入文法是否有效*/
int?ll=1;?????????????????/*表示輸入文法是否為LL(1)文法*/
int?M[20][20];????????????/*分析表*/
char?choose;??????????????/*用戶輸入時(shí)使用*/
char?empt[20];????????????/*求_emp()時(shí)使用*/
char?fo[20];??????????????/*求FOLLOW集合時(shí)使用*/


/*******************************************
?判斷一個(gè)字符是否在指定字符串中
********************************************/
int?in(char?cchar?*p)
{
int?i;
if(strlen(p)==0)
return(0);
for(i=0;;i++)
{
if(p[i]==c)
return(1);???????/*若在,返回1*/
if(i==strlen(p))
????return(0);???????/*若不在,返回0*/
}
}

/*******************************************
?得到一個(gè)不是非終結(jié)符的符號
********************************************/
char?c()
{
char?c=‘A‘;
????while(in(cnon_ter)==1)
c++;
return(c);
}

/*******************************************
?分解含有左遞歸的產(chǎn)生式
********************************************/
void?recur(char?*point)
{?????????????????????/*完整的產(chǎn)生式在point[]中*/
????int?jm=0n=3k;
char?temp[20]ch;
ch=c();???????????/*得到一個(gè)非終結(jié)符*/
k=strlen(non_ter);
non_ter[k]=ch;
non_ter[k+1]=‘\0‘;
for(j=0;j<=strlen(point)-1;j++)
{
if(point[n]==point[0])
{??????????????????????????/*如果‘|’后的首符號和左部相同*/
for(j=n+1;j<=strlen(point)-1;j++)
{
??? while(point[j]!=‘|‘&&point[j]!=‘\0‘)
????temp[m++]=point[j++];
left[count]=ch;
memcpy(right[count]tempm);
right[count][m]=ch;
right[count][m+1]=‘\0‘;
m=0;
count++;
if(point[j]==‘|‘)
{
n=j+1;
break;
}
}
}
else
{??????????????????????????/*如果‘|’后的首符號和左部不同*/
left[count]=ch;
right[count][0]=‘^‘;
right[count][1]=‘\0‘;
count++;
for(j=n;j<=strlen(point)-1;j++)
{
????if(point[j]!=‘|‘)
????????temp[m++]=point[j];
????else
{
????left[count]=point[0];
????memcpy(right[count]tempm);
????right[count][m]=ch;
????right[count][m+1]=‘\0‘;
printf(“?count=%d?“count);
m=0;
????count++;
}
}
????????????left[count]=point[0];
????memcpy(right[count]tempm);
????right[count][m]=ch;
?????? right[c

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----

?????目錄??????????0??2004-05-14?15:44??語法分析

?????文件?????171520??2004-05-13?19:27??語法分析\LL(1).doc

?????文件??????17802??2004-05-13?19:08??語法分析\syntax.cpp

-----------?---------??----------?-----??----

???????????????189322????????????????????3


評論

共有 條評論

相關(guān)資源