56 return typet(
"jsil_member_reference_type");
61 return typet(
"jsil_variable_reference_type");
72 return typet(
"jsil_user_object_type");
77 return typet(
"jsil_builtin_object_type");
82 return typet(
"jsil_null_type");
87 return typet(
"jsil_undefined_type");
92 return typet(
"jsil_kind");
97 return typet(
"jsil_empty_type");
138 for(
const auto &type :
types)
160 std::vector<union_typet::componentt>::iterator it=std::set_union(
164 elements.resize(it-elements.begin());
177 std::vector<union_typet::componentt>::iterator it=std::set_intersection(
181 elements.resize(it-elements.begin());
198 if(it->type().id()==
it2->type().id())
204 else if(it->type().id()<
it2->type().id())
222 if(elements.size()==1)
223 return elements[0].type();
Pre-defined bitvector types.
const union_typet & to_union_type(const typet &type)
Cast a typet to a union_typet.
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
Fixed-width bit-vector with IEEE floating-point interpretation.
jsil_union_typet union_with(const jsil_union_typet &other) const
jsil_union_typet intersect_with(const jsil_union_typet &other) const
bool is_subtype(const jsil_union_typet &other) const
const typet & to_type() const
const componentst & components() const
The type of an expression, extends irept.
bool compare_components(const union_typet::componentt &comp1, const union_typet::componentt &comp2)
typet jsil_value_or_empty_type()
typet jsil_undefined_type()
typet jsil_variable_reference_type()
bool jsil_is_subtype(const typet &type1, const typet &type2)
typet jsil_builtin_object_type()
typet jsil_user_object_type()
typet jsil_union(const typet &type1, const typet &type2)
bool jsil_incompatible_types(const typet &type1, const typet &type2)
typet jsil_reference_type()
typet jsil_member_reference_type()
typet jsil_value_or_reference_type()
jsil_union_typet & to_jsil_union_type(typet &type)
auto component(T &struct_expr, const irep_idt &name, const namespacet &ns) -> decltype(struct_expr.op0())