137 unsigned char value=u&0x7f;
146 out.put(value | 0x80);
157 unsigned shift_distance=0;
161 if(shift_distance >=
sizeof(res) * 8)
164 unsigned char ch=static_cast<unsigned char>(in.get());
165 res|=(size_t(ch&0x7f))<<shift_distance;
182 for(std::string::const_iterator it=s.begin();
186 if(*it==0 || *it==
'\\')
202 while((c=static_cast<char>(in.get()))!=0)
248 std::pair<bool, irep_idt>(
false,
irep_idt()));
254 std::pair<bool, irep_idt>(
true, s);
Thrown when failing to deserialize a value from some low level format, like JSON or raw bytes.
const std::string & id2string(const irep_idt &d)
string_rev_mapt string_rev_map
std::vector< char > read_buffer
void write_gb_word(std::ostream &out, std::size_t u)
Write 7 bits of u each time, least-significant byte first, until we have zero.
irep_idt read_string_ref(std::istream &)
Read a string reference from the stream.
#define forall_named_irep(it, irep)
const irep_idt & id() const
ireps_on_readt ireps_on_read
void reference_convert(std::istream &, irept &irep)
dstring_hash irep_id_hash
named_subt & get_comments()
irep_full_hash_containert irep_full_hash_container
Base class for tree-like data structures with sharing.
void write_irep(std::ostream &, const irept &irep)
dstringt has one field, an unsigned integer no which is an index into a static table of strings.
ireps_containert & ireps_container
void write_gb_string(std::ostream &out, const std::string &s)
outputs the string and then a zero byte.
binary irep conversions with hashing
named_subt & get_named_sub()
irep_idt read_gb_string(std::istream &)
reads a string from the stream
void write_string_ref(std::ostream &, const irep_idt &)
Output a string and maintain a reference to it.
irept & add(const irep_namet &name)
ireps_on_writet ireps_on_write
static std::size_t read_gb_word(std::istream &)
Interpret a stream of byte as a 7-bit encoded unsigned number.
std::size_t number(const irept &irep)
void read_irep(std::istream &, irept &irep)
#define forall_irep(it, irep)