詞法分析程式實驗報告

2022-06-04 18:27:10 字數 3012 閱讀 4810

實驗一詞法分析程式實驗

專業 商軟2班   姓名 區展翔  學號 201506110183

一、實驗目的

編制乙個詞法分析程式。

二、實驗內容和要求

輸入:源程式字串

輸出:二元組(種別,單詞符號本身)。

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

1.源程式名:詞法分析.c

可執行程式名:詞法分析.exe

2.原理分析及流程圖

3.主要程式段及其解釋:

#include#include

#include

#define max 1000

int j=1

;long g=0

;char nchar[max]=;

int k=0

;char ch=null;

char m[30]=;

int sym=-1

;main()

dowhile

(p);

}int

getsym()

;

char word[15]=;

int wsym[6]=;

int ssym[9]=;

char b[9]=;

if(j==1&&k

while(ch=='

'||ch==10||ch==9||ch==13) //

判斷是否為無用字元

ch=nchar[k];

k++;

}if(ch>='

a'&&ch<='z'

)

ch=nchar[k];

k++;

}for(i=0;i<12;i++)

if(i<12) //

判斷是否為保留字

else

//判斷是否為識別符號

if(k==g)

return0;

strcpy(m,

"");

return1;

}else

if(ch>='

0'&&ch<='9'

)

ch=nchar[k];

k++;

}sym=11

; printf(

"常數%s 種別碼11\n

",m);

if(k==g) //

判斷是否為運算子

return0;

strcpy(m,

"");

return1;

}else

if(ch==':'

)

ch=nchar[k];

k++;

if(ch=='='

)

ch=nchar[k];

k++;

}strcpy(m,

"");

return1;

}else

if(ch=='

if(ch=='='

)

ch=nchar[k];

k++;

}else

if(ch=='

>')

ch=nchar[k];

k++;

}else

if(k==g)

strcpy(m,

"");

return1;

}else

if(ch=='

>')

if(ch=='='

)

ch=nchar[k];

k++;

}else

if(k==g)

strcpy(m,

"");

return1;

}else

if(i<9

)

else

if(k

else

strcpy(m,

"");

return1;}}

4.執行結果及分析

四、

實驗總結

通過這個實驗,使我了解了編譯器詞法分析的過程。雖然在幹開始做著個程式是是很茫然的,但是在經過一段時間的思考,有了感覺和眉目就開始左手寫詞法分析程式,這個也算是第二版本吧,第乙個版本有個問題就是不能呢個讓它在使用者輸入完後再執行分析,而是使用者一換行就執行一段並輸出結果,然後在讓使用者輸入,這樣做感覺不是很滿意就對輸入進行了改進,這只是乙個功能簡化的程式,如果以後要增加功能在這個基礎上改就好了。

詞法分析程式實驗報告

實驗 一 詞法分析實驗 專業 商業軟體工程 姓名王芷玲 學號201606110246 一 實驗目的 編制乙個詞法分析程式。二 實驗內容和要求 對字串表示的源程式,從左到右進行掃瞄和分解,根據詞法規則,識別出乙個乙個具有獨立意義的單詞符號,以供語法分析之用 發現詞法錯誤,則返回出錯資訊。三 實驗方法 ...

詞法分析實驗報告

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

詞法分析實驗報告

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