00001 #ifndef CLASS_IS_DERIVED_FROM_H_INCLUDED_
00002 #define CLASS_IS_DERIVED_FROM_H_INCLUDED_
00003
00004 #include "rose.h"
00005
00006 namespace risc {
00007
00008 namespace tools {
00009
00018 bool
00019 is_derived_from (SgClassDefinition* derived_class,
00020 SgClassDefinition* base_class);
00021
00022
00029 bool
00030 is_derived_from_sc_module(SgClassDefinition* derived_class);
00031
00038 bool
00039 is_derived_from_sc_port(SgClassDefinition* derived_class);
00040
00047 bool
00048 is_derived_from_sc_port_base(SgClassDefinition* derived_class);
00049
00056 bool
00057 is_derived_from_sc_port_base(SgVarRefExp* var_ref);
00058
00065 bool
00066 is_derived_from_sc_prim_channel(SgClassDefinition* derived_class);
00067
00074 bool
00075 is_derived_from_sc_channel(SgClassDefinition* derived_class);
00076
00083 bool
00084 is_sc_event(SgClassDefinition* derived_class);
00085
00092 bool
00093 is_sc_event(SgVarRefExp* var_ref);
00094
00103 bool
00104 is_sc_in_port(SgTemplateInstantiationDefn* template_class);
00105
00114 bool
00115 is_sc_out_port(SgTemplateInstantiationDefn* template_class);
00116
00125 bool
00126 is_sc_inout_port(SgTemplateInstantiationDefn* template_class);
00127
00135 bool
00136 is_sc_in_clk(SgClassDefinition* definition);
00137
00145 bool
00146 is_sc_out_clk(SgClassDefinition* definition);
00147
00155 bool
00156 is_sc_inout_clk(SgClassDefinition* definition);
00157
00165 bool
00166 is_sc_in_bool(SgClassDefinition* definition);
00167
00168 }
00169
00170 }
00171
00172 #endif
00173
00174