FUNCTION is_int_expr
(* SCHEMA AUTOMOTIVE_DESIGN; *)
FUNCTION is_int_expr(arg : numeric_expression) : BOOLEAN;
LOCAL
i : INTEGER;
END_LOCAL;
IF 'AUTOMOTIVE_DESIGN.INT_LITERAL' IN TYPEOF(arg) THEN
RETURN (TRUE);
END_IF;
IF 'AUTOMOTIVE_DESIGN.REAL_LITERAL' IN TYPEOF(arg) THEN
RETURN (FALSE);
END_IF;
IF 'AUTOMOTIVE_DESIGN.INT_NUMERIC_VARIABLE' IN TYPEOF(arg) THEN
RETURN (TRUE);
END_IF;
IF 'AUTOMOTIVE_DESIGN.REAL_NUMERIC_VARIABLE' IN TYPEOF(arg) THEN
RETURN (FALSE);
END_IF;
IF 'AUTOMOTIVE_DESIGN.ABS_FUNCTION' IN TYPEOF(arg) THEN
RETURN (is_int_expr(arg\unary_numeric_expression.operand));
END_IF;
IF 'AUTOMOTIVE_DESIGN.MINUS_FUNCTION' IN TYPEOF(arg) THEN
RETURN (is_int_expr(arg\unary_numeric_expression.operand));
END_IF;
IF ('AUTOMOTIVE_DESIGN.SIN_FUNCTION' IN TYPEOF(arg)) OR (
'AUTOMOTIVE_DESIGN.COS_FUNCTION' IN TYPEOF(arg)) OR (
'AUTOMOTIVE_DESIGN.TAN_FUNCTION' IN TYPEOF(arg)) OR (
'AUTOMOTIVE_DESIGN.ASIN_FUNCTION' IN TYPEOF(arg)) OR (
'AUTOMOTIVE_DESIGN.ACOS_FUNCTION' IN TYPEOF(arg)) OR (
'AUTOMOTIVE_DESIGN.ATAN_FUNCTION' IN TYPEOF(arg)) OR (
'AUTOMOTIVE_DESIGN.EXP_FUNCTION' IN TYPEOF(arg)) OR (
'AUTOMOTIVE_DESIGN.LOG_FUNCTION' IN TYPEOF(arg)) OR (
'AUTOMOTIVE_DESIGN.LOG2_FUNCTION' IN TYPEOF(arg)) OR (
'AUTOMOTIVE_DESIGN.LOG10_FUNCTION' IN TYPEOF(arg)) OR (
'AUTOMOTIVE_DESIGN.SQUARE_ROOT_FUNCTION' IN TYPEOF(arg)) THEN
RETURN (FALSE);
END_IF;
IF ('AUTOMOTIVE_DESIGN.PLUS_EXPRESSION' IN TYPEOF(arg)) OR (
'AUTOMOTIVE_DESIGN.MULT_EXPRESSION' IN TYPEOF(arg)) OR (
'AUTOMOTIVE_DESIGN.MAXIMUM_FUNCTION' IN TYPEOF(arg)) OR (
'AUTOMOTIVE_DESIGN.MINIMUM_FUNCTION' IN TYPEOF(arg)) THEN
REPEAT i := 1 TO SIZEOF(arg\multiple_arity_numeric_expression.operands);
IF NOT is_int_expr(arg\multiple_arity_numeric_expression.operands[i])
THEN
RETURN (FALSE);
END_IF;
END_REPEAT;
RETURN (TRUE);
END_IF;
IF ('AUTOMOTIVE_DESIGN.MINUS_EXPRESSION' IN TYPEOF(arg)) OR (
'AUTOMOTIVE_DESIGN.POWER_EXPRESSION' IN TYPEOF(arg)) THEN
RETURN (is_int_expr(arg\binary_numeric_expression.operands[1]) AND
is_int_expr(arg\binary_numeric_expression.operands[2]));
END_IF;
IF ('AUTOMOTIVE_DESIGN.DIV_EXPRESSION' IN TYPEOF(arg)) OR (
'AUTOMOTIVE_DESIGN.MOD_EXPRESSION' IN TYPEOF(arg)) THEN
RETURN (TRUE);
END_IF;
IF 'AUTOMOTIVE_DESIGN.SLASH_EXPRESSION' IN TYPEOF(arg) THEN
RETURN (FALSE);
END_IF;
IF 'AUTOMOTIVE_DESIGN.LENGTH_FUNCTION' IN TYPEOF(arg) THEN
RETURN (TRUE);
END_IF;
IF 'AUTOMOTIVE_DESIGN.VALUE_FUNCTION' IN TYPEOF(arg) THEN
IF 'AUTOMOTIVE_DESIGN.INT_VALUE_FUNCTION' IN TYPEOF(arg) THEN
RETURN (TRUE);
ELSE
RETURN (FALSE);
END_IF;
END_IF;
IF 'AUTOMOTIVE_DESIGN.INTEGER_DEFINED_FUNCTION' IN TYPEOF(arg) THEN
RETURN (TRUE);
END_IF;
IF 'AUTOMOTIVE_DESIGN.REAL_DEFINED_FUNCTION' IN TYPEOF(arg) THEN
RETURN (FALSE);
END_IF;
IF 'AUTOMOTIVE_DESIGN.BOOLEAN_DEFINED_FUNCTION' IN TYPEOF(arg) THEN
RETURN (FALSE);
END_IF;
IF 'AUTOMOTIVE_DESIGN.STRING_DEFINED_FUNCTION' IN TYPEOF(arg) THEN
RETURN (FALSE);
END_IF;
RETURN (FALSE);
END_FUNCTION; (* declared in: iso13584_expressions_schema *)
Referenced By
Defintion is_int_expr is references by the following definitions:
[Top Level Definitions] [Exit]Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:16:12-04:00