這里主要寫一下“-”的處理。
在
詞法分析階段,我們可以把“-”解釋成
減號(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è)流程圖,可是不知道怎么貼過來,見諒!!