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

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 自己写代码解析工具的注意事项

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


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


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


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


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


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


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


 算数。就是有效的标记。


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


目录
相关文章
|
Python
python之for循环的定义,使用方法及其注意事项
python之for循环的定义,使用方法及其注意事项
154 0
|
测试技术 Python
通过代码实例解析Pytest运行流程
通过代码实例解析Pytest运行流程
184 0
|
安全
MouseWithoutBoard的使用方法
MouseWithoutBoard的使用方法
317 0
|
人工智能 编译器 C语言
如何使用函数及函数的注意事项
目录 什么是函数? 如何调用函数? 函数的先后关系? 函数的变量空间? 什么是函数? 首先我们来说一说函数的作用,就是一块简单的代码接受零个或多个参数,做一件事情,并返回零个或一个值 void sum(int a,int b) { int i; int sum=0; for(i=a:i<=b;i++) { sum+=i; } printf("%d到%d的和是%d\n",a,b,sum); } 现在我们就写出了一个简单的求和函数和数学中的y=f(x)很像 函数名 sum 返回类型 void 参数表 int a,int b 函数体 大括号里的所有东西 函数头 大括号前
|
自然语言处理
自己写代码解析工具的注意事项
自己写代码解析工具的注意事项
81 0
|
固态存储 JavaScript 前端开发
Python正则表达式一文详解+实例代码展示(上)
Python正则表达式一文详解+实例代码展示
151 0
|
Web App开发 机器学习/深度学习 Windows
Python正则表达式一文详解+实例代码展示(下)
Python正则表达式一文详解+实例代码展示(下)
182 0
|
Python
Jupyter 编写python代码实现代码自动补齐功能设置实例演示
Jupyter 编写python代码实现代码自动补齐功能设置实例演示
250 0
Jupyter 编写python代码实现代码自动补齐功能设置实例演示
|
存储 数据可视化 应用服务中间件
数据卷使用方法
数据卷使用方法
170 0
C#反射使用方法过程及步骤
C#反射使用方法过程及步骤5. 针对 T 的泛类型定义的类,给属性赋值示例代码如下:
191 0