Overview Schemas Index

Generic_expression_arm (jsdai.SGeneric_expression_arm)


FUNCTION Acyclic
          (arg1 : Generic_expression; arg2 : SET [0:?] OF Generic_expression) : BOOLEAN;

LOCAL
          result: BOOLEAN;
END_LOCAL;

IF ('GENERIC_EXPRESSION_ARM.SIMPLE_GENERIC_EXPRESSION'
          IN TYPEOF  (arg1)) 
THEN
          RETURN (TRUE);
END_IF;

IF arg1 IN arg2 
THEN 
          RETURN (FALSE);
END_IF;

IF 'GENERIC_EXPRESSION_ARM.UNARY_GENERIC_EXPRESSION' 
          IN TYPEOF  (arg1) 
THEN 
          RETURN 
          (Acyclic(arg1\Unary_generic_expression.operand,arg2+[arg1]));
END_IF;

IF 'GENERIC_EXPRESSION_ARM.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 
'GENERIC_EXPRESSION_ARM.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; -- Acyclic

public class FAcyclic
          public static Value run(SdaiContext _context, Value arg1, Value arg2)