EragonJ's World

About me

[Lex] How to write a simple lexical analyzing program

with 6 comments

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



下面這個是拿來被分析的檔案,



而下面這個是分析該檔案用的Lex檔,



而這個是分析後的結果,



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


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


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

Written by admin

April 23rd, 2010 at 11:50 am

6 Responses to '[Lex] How to write a simple lexical analyzing program'

Subscribe to comments with RSS or TrackBack to '[Lex] How to write a simple lexical analyzing program'.

  1. 感謝!! 這對我幫助很大~~~

    popo

    28 Apr 10 at 9:38 pm

  2. :P 謝啦 阿棋

    admin

    29 Apr 10 at 11:09 am

  3. 屌哥隆 真是屌

    Mr.jerkoff

    29 Apr 10 at 7:25 pm

  4. 你= =…該死的金歐妹

    admin

    29 Apr 10 at 8:32 pm

  5. 最近學校也開始教這個,感謝大大這篇的幫助,

    不過想請問一下,如果我要再加入刪除註解的功能要怎麼做呢?

    ken

    28 May 10 at 3:48 pm

  6. “/*”([^*]|[*]+[^*/])*[*]*”*/” {printf(“got it”);}

    這個pattern真的是超重要的

    admin

    28 May 10 at 4:46 pm

Leave a Reply