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

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

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


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


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


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


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


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


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


 算数。就是有效的标记。


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

目录
相关文章
|
10天前
|
SQL 存储 关系型数据库
数据库开发之图形化工具以及表操作的详细解析
数据库开发之图形化工具以及表操作的详细解析
26 0
|
20天前
|
SQL 分布式计算 监控
Sqoop数据迁移工具使用与优化技巧:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入解析Sqoop的使用、优化及面试策略。内容涵盖Sqoop基础,包括安装配置、命令行操作、与Hadoop生态集成和连接器配置。讨论数据迁移优化技巧,如数据切分、压缩编码、转换过滤及性能监控。此外,还涉及面试中对Sqoop与其他ETL工具的对比、实际项目挑战及未来发展趋势的讨论。通过代码示例展示了从MySQL到HDFS的数据迁移。本文旨在帮助读者在面试中展现Sqoop技术实力。
62 2
|
21天前
|
Java
Java中ReentrantLock释放锁代码解析
Java中ReentrantLock释放锁代码解析
25 8
|
1天前
|
C++
【期末不挂科-C++考前速过系列P6】大二C++实验作业-模板(4道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P6】大二C++实验作业-模板(4道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P6】大二C++实验作业-模板(4道代码题)【解析,注释】
|
1天前
|
Serverless C++ 容器
【期末不挂科-C++考前速过系列P5】大二C++实验作业-多态性(3道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P5】大二C++实验作业-多态性(3道代码题)【解析,注释】
|
1天前
|
C++ 芯片
【期末不挂科-C++考前速过系列P4】大二C++实验作业-继承和派生(3道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P4】大二C++实验作业-继承和派生(3道代码题)【解析,注释】
|
1天前
|
编译器 C++
【期末不挂科-C++考前速过系列P3】大二C++第3次过程考核(20道选择题&12道判断题&2道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P3】大二C++第3次过程考核(20道选择题&12道判断题&2道代码题)【解析,注释】
|
1天前
|
C++
【期末不挂科-C++考前速过系列P2】大二C++第2次过程考核(20道选择题&10道判断题&3道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P2】大二C++第2次过程考核(20道选择题&10道判断题&3道代码题)【解析,注释】
|
2天前
|
存储 数据安全/隐私保护 C++
【期末不挂科-C++考前速过系列P1】大二C++第1次过程考核(3道简述题&7道代码题)【解析,注释】
【期末不挂科-C++考前速过系列P1】大二C++第1次过程考核(3道简述题&7道代码题)【解析,注释】
|
7天前
|
大数据 图形学 云计算
EDA设计:技术深度解析与实战代码应用
EDA设计:技术深度解析与实战代码应用

推荐镜像

更多