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

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

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


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


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


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


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


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


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


 算数。就是有效的标记。


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


目录
相关文章
|
4月前
|
编译器 C++
【C++】lambda表达式语法详细解读(代码演示,要点解析)
【C++】lambda表达式语法详细解读(代码演示,要点解析)
|
8月前
如何使用递归及注意事项
如何使用递归及注意事项
49 0
|
自然语言处理
自己写代码解析工具的注意事项
自己写代码解析工具的注意事项
57 0
|
Java 编译器 Scala
函数使用注意事项和细节3|学习笔记
快速学习函数使用注意事项和细节3。
60 0
|
Java 编译器 Scala
函数使用注意事项和细节1|学习笔记
快速学习函数使用注意事项和细节1。
71 0
|
Go 开发者
函数注意事项和细节(3) | 学习笔记
简介:快速学习函数注意事项和细节(3)
69 0
|
Go 开发者
函数注意事项和细节(1) | 学习笔记
简介:快速学习函数注意事项和细节(1)
67 0
|
Java 测试技术 Go
第八章 测试与性能调优--生成文档和测试示例代码
java也可以生成文档, 就像一个手册一样, 可以用来查看方法, 接口, 下面我们给go项目生成文档
77 0
第八章 测试与性能调优--生成文档和测试示例代码
|
Python
Jupyter 编写python代码实现代码自动补齐功能设置实例演示
Jupyter 编写python代码实现代码自动补齐功能设置实例演示
219 0
Jupyter 编写python代码实现代码自动补齐功能设置实例演示
|
编解码 数据安全/隐私保护 Python
Python 技术篇 - 通过pyminifier库实现源码压缩、混淆、加密保护实例演示,pyminifier的使用方法
Python 技术篇 - 通过pyminifier库实现源码压缩、混淆、加密保护实例演示,pyminifier的使用方法
494 0
Python 技术篇 - 通过pyminifier库实现源码压缩、混淆、加密保护实例演示,pyminifier的使用方法