FUNCTION convert_to_literal
(val : maths_atom) : generic_literal;
LOCAL types : SET OF STRING := TYPEOF (val); END_LOCAL; IF 'INTEGER' IN types THEN RETURN (make_int_literal (val)); END_IF; IF 'REAL' IN types THEN RETURN (make_real_literal (val)); END_IF; IF 'BOOLEAN' IN types THEN RETURN (make_boolean_literal (val)); END_IF; IF 'STRING' IN types THEN RETURN (make_string_literal (val)); END_IF; IF 'LOGICAL' IN types THEN RETURN (make_logical_literal (val)); END_IF; IF 'BINARY' IN types THEN RETURN (make_binary_literal (val)); END_IF; IF (schema_prefix + 'MATHS_ENUM_ATOM') IN types THEN RETURN (make_maths_enum_literal (val)); END_IF; -- Should be unreachable RETURN (?); END_FUNCTION; -- convert_to_literal
|