FUNCTION acyclic

(* SCHEMA integrated_cnc_schema; *)
FUNCTION acyclic (
    arg1 : generic_expression;
    arg2 : SET OF generic_expression 
    ) : BOOLEAN;
  LOCAL
    result : BOOLEAN;
  END_LOCAL;
    IF 'INTEGRATED_CNC_SCHEMA.SIMPLE_GENERIC_EXPRESSION' IN TYPEOF(arg1) 
      THEN
      RETURN (TRUE);
    END_IF;
    IF arg1 IN arg2 THEN
      RETURN (FALSE);
    END_IF;
    IF 'INTEGRATED_CNC_SCHEMA.UNARY_GENERIC_EXPRESSION' IN TYPEOF(arg1) 
      THEN
      RETURN (acyclic(arg1\unary_generic_expression.operand, arg2 + [ arg1 
        ]));
    END_IF;
    IF 'INTEGRATED_CNC_SCHEMA.BINARY_GENERIC_EXPRESSION' IN TYPEOF(arg1) 
      THEN
      RETURN (acyclic(arg1\binary_generic_expression.operands[1], (arg2 + [
         arg1 ])) AND acyclic(arg1\binary_generic_expression.operands[2], (
        arg2 + [ arg1 ])));
    END_IF;
    IF 'INTEGRATED_CNC_SCHEMA.MULTIPLE_ARITY_GENERIC_EXPRESSION' IN TYPEOF(
      arg1) THEN
      result := TRUE;
      REPEAT i := 1 TO SIZEOF(arg1\multiple_arity_generic_expression.
        operands);
        result := result AND acyclic(arg1\multiple_arity_generic_expression
          .operands[i], (arg2 + [ arg1 ]));
      END_REPEAT;
      RETURN (result);
    END_IF;
END_FUNCTION; -- 13584-20: iso13584_generic_expressions_schema

Referenced By

Defintion acyclic is references by the following definitions:
DefinitionType
 is_acyclic FUNCTION


[Top Level Definitions]

Generated by STEP ToolsTM EXPRESS to HTML Converter
on 2010-01-12T10:42:25-02:00