98 std::cerr <<
"irep not terminated\n";
110 ireps_containert::ireps_on_writet::const_iterator fi=
130 std::pair<ireps_containert::ireps_on_writet::const_iterator, bool> res=
137 return res.first->second;
153 throw "irep id read twice.";
157 std::pair<bool, irept>(
true, i);
172 unsigned char value=u&0x7f;
181 out.put(value | 0x80);
192 unsigned shift_distance=0;
196 unsigned char ch=in.get();
197 res|=(size_t(ch&0x7f))<<shift_distance;
211 for(std::string::const_iterator it=s.begin();
215 if(*it==0 || *it==
'\\')
231 while((c = in.get()) != 0)
277 std::pair<bool, irep_idt>(
false,
irep_idt()));
287 std::pair<bool, irep_idt>(
true, s);
const irept & get_nil_irep()
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)
outputs 4 characters for a long, most-significant byte first
irep_idt read_string_ref(std::istream &)
reads a string reference from the stream
#define forall_named_irep(it, irep)
std::size_t insert_on_write(std::size_t h)
inserts an irep into the hashtable
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)
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 &)
outputs the string reference
irept & add(const irep_namet &name)
ireps_on_writet ireps_on_write
static std::size_t read_gb_word(std::istream &)
reads 4 characters and builds a long int from them
std::size_t insert_on_read(std::size_t id, const irept &)
inserts an irep into the hashtable, but only the id-hashtable (only to be used upon reading ireps fro...
size_t number(const irept &irep)
void read_irep(std::istream &, irept &irep)
#define forall_irep(it, irep)