|
FUNCTION no_cyclic_domain_reference (ref : maths_space_or_function, used : SET [0:?] OF maths_function) : BOOLEAN; LOCAL typenames : SET OF STRING := TYPEOF ( ref ) ; func : maths_function ; END_LOCAL ; IF ( NOT EXISTS ( ref ) ) OR ( NOT EXISTS ( used ) ) THEN RETURN ( FALSE ) ; END_IF ; IF ( schema_prefix + 'maths_space' ) IN typenames THEN RETURN ( TRUE ) ; END_IF ; func := ref ; IF func IN used THEN RETURN ( FALSE ) ; END_IF ; IF ( schema_prefix + 'constant_function' ) IN typenames THEN RETURN ( no_cyclic_domain_reference ( func \ constant_function . source_of_domain , used + [ func ] ) ) ; END_IF ; IF ( schema_prefix + 'selector_function' ) IN typenames THEN RETURN ( no_cyclic_domain_reference ( func \ selector_function . source_of_domain , used + [ func ] ) ) ; END_IF ; IF ( schema_prefix + 'parallel_composed_function' ) IN typenames THEN RETURN ( no_cyclic_domain_reference ( func \ parallel_composed_function . source_of_domain , used + [ func ] ) ) ; END_IF ; RETURN ( TRUE ) ; END_FUNCTION; -- no_cyclic_domain_reference |
|
public class FNo_cyclic_domain_reference public static Value run(SdaiContext _context, Value ref, Value used) |