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:
DefinitionType
 index_expression ENTITY
 numeric_expression ENTITY
 odd_function ENTITY
 substring_expression ENTITY


[Top Level Definitions] [Exit]

Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:16:12-04:00