type_t type_universal_real(void) { static type_t t = NULL; if (t == NULL) { tree_t min = tree_new(T_LITERAL); tree_set_subkind(min, L_REAL); tree_set_dval(min, -DBL_MAX); tree_t max = tree_new(T_LITERAL); tree_set_subkind(max, L_REAL); tree_set_dval(max, DBL_MAX); t = type_make_universal(T_REAL, "universal real", min, max); } return t; }
tree_t get_real_lit(tree_t t, double r) { tree_t f = tree_new(T_LITERAL); tree_set_loc(f, tree_loc(t)); tree_set_subkind(f, L_REAL); tree_set_dval(f, r); tree_set_type(f, tree_type(t)); return f; }