1. 程式人生 > >如何用c++做一個編譯器(一)

如何用c++做一個編譯器(一)

程式碼連結

https://github.com/Wchenguang/wkC-compiler

詞法分析器第一階段

介紹:

一。Lexer.h Lexer.cpp

1. Lexer : 詞法分析器

構造:通過檔名來構造

功能:使用fstream讀取一個檔案,並進行詞法分析,getToken() 介面為語法分析順序提供單詞

成員hashMap:是利用連結串列法解決衝突的雜湊表,從檔案解析出一個單詞後,經過雜湊,查詢到map中的位置,若不存在則插入,插入的是Token型別的指標,Token由字元 串構造

成員tokenList:順序儲存單詞指標,為語法分析順序提供token


二。FA.h FA.cpp

各種自動機的實現,暫時只實現了幾個判別函式,和一個解析空白的自動機



三。後續工作

繼續豐富自動機型別,完成analyze() 函式進行解析


上火車了,十一快樂