修改標記解析器
至今為止,我們處理的符號標記長度都為1,所以我們的程式碼也是依此假設寫成的。但是要處理像==
這樣的比較演算子的話,就得把程式改得更為通用。為了可以在標記紀錄字串的長度,我們要在Token
結構中加上len
這個成員。新的資料結構如下:
修改資料結構的同時,consume
和expect
函式也要修改成不只可以處理單個文字,而是要可以處理字串。修改如下所示:
對由複數文字組成的標記進行標記解析的時候,需要從長的標記開始解析。舉例來說,下一個文字是>的話,首先要先像 strncmp(p, ">=", 2)
這樣先確認有沒有可能是>=
,否則如果先判斷>
的話>=
就會被誤認為是>
和=
兩個標記。
Last updated