Overview Schemas Index

Expression_arm (jsdai.SExpression_arm)


FUNCTION Is_int_expr
          (arg : Numeric_expression) : BOOLEAN;

LOCAL
          i: INTEGER;
END_LOCAL;

IF 'EXPRESSION_ARM.INT_LITERAL' IN  TYPEOF(arg) 
THEN 
          RETURN (TRUE); 
END_IF;
IF 'EXPRESSION_ARM.REAL_LITERAL' IN  TYPEOF(arg) 
THEN 
          RETURN (FALSE); 
END_IF;
IF 'EXPRESSION_ARM.INT_NUMERIC_VARIABLE' IN  TYPEOF(arg) 
THEN 
          RETURN (TRUE); 
END_IF;
IF 'EXPRESSION_ARM.REAL_NUMERIC_VARIABLE' IN  TYPEOF(arg) 
THEN 
          RETURN (FALSE); 
END_IF;
IF 'NUMERIC_FUNCTION_ARM.ABS_FUNCTION' IN  TYPEOF(arg) 
THEN 
          RETURN (Is_int_expr(arg\Unary_numeric_expression.operand));
END_IF;
IF 'NUMERIC_FUNCTION.MINUS_FUNCTION' IN  TYPEOF(arg) 
THEN 
          RETURN (Is_int_expr(arg\Unary_numeric_expression.operand)); 
END_IF;
IF ('NUMERIC_FUNCTION_ARM.SIN_FUNCTION' IN  TYPEOF(arg)) 
                    OR ('NUMERIC_FUNCTION_ARM.COS_FUNCTION' IN  TYPEOF(arg))
                    OR ('NUMERIC_FUNCTION_ARM.TAN_FUNCTION' IN  TYPEOF(arg))
                    OR ('NUMERIC_FUNCTION_ARM.ASIN_FUNCTION' IN  TYPEOF(arg))
                    OR ('NUMERIC_FUNCTION_ARM.ACOS_FUNCTION' IN  TYPEOF(arg))
                    OR ('NUMERIC_FUNCTION_ARM.Atan_function' IN  TYPEOF(arg))
                    OR ('NUMERIC_FUNCTION_ARM.EXP_FUNCTION' IN  TYPEOF(arg))
                    OR ('NUMERIC_FUNCTION_ARM.LOG_FUNCTION' IN  TYPEOF(arg))
                    OR ('NUMERIC_FUNCTION_ARM.LOG2_FUNCTION' IN  TYPEOF(arg))
                    OR ('NUMERIC_FUNCTION_ARM.LOG10_FUNCTION' IN  TYPEOF(arg))
                    OR ('NUMERIC_FUNCTION_ARM.SQUARE_ROOT_FUNCTION' 
                                                                                IN TYPEOF(arg))
THEN 
          RETURN (FALSE);
END_IF;
IF           ('EXPRESSION_ARM.PLUS_EXPRESSION' IN  TYPEOF(arg))
                    OR ('NUMERIC_FUNCTION_ARM.MULT_EXPRESSION' 
                                                                                IN TYPEOF(arg))
                    OR ('NUMERIC_FUNCTION_ARM.MAXIMUM_FUNCTION'
                                                                                IN TYPEOF(arg))
                    OR ('NUMERIC_FUNCTION_ARM.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           ('EXPRESSION_ARM.MINUS_EXPRESSION' IN  TYPEOF(arg))
                    OR ('EXPRESSION_ARM.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          ('EXPRESSION_ARM.DIV_EXPRESSION' IN  TYPEOF(arg))
                    OR ('EXPRESSION_ARM.MOD_EXPRESSION' IN  TYPEOF(arg))
THEN 
          RETURN(TRUE);         
END_IF;
IF 'EXPRESSION_ARM.SLASH_EXPRESSION' IN  TYPEOF(arg) 
THEN 
          RETURN (FALSE);          
END_IF;
IF 'NUMERIC_FUNCTION_ARM.LENGTH_FUNCTION' IN  TYPEOF(arg) 
THEN 
          RETURN (TRUE); 
END_IF;
IF 'NUMERIC_FUNCTION_ARM.VALUE_FUNCTION' IN  TYPEOF(arg) 
THEN 
          IF 'NUMERIC_FUNCTION_ARM.INT_VALUE_FUNCTION' 
                                                                                IN TYPEOF(arg) 
          THEN 
                    RETURN (TRUE); 
          ELSE 
                    RETURN (FALSE); 
          END_IF;
END_IF;
IF 'NUMERIC_FUNCTION_ARM.INTEGER_DEFINED_FUNCTION' 
                                                                                IN TYPEOF(arg)
THEN 
          RETURN(TRUE) ;
END_IF;
IF'NUMERIC_FUNCTION_ARM.REAL_DEFINED_FUNCTION' IN TYPEOF(arg) 
THEN 
          RETURN(FALSE) ;
END_IF ;
IF 'EXPRESSION_ARM.BOOLEAN_DEFINED_FUNCTION' 
                                                                                IN TYPEOF(arg)
THEN 
          RETURN(FALSE) ;
END_IF ;
IF 'EXPRESSION_ARM.STRING_DEFINED_FUNCTION' 
                                                                                IN TYPEOF(arg)
THEN 
          RETURN (FALSE) ;
END_IF ;

RETURN (FALSE);

END_FUNCTION; -- Is_int_expr

public class FIs_int_expr
          public static Value run(SdaiContext _context, Value arg)