xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 44KB
    文件類(lèi)型: .zip
    金幣: 2
    下載: 1 次
    發(fā)布日期: 2021-07-04
  • 語(yǔ)言: C/C++
  • 標(biāo)簽: 遞歸下降??

資源簡(jiǎn)介

通過(guò)C語(yǔ)言編寫(xiě)一個(gè)語(yǔ)法分析器采用遞歸下降分析法編寫(xiě)語(yǔ)法分析程序及LL(1)語(yǔ)法分析法編寫(xiě)語(yǔ)法分析程序。附上實(shí)驗(yàn)報(bào)告。

資源截圖

代碼片段和文件信息

#include??
#include??
#include??
#define?N?100??
??
int?seekProd(int?stackTopint?inputstrTop);??
//char?inputstr[10]=“i*i+i#“;??
char?inputstr[20];??
char?stack[10]=““;??
??
typedef?struct?production{??
????char?leftChar;??
????char?rightChars[4];??
????char?allChars[8];??
}Prod;??
??
Prod?productions[8];??
void?init();??
int?stackPush(int?*top?Prod?prod);??
int?matching(int?*top?char?*inputstr);??
int?main()??
{??
????int?len;//輸入串的長(zhǎng)度??
????int?stackTop=1;??
????int?inputstrTop=0;??
????int?i;??
????char?*z=“#“;??
????int?index=0;??
??
??????
????init();//產(chǎn)生式初始化??
??????
????stack[0]=‘#‘;??
????stack[stackTop]=‘E‘;??
????printf(“請(qǐng)輸入字符串:“);??
????gets(inputstr);??
??????
????len=strlen(inputstr);??
????inputstr[len]=‘#‘;??
????while(?stackTop>=0?)??
????{??
????//??printf(“%d%d\n“stackTopinputstrTop);??
????????printf(“第%2d步:“++index);??
????????printf(“當(dāng)前棧:%-8s“stack);??
????????printf(“輸入字符串:%8s“inputstr);??
????????//根據(jù)棧定元素和字符串首字母??
??????????
????????if(matching(&stackTopinputstr)){??
????????????printf(“\n“);??
????????}else{??
????????????i=seekProd(stackTopinputstrTop);??
????????????stackPush(&stackTopproductions[i]);//壓棧??
????????????printf(“進(jìn)行下一步所用的產(chǎn)生式:%s\n“productions[i].allChars);??
????????}?????????
????}??
????if(stackTop+1==0)??
????{??
????????printf(“分析成功!\n“);??
????}??
??
????return?0;??
}??
??
//搜索分析表??
int?seekProd(int?stackTopint?inputstrTop)??
{??
//??printf(“stack[stackTop]=%c\n“stack[stackTop]);??
????if(stack[stackTop]==‘E‘){??
????????if(inputstr[inputstrTop]==‘i‘)??
????????{??
????????????return?0;??
????????}else?if(inputstr[inputstrTop]==‘(‘){??
????????????return?0;??
????????}else{??
????????????return?-1;??
????????}??
????}else?if(stack[stackTop]==‘X‘){??
????????if(inputstr[inputstrTop]==‘+‘)??
????????{??
????????????return?1;??
????????}else?if(inputstr[inputstrTop]==‘)‘){??
????????????return?2;??
????????}else?if(inputstr[inputstrTop]==‘#‘){??
????????????return?2;??
????????}else{??
????????????return?-1;??
????????}??
????}else?if(stack[stackTop]==‘T‘){??
????????if(inputstr[inputstrTop]==‘i‘)??
????????{??
????????????return?3;??
????????}else?if(inputstr[inputstrTop]==‘(‘){??
????????????return?3;??
????????}else{??
????????????return?-1;??
????????}??
????}else?if(stack[stackTop]==‘Y‘){??
????????if(inputstr[inputstrTop]==‘+‘)??
????????{??
????????????return?5;??
????????}else?if(inputstr[inputstrTop]==‘*‘){??
????????????return?4;??
????????}else?if(inputstr[inputstrTop]==‘)‘){??
????????????return?5;??
????????}else?if(inputstr[inputstrTop]==‘#‘){??
????????????return?5;??
????????}else{??
????????????return?-1;??
????????}??
????}else?if(stack[stackTop]==‘F‘){??
????????if(inputstr[inputstrTop]==‘i‘){??
????????????return?7;??
????????}else?if(inputstr[inputstrTop]==‘(‘){??
????????????return?6;??
????????}else{??
????????????return?-1;??

?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????目錄???????????0??2017-04-17?16:13??語(yǔ)法分析器\
?????文件????????4907??2017-04-17?16:13??語(yǔ)法分析器\語(yǔ)法分析器代碼.c
?????文件???????75776??2017-04-12?22:49??語(yǔ)法分析器\語(yǔ)法分析器實(shí)驗(yàn)報(bào)告.doc

評(píng)論

共有 條評(píng)論

相關(guān)資源