天天看点

自己写代码解析工具的注意事项

  因为工作需要,吾又写了一套代码解析工具。为什么要又呢?因为写过多次。这东西说起来玄乎,特别是编译原理,看得稀里糊涂,实际上呢?就是几个阶段,分词(根据规则切成不同的标记)、文法(是否符合规则)、语义(就是产生相应的编译结果)。对于咱们来讲,只关心分词即可。

 如果写代码解析工具,如何着手,需要注意什么?根据自己遇到的问题,总结如下:

 源码文件是什么编码。有时发现一直处理不对,其实就是编码错了。而编码一错,后面就不用提了。咱们一般是遇到的GBK、UTF8。

 解析时是采用被动模式(解析器得到一个标记,即调用回调),还是主动模式(由程序调用解析器的next())。考虑到有时需要向前看一个标记,所以吾建议使用主动模式。

 代码中的注释。注释中会包含大量的文本,必须作为一个整体看待。比如常见的//,/* */。

 文本字串。比如说'a', ‘\"'",abc\\123"。这些也必须作为一个整体切出来。这其中最需要注意的就是转义。

 分隔符。分隔符一般是空格、回车、换行、注释。

 算数。就是有效的标记。

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

继续阅读