詞法分析器實驗報告

2022-08-22 16:57:12 字數 3155 閱讀 9854

一、實驗目的

通過設計乙個詞法分析程式,對詞法進行分析,加強對詞法的理解,掌握對程式語言的分解和理解。

二、實驗內容和要求

在原程式中輸入源**

在源程式中,自動識別單詞,把單詞分為五種,並輸出對應的單詞種別碼。

識別關鍵字:main if int for while do return break continue,該類的單詞碼為1.

識別識別符號:表示各種名字,如變數名、陣列名、函式名等,如char ch, int syn, token,sum,該類的單詞碼為2.

運算子:+、-、*、/、=、>、=、<=、!=

分隔符:,、;、、(、)

常數,例:123

各種單詞符號對應的種別碼。

輸出形式:

– (單詞種別,單詞自身的值)

– 整數碼

– 識別符號token、常數sum

– 關鍵字、運算子、界符token

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

1.源程式

#include #include 

char

string[80],simbol[8

],ch;

intwordid,index,m,n,sum;

char *rwtab[6]=;

void scaner(void

);main()

while(ch!='#'

); index=0

;

do }

while(wordid!=0);

return0;

}void scaner(void

) index--;

wordid=10

;

for(n=0;n<6;n++)

if(strcmp(simbol,rwtab[n])==0

)

}else

if((ch>='

0')&&(ch<='

9'))//

判斷輸入的字元是否為數字

index--;

wordid=11

; }

else

else

break

;

case

'>':

simbol[m++]=ch;

ch=string[index++];

if(ch=='='

)

else

break

;

case'+

':simbol[m++]=ch;

ch=string[index++];

if(ch=='+'

)

else

break

;

case'-

':simbol[m++]=ch;

ch=string[index++];

if(ch=='-'

)

else

break

;

case'!

':ch=string[index++];

if(ch=='='

)

else

break

;

case'=

':simbol[m++]=ch;

ch=string[index++];

if(ch=='='

)

else

break

;

case'*

':wordid=15

; simbol[m++]=ch;

break

;

case'/

':wordid=16

; simbol[m++]=ch;

break

;

case'(

'://

判斷輸入的字元是否為分隔符

wordid=27

; simbol[m++]=ch;

break

;

case')

':wordid=28

; simbol[m++]=ch;

break

;

case''

: wordid=6

; simbol[m++]=ch;

break

;

case';

':wordid=26

; simbol[m++]=ch;

break

;

case'\"

':wordid=30

; simbol[m++]=ch;

break

;

case'#

':wordid=0

; simbol[m++]=ch;

break

;

case':

':wordid=17

; simbol[m++]=ch;

break

;

default

: wordid=-1

;

break

; }

}simbol[m++]='\0'

;}

四.執行結果及分析

詞法分析器實驗報告

一 實驗目的 編制乙個詞法分析器,通過該詞法分析程式的設計例項,進一步了解詞法分析程式構造的一些細節。二 實驗內容和要求 實驗內容 對字串表示的源程式,從左到右進行掃瞄和分解。根據詞法規則,識別出乙個乙個具有獨立意義的單詞符號,以供語法分析之用,若發現詞法錯誤,則返回出錯資訊。實驗要求 輸入 源程式...

演算法分析實驗報告 詞法分析器

實驗 一 詞法分析實驗 商業軟體工程專業 李錦旭 學號201506110131 一 實驗目的 通過設計乙個詞法分析程式,對詞法進行分析,加強對詞法的理解,掌握對程式語言的分解和理解。二 實驗內容和要求 在原程式中輸入源 在源程式中,自動識別單詞,把單詞分為五種,並輸出對應的單詞種別碼。識別關鍵字 m...

詞法分析實驗報告

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