實驗一 詞法分析器實驗

2022-06-04 18:45:09 字數 2726 閱讀 4283

一、實驗目的

通過詞法分析器,進一步了解詞法之間的關係。

二、實驗內容和要求

將輸入的字串通過詞法分析器一一識別出來,同時將該字串或者字元並且和種別碼一起輸出來。

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

源程式名:z.c

可執行程式名:z.exe

原理分析及流程圖

採用陣列存放資料,通過字串的比較實現關鍵字的種別碼輸出

主要程式段及其解釋:

int m=0;

sum=0;

char *r[7]=;//陣列存放關鍵字

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

token[n]='\0';

ch=prog[p++];

while(ch==' ')

ch=prog[p++];

if(isalpha(ch))    /*ch為字母字元

*/while(isalpha(ch)||isdigit(ch))    /*ch 為字母字元或者數字字元

*/token[m++]=ch;

ch=prog[p++];}

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

ch=prog[p--];

syn=10;

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

if(strcmp(token,r[n])==0)    /*字串的比較

*/syn=n+1;

break;}}

else

if(isdigit(ch))    /*ch是數字字元

*/while(isdigit(ch))    /*ch是數字字元

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

ch=prog[p++];}

ch=prog[p--];

syn=11;}

else

switch(ch)

else if(ch=='=')

else

break;

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

if(ch=='=')

else

break;

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

if(ch=='=')

else

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=29;token[0]=ch;break;

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

default:syn=-1;}

我採用prog陣列存放鍵盤輸入的字元,用

r陣列存放關鍵字的陣列。通過判斷空格鍵來用

token

陣列存放前面的字元,如果前面的字元既出現字母又出現數字,那麼就是識別符號。反而就是關鍵字。然後通過

token

陣列的字串與前面定義

r陣列的字串一一比較,輸出所對應的種別碼。

執行結果及分析

四、實驗總結

在這次的實驗中了解詞法分析的過程,解決一些問題。在完成我的詞法分析器的時候考慮到關鍵字固定的字串,這就有利於字串的比較,從而識別出對應的種別碼。對於數字的採用sum=sum*10+ch-'0'乙個字元』1』轉換為數字需要減』0』才能得到對應的數字,因為數字有個十百千萬的規則,因為讀取數字字元的時候是從其他位開始讀的,最後才讀個位。比如123,先讀

1,然後

1*10+2=12

,然後12*10+3=123

實驗一 詞法分析實驗

實驗一 詞法分析實驗 專業 商軟2班 姓名 李文輝 學號 201506110168 一 實驗目的 編制乙個詞法分析程式 二 實驗內容和要求 實驗內容 1.對字串表示的源程式 2.從左到右進行掃瞄和分解 3.根據詞法規則 4.識別出乙個乙個具有獨立意義的單詞符號 5.以供語法分析之用 6.發現詞法錯誤...

實驗一 詞法分析實驗

實驗 一 詞法分析實驗 商業軟體工程專業 張煌 201506110130 一 實驗目的 從左至右地對源程式進行掃瞄,按照語言的詞法規則識別各類單詞,並產生以為格式的結果。二 實驗內容和要求 輸入 源程式字串 輸出 二元組 種別,單詞符號本身 三 實驗方法 步驟及結果測試 1.源程式名 壓縮包檔案 r...

實驗一 詞法分析

1 實驗要求 1 從源程式檔案中讀取有效字元流並將其分析識別單詞符號,轉換成二元組內部表示形式輸出。2 視覺化方式展示詞法分析識別過程或者詞法分析器工作原理 選做 3 實驗時間4學時。4 實驗完成後,要提交實驗報告 包括源程式清單 2 實驗內容 2.1主程式設計考慮 主程式的說明部分為各種 和變數安...