AstNode类:用于解析Verilog
一些遍历(passes)算法是通过图算法实现的,类V3Graph用来表示这些图。这些图是有向的,算法用来操纵图并把图结构输出生成 `GraphViz `__ dot格式的文件,V3Graph.h提供了这个类的文档。
V3GraphVertex类:
V3GraphVertex类是图结构中点对应的基类,Vertex有三个属性:fanout(扇出)、color(点着色)和rank(边排序),这三个属性很有可能用在对图做排序的算法中。此外,还提供了一个通用的user/userp成员变量,用来标记某个算法。
提供了虚拟函数来说明name、color、shape和style特征来输出到dot文件。通常V3GraphVertex的派生类会重写这些方法。
Iterators被用来访问入边和出边,通常的调用形式:
V3GraphEdge类:
V3GraphEdge是图结构中有向边的基类,有两个属性:权重(weight)和是否可裁剪(cutable),与V3GraphVertex类似,还提供了一个通用的user/userp成员变量,用来标记某个算法。
访问函数(Accessor)fromp和top分别返回入节点和出节点。提供了虚拟函数来说明label、color和style特征来输出到dot文件。通常V3GraphVertex的派生类会重写这些方法。
GraphAlg类:
GraphAlg是图算法的基类,其执行了一种bool型的followEdge方法来判断是否跟随(follow)一条边,如果改图的边大于0并且edgeFuncp函数(构造函数传入)返回为真那么followEdge函数返回真。
没有回复内容