|
FUNCTION used_functions (arg : expression) : SET [0:?] OF defined_function; LOCAL result : SET OF defined_function := [ ] ; END_LOCAL ; IF ( 'iso13584_expressions_schema.defined_function' IN TYPEOF ( arg ) ) THEN RETURN ( [ arg ] ) ; END_IF ; IF 'iso13584_expressions_schema.unary_numeric_expression' IN TYPEOF ( arg ) THEN RETURN ( used_functions ( arg \ unary_numeric_expression . operand ) ) ; END_IF ; IF 'iso13584_expressions_schema.binary_numeric_expression' IN TYPEOF ( arg ) THEN RETURN ( used_functions ( arg \ binary_numeric_expression . operands [ 1 ] ) + used_functions ( arg \ binary_numeric_expression . operands [ 2 ] ) ) ; END_IF ; IF 'iso13584_expressions_schema.multiple_arity_numeric_expression' IN TYPEOF ( arg ) THEN REPEAT i := 1 TO SIZEOF ( arg \ multiple_arity_numeric_expression . operands ) ; result := result + used_functions ( arg \ multiple_arity_numeric_expression . operands [ i ] ) ; END_REPEAT ; RETURN ( result ) ; END_IF ; IF 'iso13584_expressions_schema.unary_generic_expression' IN TYPEOF ( arg ) THEN RETURN ( used_functions ( arg \ unary_generic_expression . operand ) ) ; END_IF ; IF 'iso13584_expressions_schema.binary_boolean_expression' IN TYPEOF ( arg ) THEN RETURN ( used_functions ( arg \ binary_generic_expression . operands [ 1 ] ) + used_functions ( arg \ binary_generic_expression . operands [ 2 ] ) ) ; END_IF ; IF 'iso13584_expressions_schema.multiple_arity_boolean_expression' IN TYPEOF ( arg ) THEN REPEAT i := 1 TO SIZEOF ( arg \ multiple_arity_boolean_expression . operands ) ; result := result + used_functions ( arg \ multiple_arity_boolean_expression . operands [ i ] ) ; END_REPEAT ; RETURN ( result ) ; END_IF ; IF 'iso13584_expressions_schema.comparison_expression' IN TYPEOF ( arg ) THEN RETURN ( used_functions ( arg \ comparison_expression . operands [ 1 ] ) + used_functions ( arg \ comparison_expression . operands [ 2 ] ) ) ; END_IF ; IF 'iso13584_expressions_schema.interval_expression' IN TYPEOF ( arg ) THEN RETURN ( used_functions ( arg \ interval_expression . interval_low ) + used_functions ( arg \ interval_expression . interval_high ) + used_functions ( arg \ interval_expression . interval_item ) ) ; END_IF ; IF 'iso13584_expressions_schema.index_expression' IN TYPEOF ( arg ) THEN RETURN ( used_functions ( arg \ index_expression . operand ) + used_functions ( arg \ index_expression . index ) ) ; END_IF ; IF 'iso13584_expressions_schema.substring_expression' IN TYPEOF ( arg ) THEN RETURN ( used_functions ( arg \ substring_expression . operand ) + used_functions ( arg \ substring_expression . index1 ) + used_functions ( arg \ substring_expression . index2 ) ) ; END_IF ; IF 'iso13584_expressions_schema.concat_expression' IN TYPEOF ( arg ) THEN REPEAT i := 1 TO SIZEOF ( arg \ concat_expression . operands ) ; result := result + used_functions ( arg \ concat_expression . operands [ i ] ) ; END_REPEAT ; RETURN ( result ) ; END_IF ; IF 'iso13584_expressions_schema.format_function' IN TYPEOF ( arg ) THEN RETURN ( used_functions ( arg \ format_function . value_to_format ) + used_functions ( arg \ format_function . format_string ) ) ; END_IF ; IF 'iso13584_expressions_schema.like_expression' IN TYPEOF ( arg ) THEN RETURN ( used_functions ( arg \ binary_generic_expression . operands [ 1 ] ) + used_functions ( arg \ binary_generic_expression . operands [ 2 ] ) ) ; END_IF ; RETURN ( [ ] ) ; END_FUNCTION; -- used_functions |
|
public class FUsed_functions public static Value run(SdaiContext _context, Value arg) |