[Lex] How to write a simple lexical analyzing program

最近學校的Compiler開始教怎麼寫Lex&Yacc了,因為以前就很喜歡Regular Expression,所以以前對於RE的練習幫我對於RE的設計打了很深的基底,因此在寫lexical analyzer的時候就覺得還蠻得心應手的XD。


下面這個是拿來被分析的檔案,
http://gist.github.com/376137.js

而下面這個是分析該檔案用的Lex檔,
http://gist.github.com/376132.js

而這個是分析後的結果,
http://gist.github.com/376144.js

它會把基本的Identifier和Variable…等東西都判斷出來,依自訂的格式把內容印出,當中還包括了"{}"的階層關係,以及行數,不過還沒做到錯誤處理就是了,因為錯誤處理不是目前要處理的XD~

詳細的Lex規則可以參考這邊這邊,而我的Code有附上一些註解了,應該講的很詳細了XD。

δ 補充一下有人問的Lex Cstyle註解的寫法:「“/*”([^*]|[*]+[^*/])*[*]*”*/” {printf(“got it”);}」

One thought on “[Lex] How to write a simple lexical analyzing program

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s