FUNCTION consistent_bus_structural_definition
(input : SET [0:?] OF bus_element_link_armx) : BOOLEAN;
LOCAL vertex : SET OF bus_structural_definition_or_node := []; edge : INTEGER := SIZEOF(input); vc : INTEGER := 0; vertex_degree : INTEGER := 0; END_LOCAL;
REPEAT i := 1 TO SIZEOF(input) BY 1; vertex := vertex + input[i].precedent_element; vertex := vertex + input[i].subsequent_element; END_REPEAT; vc := SIZEOF(vertex); IF (vc <> (edge + 1)) THEN RETURN(FALSE); END_IF; REPEAT i := 1 TO vc BY 1; vertex_degree := 0; REPEAT j := 1 TO SIZEOF(input) BY 1; IF input[j].precedent_element = vertex[i] THEN vertex_degree := vertex_degree + 1; END_IF; IF input[j].subsequent_element = vertex[i] THEN vertex_degree := vertex_degree + 1; END_IF; END_REPEAT; IF (vertex_degree > 2) THEN RETURN(FALSE); END_IF; END_REPEAT; RETURN(TRUE); END_FUNCTION; -- consistent_bus_structural_definition
|