FUNCTION get_base_component
(input : stratum) : SET [0:?] OF area_component;
LOCAL ac: SET OF Area_component := []; i : INTEGER := 0; sf : SET OF Stratum_feature := bag_to_set(USEDIN(input,'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE.RESIDENT_STRATUM')); sftc_s : SET OF Stratum_feature_template_component := bag_to_set( USEDIN(input,'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE_TEMPLATE_COMPONENT.IMPLEMENTATION_OR_RESIDENT_STRATUM')); sftc_sf : SET OF Stratum_feature_template_component := []; sftc_t : SET OF Stratum_feature_template_component := []; END_LOCAL; REPEAT i := 1 TO HIINDEX(sf) BY 1; sftc_sf := sftc_sf + bag_to_set(USEDIN(sf[i],'LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.STRATUM_FEATURE_TEMPLATE_COMPONENT.IMPLEMENTATION_OR_RESIDENT_STRATUM')); END_REPEAT; sftc_t := sftc_s + sftc_sf; REPEAT i := 1 TO HIINDEX(sftc_t) BY 1; IF(('LAYERED_INTERCONNECT_MODULE_DESIGN_ARM.AREA_COMPONENT' IN TYPEOF(sftc_t[i])) AND (sftc_t[i]\Area_component_armx.is_base = TRUE)) THEN ac := ac + sftc_t[i]; END_IF; END_REPEAT; RETURN(ac); END_FUNCTION; -- get_base_component
|