這次的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才解決的。得到解法後,在晚上十點回家時,勉強算是完成了簡單的四則運算。
文章標籤
全站熱搜