詞法分析程式實驗報告

2022-06-04 22:27:22 字數 2611 閱讀 7978

實驗

一、詞法分析實驗

專業:商業軟體工程   姓名王芷玲  學號201606110246

一、實驗目的

編制乙個詞法分析程式。

二、實驗內容和要求

對字串表示的源程式,從左到右進行掃瞄和分解,根據詞法規則,識別出乙個乙個具有獨立意義的單詞符號,以供語法分析之用 發現詞法錯誤,則返回出錯資訊。。

三、實驗方法、步驟及結果測試

源程式名:壓縮包檔案(rar

或zip

)中源程式名ceshi.c

可執行程式名:ceshi.exe

主要程式段及其解釋:

實現主要功能的程式段,重要的是程式的注釋解釋。

#include

#include

char str[100];

char take[8];//存放單詞符號的字串

int sum;//存放整數型單詞

char ch;

int zbm;//存放單詞字元的種別碼

int i,n,p,m=0;//p是緩衝區

str的指標,m是

take

的指標char *keyword[8]=;

void scanner()//詞法掃瞄程式

/* for(i=0;i<8;i++)

take[i]=null;

ch=str[p++];*/

m=0;

sum=0;

for(m=0;m<8;m++)

take[m]=0;

ch=str[p++];

while(ch==' '||ch=='\n')

ch=str[p++];

if((ch>='a'&&ch<='z')||(ch>='a'&&ch<='z'))//可能是識別符號或者是變數名

m=0;

while(ch>='0'&&ch<='9'||(ch>='a'&&ch<='z')||(ch>='a'&&ch<='z'))

take[m++]=ch;

ch=str[p++];

take[m++]='\0';

p--;

zbm=10;

for(i=0;i<6;i++)//將識別出的字元和已定義的標符進行比較

if(strcmp(keyword[i],take==0))

zbm=i+1;

break;

else if(ch>='0'&&ch<='9')

while(ch>='0'&&ch<='9')

sum=sum*10+ch-'0';

ch=str[p++];

p--;

zbm=11;

else

switch(ch)

case '+':

zbm=13;

take[0]=ch;

ch=str[p++];

break;

case '-':

zbm=14;

take[0]=ch;

ch=str[p++];

break;

case '*':

zbm=15;

take[0]=ch;

ch=str[p++];

break;

case '/':

zbm=16;

take[0]=ch;

ch=str[p++];

break;

case '

take[m++]=ch;

ch=str[p++];

if(ch=='>')

zbm=21;

take[m++]=ch;

else if(ch=='=')

zbm=22;

take[m]=ch;

elsewhile(ch!='#');

p=0;

ch=str[0];

if(ch>='0'&&ch<='9')

printf("錯誤

!\n");

else

doscanner();

switch(zbm)

case 11:

printf("(%d,%d)\n",11,sum);

break;

case -1:

printf("錯誤

!\n");

break;

default:

printf("(%d,%s)\n",zbm,take);

}while(zbm!=0);

return 0;

執行結果及分析

詞法分析程式實驗報告

實驗一詞法分析程式實驗 專業 商軟2班 姓名 區展翔 學號 201506110183 一 實驗目的 編制乙個詞法分析程式。二 實驗內容和要求 輸入 源程式字串 輸出 二元組 種別,單詞符號本身 三 實驗方法 步驟及結果測試 1.源程式名 詞法分析.c 可執行程式名 詞法分析.exe 2.原理分析及流...

詞法分析實驗報告

實驗 一 詞法分析實驗 專業 商軟三班 姓名 姚棋輝 學號201506110250 一 實驗目的 編譯乙個詞法分析程式 實驗內容和要求 輸入字串,輸出這些字串的種別碼。二 實驗方法 步驟及結果測試 方法 鍵盤輸入字串時,使用陣列放起來,再從陣列這裡放進佇列。步驟 1 鍵盤輸入字串,存放在陣列中,2 ...

詞法分析實驗報告

實驗 一 詞法分析實驗 商業軟體工程 麥振澎 201506110162 一 實驗目的 對使用者輸入的字串進行判斷,區分它們的型別,熟悉詞法分析的過程。二 實驗內容和要求 使用者輸入的字串進行判斷,分別輸出每個字串所屬的型別。其中的判斷標準如下 無符號整數 整數 識別符號 字母 數字 0 1 2 8 ...