29 std::sort(numbers.begin(), numbers.end());
30 if(numbers.front() == numbers.back())
37 for(std::vector<mp_integer>::const_iterator it = numbers.begin();
41 const auto number = *it;
42 const auto next = std::next(it);
45 if(next != numbers.end() && *next <= number + 1)
65 if(next != numbers.end())
76 std::vector<mp_integer> &numbers,
83 "unterminated number range '" +
integer2string(*(++numbers.rbegin())) +
102 "lower bound must not be larger than upper bound '" +
106 numbers.push_back(i);
115 std::vector<mp_integer> numbers(1, 0);
121 if(
'0' <=
c &&
c <=
'9')
123 numbers.back() *= 10;
124 numbers.back() +=
c -
'0';
131 numbers.push_back(0);
140 "lower bound missing in number range '" +
number_range +
"'");
142 numbers.push_back(0);
149 std::string(
"character '") +
c +
"' not allowed in number range");
ait supplies three of the four components needed: an abstract interpreter (in this case handling func...
Thrown when failing to deserialize a value from some low level format, like JSON or raw bytes.
const std::string integer2string(const mp_integer &n, unsigned base)
#define PRECONDITION(CONDITION)
#define POSTCONDITION(CONDITION)