* Archiving of GiNaC expressions. */
/*
- * GiNaC Copyright (C) 1999-2000 Johannes Gutenberg University Mainz, Germany
+ * GiNaC Copyright (C) 1999-2001 Johannes Gutenberg University Mainz, Germany
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
unsigned int ret = 0;
unsigned int shift = 0;
do {
- is.get(b);
+ char b2;
+ is.get(b2);
+ b = b2;
ret |= (b & 0x7f) << shift;
shift += 7;
} while (b & 0x80);
write_unsigned(os, n.props[i].type | (n.props[i].name << 3));
write_unsigned(os, n.props[i].value);
}
- return os;
+ return os;
}
/** Write archive to binary data stream. */
unsigned int num_atoms = ar.atoms.size();
write_unsigned(os, num_atoms);
for (unsigned int i=0; i<num_atoms; i++)
- os << ar.atoms[i] << ends;
+ os << ar.atoms[i] << std::ends;
// Write expressions
unsigned int num_exprs = ar.exprs.size();
write_unsigned(os, num_nodes);
for (unsigned int i=0; i<num_nodes; i++)
os << ar.nodes[i];
- return os;
+ return os;
}
/** Read archive_node from binary data stream. */
n.props[i].name = name_type >> 3;
n.props[i].value = read_unsigned(is);
}
- return is;
+ return is;
}
/** Read archive from binary data stream. */
ar.nodes.resize(num_nodes, ar);
for (unsigned int i=0; i<num_nodes; i++)
is >> ar.nodes[i];
- return is;
+ return is;
}
/** Copy constructor of archive_node. */
archive_node::archive_node(const archive_node &other)
- : a(other.a), props(other.props), has_expression(other.has_expression), e(other.e)
+ : a(other.a), props(other.props), has_expression(other.has_expression), e(other.e)
{
}
/** Recursively construct archive node from expression. */
archive_node::archive_node(archive &ar, const ex &expr)
- : a(ar), has_expression(true), e(expr)
+ : a(ar), has_expression(true), e(expr)
{
expr.bp->archive(*this);
}
std::vector<std::string>::const_iterator i = atoms.begin(), iend = atoms.end();
archive_atom id = 0;
while (i != iend) {
- os << " " << id << " " << *i << endl;
+ os << " " << id << " " << *i << std::endl;
i++; id++;
}
}
- os << endl;
+ os << std::endl;
// Dump expressions
os << "Expressions:\n";
std::vector<archived_ex>::const_iterator i = exprs.begin(), iend = exprs.end();
unsigned int index = 0;
while (i != iend) {
- os << " " << index << " \"" << unatomize(i->name) << "\" root node " << i->root << endl;
+ os << " " << index << " \"" << unatomize(i->name) << "\" root node " << i->root << std::endl;
i++; index++;
}
}
- os << endl;
+ os << std::endl;
// Dump nodes
os << "Nodes:\n";
case PTYPE_NODE: os << "node"; break;
default: os << "<unknown>"; break;
}
- os << " \"" << a.unatomize(i->name) << "\" " << i->value << endl;
+ os << " \"" << a.unatomize(i->name) << "\" " << i->value << std::endl;
i++;
}
}
-/** Create a dummy archive. The intention is to fill archive_node's default ctor,
- * which is currently a Cint-requirement. */
+/** Create a dummy archive. The intention is to fill archive_node's default
+ * ctor, which is currently a Cint-requirement. */
archive* archive_node::dummy_ar_creator(void)
{
- static archive* some_ar = new archive;
- return some_ar;
+ static archive* some_ar = new archive;
+ return some_ar;
}