prog.h 和 prog.cc定义了几种基本的数据结构:
Bitmap(用bit位来标记某个元素的值),主要用于bytemap字符到字符集合的计算,划分字符区间:[00-ff],[61-61],[62-62],[63-63]
InstOp(几种基本的指令操作码,与Inst对应),
EmptyOp(^,$,\A,\z,\b,\B),
Inst表示指令,所有的正则表达式都可以由这几种指令所构成 (类似NFA的几种基本结构,复杂的大型结构由多种基本结构复合构成)Inst定义了若干函数构建对应的基本结构
Anchor,
MatchKind, 匹配时的贪婪与否
Prog Compile之后的类型,类似于NFA,
compile.cc文件
PatchList 看做指针,下标就好,自定义的一种指针 定义了Mk,Patch,Deref,Append四个基本操作函数接口使多个Inst结合为一个Frag(就是将多个NFA的基本结构连接为一个NFA图的结构Frag)
Frag 结构,多个Inst复合的一种结构,包括开始Inst和结束Inst,与PatchList的函数一起使用对多个Inst结合为一个大的Frag
Encoding 编码方式,项目中使用的应该是kEncodingLatin1编码方式
Compiler
后序遍历构建的Regexp结构(如ab*c|d -> ab*.c.d|),每读取一个元素,建立对应的基本Inst结构,当遇到符号要进行归并时,建立对应的Inst结构并将其中的out&#
Bitmap(用bit位来标记某个元素的值),主要用于bytemap字符到字符集合的计算,划分字符区间:[00-ff],[61-61],[62-62],[63-63]
InstOp(几种基本的指令操作码,与Inst对应),
EmptyOp(^,$,\A,\z,\b,\B),
Inst表示指令,所有的正则表达式都可以由这几种指令所构成 (类似NFA的几种基本结构,复杂的大型结构由多种基本结构复合构成)Inst定义了若干函数构建对应的基本结构
Anchor,
MatchKind, 匹配时的贪婪与否
Prog Compile之后的类型,类似于NFA,
compile.cc文件
PatchList 看做指针,下标就好,自定义的一种指针 定义了Mk,Patch,Deref,Append四个基本操作函数接口使多个Inst结合为一个Frag(就是将多个NFA的基本结构连接为一个NFA图的结构Frag)
Frag 结构,多个Inst复合的一种结构,包括开始Inst和结束Inst,与PatchList的函数一起使用对多个Inst结合为一个大的Frag
Encoding 编码方式,项目中使用的应该是kEncodingLatin1编码方式
Compiler
后序遍历构建的Regexp结构(如ab*c|d -> ab*.c.d|),每读取一个元素,建立对应的基本Inst结构,当遇到符号要进行归并时,建立对应的Inst结构并将其中的out&#