扫描器的实现
约 243 字小于 1 分钟
2024-12-28
扫描器的实现
这里不想叙述书中所列举的,表驱动扫描器,直接编码扫描器,和手写扫描器的区别。说实话感觉不明显。
这里我想记录一下书中所说的扫描器实现的一些优化。
Double buffering。即采用双重缓冲,有点类似于Ping-Pong缓存的想法。
具体实现的细节会有当前指针
input
,和缓冲区开始的指针fence
。当扫描器回滚的时候,如果input
回滚到fence
就直接报错。下面直接看我实现的C++样例代码。压缩状态表,其中可以使用基数排序的思想,对每一列非错误状态的数量技术的先进行分组,在逐个比较,避免了大量的比较操作。
更新日志
2024/12/28 13:06
查看所有更新日志
4e0c4
-更新完编译器扫描器于