Distributed under the LGPL
*/
+#include <msp/io/print.h>
#include <msp/strings/utils.h>
#include "statement.h"
#include "textwriter.h"
namespace Msp {
namespace DataFile {
-TextWriter::TextWriter(ostream &o):
+TextWriter::TextWriter(IO::Base &o):
WriterMode(o)
{ }
{
string indent(level, '\t');
- out<<indent<<st.keyword;
+ IO::print(out, "%s%s", indent, st.keyword);
for(ValueArray::const_iterator i=st.args.begin(); i!=st.args.end(); ++i)
{
- out<<' ';
+ out.put(' ');
if(i->get_type()==STRING)
- out<<'\"'<<c_escape(i->get_raw(), false)<<'\"';
+ IO::print(out, "\"%s\"", c_escape(i->get_raw(), false));
else if(i->get_type()==BOOLEAN)
- out<<(i->get<bool>() ? "true" : "false");
+ out.write(i->get<bool>() ? "true" : "false");
else
- out<<i->get_raw();
+ out.write(i->get_raw());
}
if(!st.sub.empty())
{
- out<<'\n'<<indent<<"{\n";
+ IO::print(out, "\n%s{\n", indent);
for(list<Statement>::const_iterator i=st.sub.begin(); i!=st.sub.end(); ++i)
write_(*i, level+1);
- out<<indent<<'}';
+ IO::print(out, "%s}", indent);
}
- out<<";\n";
+ out.write(";\n", 2);
}
} // namespace DataFile