获取Specman中所有结构扩展的源引用

时间:2015-10-06 13:40:30

标签: specman

我熟悉Specman中的collect命令,它返回所有指定方法的扩展名。但是,某个结构的show source仅返回基本结构定义,而不是所有扩展。 在Specman中有一个命令,相当于collect,但是对于结构/单位?

1 个答案:

答案 0 :(得分:4)

在Specman中没有这样的命令,但由于e是一种非常灵活的语言,你可以使用功能强大的e宏添加你可能需要的任何命令。

例如,要实现所需的内容,可以创建一个利用反射的宏 获取所需结构的所有层然后打印相关源代码行的机制:

define <struct_collect'command> "s_collect <any>" as {
var line_num:int;
var st:rf_struct = rf_manager.get_struct_by_name("<1>");
if (st==NULL) {
    out(append("struct name does not exist : <1>"));
} else {
    for each in st.as_a(rf_like_struct).get_layers() {
        line_num=it.get_source_line_num();
        out(append("In file ",it.get_module().get_name()," line ",line_num, " : ",files.get_text_lines(it.get_module().get_full_file_name(), line_num,line_num)));

    };    
  };  
};

您可以通过将结果写入文件或以不同方式进行排列来改进此宏。

干杯