編譯項目跟蹤文檔(三)
這里主要寫一下“-”的處理。在詞法分析階段,我們可以把“-”解釋成減號或者是表示是一個負數。
那么怎么來區分這兩種情況呢?
我的做法(有點投機取巧,個人感覺不是很好,可是又想不出更好的來

詞法分析階段,將所有所得的單詞(Token)放到 m_tokens[]中。
如果碰到"-",將他解析成__SUB__TOKEN(減號),放到m_tokens[index1] = __SUB__TOKEN;
解析到數字單詞(__NUM_TOKEN)時,判斷它的前一個單詞是否是__SUB__TOKEN.
1.如果是__SUB__TOKEN,則判斷__SUB__TOKEN的前一個單詞是否是(算術運算符:+,-,*,/以及是否是(,{,=)(*)
1.1如果是(*)中的任意一個則將前一個__SUB__TOKEN識別成負號,把當前的__NUM__TOKEN的值取反,并用__NUM_TOKEN覆蓋它前面的__SUB_TOKEN.
1.2 如果不是(*)中的任意一個,則認為前一個__SUB_TOKEN就是減號。
2.如果不是__SUB__TOKEN,不予處理。
不知道我又沒有表述清楚,本來有一個流程圖,可是不知道怎么貼過來,見諒!!