詞法分析實驗報告

2022-06-01 17:24:12 字數 3459 閱讀 7652

實驗

一、詞法分析實驗

商業軟體工程   麥振澎  201506110162

一、實驗目的

對使用者輸入的字串進行判斷,區分它們的型別,熟悉詞法分析的過程。

二、實驗內容和要求

使用者輸入的字串進行判斷,分別輸出每個字串所屬的型別。其中的判斷標準如下:

無符號整數:《整數》

識別符號:《字母》

數字:0|1|2|......|8|9

字母:a|b|......x|y|z

保留字:const|var|procedur|begin|end|odd|if|then|call|while|do|read|write

運算子:+|-|*|/|=|#||>=|:=

界符:(|)|,|;|.

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

源程式名:cifafenxi.c,可執行程式名:cifafenxi.exe

原理分析及流程圖

主要程式段及其解釋:

(1). 將保留字存放在陣列中:

char const_temp[6]=;

char var_temp[4]=;

char procedur_temp[9]=;

char begin_temp[6]=;

char end_temp[4]=;

char odd_temp[4]=;

char if_temp[3]=;

char then_temp[5]=;

char call_temp[5]=;

char while_temp[6]=;

char do_temp[3]=;

char read_temp[5]=;

char write_temp[6]=;

(2).判斷數字和無符號整數:

if(ch>='

0'&&ch<='9'

)

else

printf("\n

");}

}

(3).判斷字母和識別符號以及保留字:

else

if(ch>='

a'&&ch<='

z'||ch>='

a'&&ch<='z'

)

else

printf("\n

");}}}

(4).判斷運算子:

else

if(ch=='

+'||ch=='

-'||ch=='

*'||ch=='

='||ch=='

<

'||ch=='

>

'||ch=='

:'||ch=='

/'||ch=='#'

)

else

}

(4).判斷界符:

else

if(ch=='

('||ch=='

)'||ch=='

,'||ch=='

;'||ch=='.'

)

(5).區分保留字和識別符號1:

char keyworld_first(char temp,char

temppp)

for(i=0;i<9;i++)

number=0

;

while(temp==p[number])

if(number==length+1&&(!(temp>='

a'&&temp<='

z'||temp>='

a'&&temp<='

z'||temp>='

0'&&temp<='9'

)))

else

printf("\n

");}

return

temp;

}

(6).區分保留字和識別符號2:

char keyworld_double(char temp,char

temppp)

printf("\n

");return

temp;

}break

;

case'w

': if(temppp=='h'

) p=while_temp;

else

if(temppp=='r'

) p=write_temp;

else

printf("\n

");return

temp;

}break

; }

for(i=0;i<9;i++)

number=1

; temp=temppp;

while(temp==p[number])

if(number==length+1&&(!(temp>='

a'&&temp<='

z'||temp>='

a'&&temp<='

z'||temp>='

0'&&temp<='9'

)))

else

printf("\n

");}

return

temp;

}

執行結果及截圖:

四、實驗總結

對於實現這個功能而言,最麻煩的地方莫過於要去區分識別符號和保留字,因為識別符號可能是保留字中的一部分或者保留字的加長,所以為了方便判斷,把保留字存在陣列裡,在判斷的過程中能夠方便地呼叫。對於實現功能而言,不算太難,比較基礎,只是有點麻煩,需要細心而已,但細心對於我來說卻是乙個難題,希望在以後的學習中能改變這個缺點。

詞法分析實驗報告

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

詞法分析實驗報告

格式說明 排版時注意按此模板的字型,字型大小和行距。報告提交和列印輸出時請去掉此框。實驗 一 詞法分析實驗 專業 商業軟體工程 姓名 李桂源 學號 201506110201 一 實驗目的 通過設計編制除錯乙個具體的詞法分析程式,加深對詞法分析原理的理解。並掌握在對程式語言源程式進行掃瞄過程中將其分解...

詞法分析實驗報告 201506110151 董廣樞

實驗 一 詞法分析 專業 商業軟體工程二班 姓名 董廣樞 學號201506110151 一 實驗目的 編制乙個詞法分析程式 二 實驗內容和要求 1 輸入 源程式字串 2 輸出 二元組 種別,單詞本身 3 待分析語言的詞法規則 三 實驗方法 步驟及結果測試 include include char p...