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_interface(SgClassDefinition* derived_class); 00031 00038 bool 00039 is_derived_from_sc_channel(SgClassDefinition* derived_class); 00040 00047 bool 00048 is_derived_from_sc_prim_channel(SgClassDefinition* derived_class); 00049 00056 bool 00057 is_derived_from_sc_module(SgClassDefinition* derived_class); 00058 00065 bool 00066 is_derived_from_sc_port(SgClassDefinition* derived_class); 00067 00074 bool 00075 is_derived_from_sc_port_base(SgClassDefinition* derived_class); 00076 00083 bool 00084 is_derived_from_sc_port_base(SgVarRefExp* var_ref); 00085 00092 bool 00093 is_derived_from_sc_prim_channel(SgClassDefinition* derived_class); 00094 00101 bool 00102 is_derived_from_sc_channel(SgClassDefinition* derived_class); 00103 00110 bool 00111 is_sc_event(SgClassDefinition* derived_class); 00112 00119 bool 00120 is_sc_event(SgVarRefExp* var_ref); 00121 00130 bool 00131 is_sc_in_port(SgTemplateInstantiationDefn* template_class); 00132 00141 bool 00142 is_sc_out_port(SgTemplateInstantiationDefn* template_class); 00143 00152 bool 00153 is_sc_inout_port(SgTemplateInstantiationDefn* template_class); 00154 00162 bool 00163 is_sc_in_clk(SgClassDefinition* definition); 00164 00172 bool 00173 is_sc_out_clk(SgClassDefinition* definition); 00174 00182 bool 00183 is_sc_inout_clk(SgClassDefinition* definition); 00184 00192 bool 00193 is_sc_in_bool(SgClassDefinition* definition); 00194 00195 } // end namespace tools 00196 00197 } // end namespace risc 00198 00199 #endif /* CLASS_IS_DERIVED_FROM_H_INCLUDED_ */ 00200 00201 /* ex: set softtabstop=2 tabstop=2 shiftwidth=2 expandtab: */