CBMC
string_builtin_function.cpp File Reference
#include "string_builtin_function.h"
#include <algorithm>
#include <iterator>
#include "string_constraint_generator.h"
+ Include dependency graph for string_builtin_function.cpp:

Go to the source code of this file.

Functions

std::optional< std::vector< mp_integer > > eval_string (const array_string_exprt &a, const std::function< exprt(const exprt &)> &get_value)
 Given a function get_value which gives a valuation to expressions, attempt to find the current value of the array a. More...
 
template<typename Iter >
static array_string_exprt make_string (Iter begin, Iter end, const array_typet &array_type)
 
array_string_exprt make_string (const std::vector< mp_integer > &array, const array_typet &array_type)
 Make a string from a constant array. More...
 
static bool eval_is_upper_case (const mp_integer &c)
 
static exprt is_upper_case (const exprt &character)
 Expression which is true for uppercase characters of the Basic Latin and Latin-1 supplement of unicode. More...
 
static exprt is_lower_case (const exprt &character)
 Expression which is true for lower_case characters of the Basic Latin and Latin-1 supplement of unicode. More...
 

Function Documentation

◆ eval_is_upper_case()

static bool eval_is_upper_case ( const mp_integer c)
static

Definition at line 209 of file string_builtin_function.cpp.

◆ eval_string()

std::optional<std::vector<mp_integer> > eval_string ( const array_string_exprt a,
const std::function< exprt(const exprt &)> &  get_value 
)

Given a function get_value which gives a valuation to expressions, attempt to find the current value of the array a.

If the valuation of some characters are missing, then return an empty optional.

Definition at line 24 of file string_builtin_function.cpp.

◆ is_lower_case()

static exprt is_lower_case ( const exprt character)
static

Expression which is true for lower_case characters of the Basic Latin and Latin-1 supplement of unicode.

Definition at line 269 of file string_builtin_function.cpp.

◆ is_upper_case()

static exprt is_upper_case ( const exprt character)
static

Expression which is true for uppercase characters of the Basic Latin and Latin-1 supplement of unicode.

Definition at line 239 of file string_builtin_function.cpp.

◆ make_string() [1/2]

array_string_exprt make_string ( const std::vector< mp_integer > &  array,
const array_typet array_type 
)

Make a string from a constant array.

Definition at line 71 of file string_builtin_function.cpp.

◆ make_string() [2/2]

template<typename Iter >
static array_string_exprt make_string ( Iter  begin,
Iter  end,
const array_typet array_type 
)
static

Definition at line 59 of file string_builtin_function.cpp.