編譯項(xiàng)目跟蹤文檔(三)
這里主要寫一下“-”的處理。在詞法分析階段,我們可以把“-”解釋成減號(hào)或者是表示是一個(gè)負(fù)數(shù)。
那么怎么來區(qū)分這兩種情況呢?
我的做法(有點(diǎn)投機(jī)取巧,個(gè)人感覺不是很好,可是又想不出更好的來
詞法分析階段,將所有所得的單詞(Token)放到 m_tokens[]中。
如果碰到"-",將他解析成__SUB__TOKEN(減號(hào)),放到m_tokens[index1] = __SUB__TOKEN;
解析到數(shù)字單詞(__NUM_TOKEN)時(shí),判斷它的前一個(gè)單詞是否是__SUB__TOKEN.
1.如果是__SUB__TOKEN,則判斷__SUB__TOKEN的前一個(gè)單詞是否是(算術(shù)運(yùn)算符:+,-,*,/以及是否是(,{,=)(*)
1.1如果是(*)中的任意一個(gè)則將前一個(gè)__SUB__TOKEN識(shí)別成負(fù)號(hào),把當(dāng)前的__NUM__TOKEN的值取反,并用__NUM_TOKEN覆蓋它前面的__SUB_TOKEN.
1.2 如果不是(*)中的任意一個(gè),則認(rèn)為前一個(gè)__SUB_TOKEN就是減號(hào)。
2.如果不是__SUB__TOKEN,不予處理。
不知道我又沒有表述清楚,本來有一個(gè)流程圖,可是不知道怎么貼過來,見諒??!
posted on 2010-11-05 09:18 呆人 閱讀(189) 評(píng)論(0) 編輯 收藏 引用

