這次的compiler term project我們是決定兩組合併,共五個人一起拚,希望能在星期三demo時有個成果來。

在昨晚稍微trace了一下ANSI C parser的rule之後,今天總算決定了symbol table的格式。不過早上倒是遇到了怪問題,因為parser只能在bsd上跑,所以我們就決定在bsd做。沒想到scanner在bsd上跑時竟然抓不到IDENTIFIER....orz

後來試了以後才知道,在bsd上lex不會吃代表一堆字元的符號,總算是在中午解決了這個問題,開始建起symbol table了~

下午盜版喵終於來了(他昨晚寫計網作業寫太晚,睡過頭了),在被我們奚落了一頓後,也加入了工作。

晚上把symbol table大致建好後,就開始處理基本的四則運算。只是開始沒多久就又遇上了問題,我們發現在parse assignment expression時,在parse完等號左邊的identifier後,yytext照理來說應該是記著變數名稱的,可是卻變成了等號,不管試幾次都是這樣...@@

最後實在想不出解決辦法,有人打電話問Artoo,他說他們之前也發現這個問題,最後是利用在scanner中加入一變數來記identifier才解決的。得到解法後,在晚上十點回家時,勉強算是完成了簡單的四則運算。

arrow
arrow
    文章標籤
    compiler
    全站熱搜

    cym 發表在 痞客邦 留言(0) 人氣()