FUNCTION local_vars_aux
(thing : GENERIC, accum : SET [0:?] OF scalar_variable_armx) : SET [0:?] OF scalar_variable_armx;
LOCAL i,j,k : INTEGER; END_LOCAL; IF (('PRODUCTION_RULE_XIM.ABSTRACT_VARIABLE_ARMX' IN TYPEOF(thing)) AND ('PRODUCTION_RULE_XIM.RULE_DEFINITION' IN (TYPEOF(thing.scope)))) THEN accum := accum + thing; ELSE IF ('PRODUCTION_RULE_XIM.RULE_CONDITION_ARMX' IN TYPEOF(thing)) THEN REPEAT i := 1 TO HIINDEX(thing\Atomic_formula_armx.terms); accum := local_vars_aux(thing\Atomic_formula_armx.terms[i],accum); END_REPEAT; ELSE IF ('PRODUCTION_RULE_XIM.SIMPLE_CLAUSE_ARMX' IN TYPEOF(thing)) THEN REPEAT j := 1 TO HIINDEX(thing.formulas); accum := local_vars_aux(thing.formulas[j],accum); END_REPEAT; ELSE IF ('PRODUCTION_RULE_XIM.COMPLEX_CLAUSE_ARMX' IN TYPEOF(thing)) THEN REPEAT k := 1 TO HIINDEX(thing.clauses); accum := local_vars_aux(thing.clauses[k],accum); END_REPEAT; END_IF; END_IF; END_IF; END_IF; RETURN(accum); END_FUNCTION; -- local_vars_aux
|