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

  • 大小: 55KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2024-01-26
  • 語言: C/C++
  • 標(biāo)簽: 語法分析??

資源簡介

實驗2. 語法分析實驗報告 一、 實驗?zāi)康?編制一個遞歸下降分析程序,實現(xiàn)對詞法分析程序所提供的單詞序列的語法檢查和結(jié)構(gòu)分析。 二、 實驗內(nèi)容 利用C語言編制遞歸下降分析程序,并對簡單語言進行語法分析。 1、 待分析的簡單語言的語法 用擴充的BNF表示如下: (1)::=beginend (2)::={;} (3)::= (4)::=ID:= (5)::={+|-} (6)::={*|/} (7)::=ID| NUM|() 2、實驗要求說明 輸入單詞串,以“#”結(jié)束,如果是文法正確的句子,則輸出成功信息,打印“success”,否則輸出“error”。

資源截圖

代碼片段和文件信息

#include
#include
#include

char?prog[80]token[8];
char?ch;
int?synpm=0nsum=0kk;?//p是緩沖區(qū)prog的指針,m是token的指針
char?*rwtab[6]={“begin““if““then““while““do““end“};

void?scaner();
void?factor();
void?term();
void?expression();
void?statement();


void?scaner()
{
????for(n=0;n<8;n++)?token[n]=NULL;
????ch=prog[p++];

????while(ch==‘?‘)
????????ch=prog[p++];

????if((ch>=‘a(chǎn)‘&&ch<=‘z‘)||(ch>=‘A‘&&ch<=‘Z‘))
????{
????????m=0;
????????while((ch>=‘A‘&&ch<=‘Z‘)||(ch>=‘a(chǎn)‘&&ch<=‘z‘)||(ch>=‘0‘&&ch<=‘9‘))
????????{
????????????token[m++]=ch;
????????????ch=prog[p++];
????????}

????????token[m++]=‘\0‘;
????????p--;
????????syn=10;

????????for(n=0;n<6;n++)
????????????if(strcmp(tokenrwtab[n])==0)
????????????{
????????????????syn=n+1;
????????????????break;
????????????}
????}
????else
????if((ch>=‘0‘&&ch<=‘9‘))
????{
????????sum=0;
????????while((ch>=‘0‘&&ch<=‘9‘))
????????{
????????????sum=sum*10+ch-‘0‘;
????????????ch=prog[p++];
????????}

????????p--;
????????syn=11;

????????if(sum>32767)
????????????syn=-1;

????}
????else
????switch(ch)
????{
????????case‘<‘:m=0;
????????????????token[m++]=ch;
????????????????ch=prog[p++];

????????????????if(ch==‘>‘)
????????????????{
????????????????????syn=21;
????????????????????token[m++]=ch;
????????????????}
????????????????else?if(ch==‘=‘)
????????????????{
????????????????????syn=22;
????????????????????token[m++]=ch;
????????????????}
????????????????else
????????????????{
????????????????????syn=23;?p--;
????????????????}

????????????break;

????????case‘>‘:m=0;
????????????????token[m++]=ch;
????????????????ch=prog[p++];

????????????????if(ch==‘=‘)
????????????????{
????????????????????syn=24;
????????????????????token[m++]=ch;
????????????????}
????????????????else
????????????????{
????????????????????syn=20;
????????????????????p--;
????????????????}

????????????break;

????????case‘:‘:m=0;
????????????????token[m++]=ch;
????????????????ch=prog[p++];

????????????????if(ch==‘=‘)
????????????????{
????????????????????syn=18;
????????????????????token[m++]=ch;
????????????????}
????????????????else
????????????????{
????????????????????syn=17;
????????????????????p--;
????????????????}

????????????break;

????????case‘*‘:syn=13;token[0]=ch;break;

????????case‘/‘:syn=14;token[0]=ch;break;

????????case‘+‘:syn=15;token[0]=ch;break;

????????case‘-‘:syn=16;token[0]=ch;break;

????????case‘=‘:syn=25;token[0]=ch;break;

????????case‘;‘:syn=26;token[0]=ch;break;

????????case‘{‘:syn=27;token[0]=ch;break;

????????case‘}‘:syn=28;token[0]=ch;break;

????????case‘#‘:syn=0;token[0]=ch;break;

????????case‘\n‘:syn=-2;break;

????????default:?syn=-1;break;
????}
}

void?factor()??//factor()函數(shù)
{
????if(syn==10||syn==11)
????????scaner();?//為標(biāo)識符或整常數(shù)時,讀下一個單詞符號
????else?if(syn==27)
????{
????????scaner();
????????expression();
??

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????4809??2009-06-02?13:27??實驗2.語法分析\yufa.c

?????文件??????13732??2009-06-02?13:26??實驗2.語法分析\YUFA.EXE

?????文件????????734??2009-11-10?18:49??實驗2.語法分析\yufa.plg

?????文件??????72704??2009-11-13?16:19??實驗2.語法分析\實驗2.語法分析實驗報告.doc

?????文件?????657270??2009-05-26?17:44??實驗2.語法分析\語法分析結(jié)果驗證1.JPG

?????文件??????19332??2009-05-26?17:48??實驗2.語法分析\語法分析結(jié)果驗證2.JPG

?????文件?????657270??2009-05-26?17:50??實驗2.語法分析\語法分析結(jié)果驗證3.JPG

?????目錄??????????0??2009-11-13?16:19??實驗2.語法分析

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

??????????????1425851????????????????????8


評論

共有 條評論