1. 程式人生 > >[原始碼和文件分享]基於swift的詞法分析程式

[原始碼和文件分享]基於swift的詞法分析程式

一、編寫環境

  • OS X 10.11.6

  • Xcode7.3.1

  • Swift2.2

二、大致過程

計算正則式:

  1. 讀入正則表示式

  2. 對正則表示式處理、建圖、生成 ε-NFA

  3. 將 ε-NFA 去除空節點、轉化為 NFA

  4. 將 NFA 轉化為 DFA

  5. 對 DFA 圖進行遍歷每個節點,獲取到每個節點通過某個字元到達哪下一個狀態, 並找到終態、構造 DFA 表、輸出顯示

驗證字串:

  1. 在成功通過正則表示式構建 DFA 圖的基礎上,讀入任意字串 從字串第一個字元、DFA 圖的第一個節點開始

  2. 判斷是否有當前的字串的字元可以使當前的 DFA 圖節點走到下一個節點

  3. 若有,則走向下一個節點,重複 2 操作,若無,則返回 false

  4. 當字串從頭到尾監測完成後,判斷當前所在節點是否是終態節點,若是,則返 回 true,反之則返回 false

三、詳細過程

3.1 正則表示式->ε-NFA

  • 字符集


參考文件和完整的文件和原始碼下載地址:

https://www.write-bug.com/article/1356.html