乙個簡單的詞法分析程式

2021-05-18 08:52:33 字數 1058 閱讀 8093

這是我們的編譯原理課程的第乙個實驗,蠻簡單的,或者說我寫得蠻簡單。當然會有更好的實現方法呵呵~~

實驗名稱:詞法分析程式設計

目的與要求:

(1)掌握詞法分析器的構造過程以及基本方法;

(2)理解正規式、nfa、dfa及最小化dfa的轉換過程和方法。

實驗內容要點:

給定乙個正規式r=xy*|yx*y|xyx,(*號為上標)請先將此正規式轉變為nfa、dfa、最小化,對你所完成最小化dfa進行程式設計,完成詞法分析器工作。

正規式化為最小化的dfa:

程式源**:

#include

#include

using namespace std;

void main()

else if(s[2]=='x')

else if(s[2]=='/0')

cout<<"能夠識別"<

else

cout<<"不能識別"<

}

else

cout<<"不能識別"<

}

else if (s[0]=='y')

else

cout<<"不能識別"<

}

else

cout<<"不能識別"<

}

測試用例:

(1)輸入x,輸出為「能夠識別」

(2)輸入a,輸出為「不能識別」

(3)輸入xy,輸出為「能夠識別」

(4)輸入xa,輸出為「不能識別」

(5)輸入xyyy,輸出為「能夠識別」

(6)輸入xyyya,輸出為「不能識別」

(7)輸入xyx,輸出為「能夠識別」

(8)輸入yy,輸出為「不能識別」

(9)輸入xya,輸出為「不能識別」

(10)輸入y***x,輸出為「能夠識別」

(11)輸入ya,輸出為「不能識別」

(12)輸入y***y,輸出為「能夠識別」

乙個簡單的詞法分析器

該詞法分析器可以處理簡單的語法,但有限狀態機 正規表示式的處理不是非常嚴謹 僅供參考 但可以起到啟蒙例子的作用,下面源 經本人確認可以執行 執行例子如下 源 include include include using namespace std ref 詞法分析器的實現 prog 輸入的源字串 to...

簡單的詞法分析小程式

實驗 詞法分析 一.實驗目的 編寫乙個詞法分析 實驗要求 輸入 源程式字串 輸出 二元組 種別,單詞本身 二.詞法分析程式設計 詞法規則 字母 數字 0 1 2 9 整數常數 數字 識別符號 變數 關鍵字 運算子 界符 各單詞對應的種別碼 三 源 展示 1 include2 include 3 in...

python 實現乙個簡單的C語言詞法分析

python 實現乙個簡單的c語言詞法分析 定義乙個字典或者列表與其中的字串進行輸出來的進行匹配 import sys map key map sym 寫乙個編碼字典 map data 29,22,23,24,25,25,35 36 34 33 32 0 include 56 57 def data...