Go to the documentation of this file.
22 std::pair<exprt, string_constraintst>
25 const exprt &code_point)
123 std::pair<exprt, string_constraintst>
140 const exprt pair =
pair_value(char1_as_int, char2_as_int, return_type);
148 return {result, constraints};
155 std::pair<exprt, string_constraintst>
174 const exprt pair =
pair_value(char1_as_int, char2_as_int, return_type);
182 return {result, constraints};
190 std::pair<exprt, string_constraintst>
207 return {result, constraints};
216 std::pair<exprt, string_constraintst>
234 return {result, constraints};
const typet & length_type() const
std::pair< exprt, string_constraintst > add_axioms_for_code_point_count(const function_application_exprt &f)
Add axioms corresponding the String.codePointCount java function.
exprt minimum(const exprt &a, const exprt &b)
The type of an expression, extends irept.
symbol_generatort fresh_symbol
exprt get_or_create_length(const array_string_exprt &s)
Get the length of an array_string_exprt from the array_pool.
array_string_exprt get_string_expr(array_poolt &array_pool, const exprt &expr)
Fetch the string_exprt corresponding to the given refined_string_exprt.
const type_with_subtypet & to_type_with_subtype(const typet &type)
The plus expression Associativity is not specified.
static exprt is_low_surrogate(const exprt &chr)
the output is true when the character is a low surrogate for UTF-16 encoding, see https://en....
Base class for all expressions.
Collection of constraints of different types: existential formulas, universal formulas,...
Expression to hold a symbol (variable)
exprt::operandst argumentst
std::pair< exprt, string_constraintst > add_axioms_for_offset_by_code_point(const function_application_exprt &f)
Add axioms corresponding the String.offsetByCodePointCount java function.
typet & type()
Return the type of the expression.
exprt maximum(const exprt &a, const exprt &b)
static exprt is_high_surrogate(const exprt &chr)
the output is true when the character is a high surrogate for UTF-16 encoding, see https://en....
#define PRECONDITION(CONDITION)
Application of (mathematical) function.
Binary multiplication Associativity is not specified.
const irep_idt & id() const
signedbv_typet get_return_code_type()
bitvector_typet char_type()
A base class for relations, i.e., binary predicates whose two operands have the same type.
const typet & subtype() const
std::pair< exprt, string_constraintst > add_axioms_for_code_point_at(const function_application_exprt &f)
add axioms corresponding to the String.codePointAt java function
equal_exprt equal_to(exprt lhs, exprt rhs)
exprt pair_value(exprt char1, exprt char2, typet return_type)
the output corresponds to the unicode character given by the pair of characters of inputs assuming it...
Semantic type conversion.
std::pair< exprt, string_constraintst > add_axioms_for_code_point(const array_string_exprt &res, const exprt &code_point)
add axioms for the conversion of an integer representing a java code point to a utf-16 string
std::pair< exprt, string_constraintst > add_axioms_for_code_point_before(const function_application_exprt &f)
add axioms corresponding to the String.codePointBefore java function
Modulo defined as lhs-(rhs * truncate(lhs/rhs)).
std::vector< exprt > existential