天天看點

自己寫代碼解析工具的注意事項

  因為工作需要,吾又寫了一套代碼解析工具。為什麼要又呢?因為寫過多次。這東西說起來玄乎,特别是編譯原理,看得稀裡糊塗,實際上呢?就是幾個階段,分詞(根據規則切成不同的标記)、文法(是否符合規則)、語義(就是産生相應的編譯結果)。對于咱們來講,隻關心分詞即可。

 如果寫代碼解析工具,如何着手,需要注意什麼?根據自己遇到的問題,總結如下:

 源碼檔案是什麼編碼。有時發現一直處理不對,其實就是編碼錯了。而編碼一錯,後面就不用提了。咱們一般是遇到的GBK、UTF8。

 解析時是采用被動模式(解析器得到一個标記,即調用回調),還是主動模式(由程式調用解析器的next())。考慮到有時需要向前看一個标記,是以吾建議使用主動模式。

 代碼中的注釋。注釋中會包含大量的文本,必須作為一個整體看待。比如常見的//,/* */。

 文本字串。比如說'a', ‘\"'",abc\\123"。這些也必須作為一個整體切出來。這其中最需要注意的就是轉義。

 分隔符。分隔符一般是空格、回車、換行、注釋。

 算數。就是有效的标記。

 算子。+-*/[]()等等。

繼續閱讀