/* $Id$
This file is part of libmspdatafile
-Copyright © 2006 Mikko Rasa, Mikkosoft Productions
+Copyright © 2007-2008, 2010 Mikko Rasa, Mikkosoft Productions
Distributed under the LGPL
*/
string indent(level, '\t');
IO::print(out, "%s%s", indent, st.keyword);
- for(ValueArray::const_iterator i=st.args.begin(); i!=st.args.end(); ++i)
+ for(ValueArray::const_iterator i = st.args.begin(); i!=st.args.end(); ++i)
{
out.put(' ');
- if(i->get_type()==STRING)
- IO::print(out, "\"%s\"", c_escape(i->get_raw(), false));
- else if(i->get_type()==BOOLEAN)
- out.write(i->get<bool>() ? "true" : "false");
- else
- out.write(i->get_raw());
+ if(i->get_signature()==StringType::signature)
+ IO::print(out, "\"%s\"", c_escape(i->get<StringType::Store>(), false));
+ else if(i->get_signature()==BoolType::signature)
+ out.write(i->get<BoolType::Store>() ? "true" : "false");
+ else if(i->get_signature()==IntType::signature)
+ out.write(lexical_cast(i->get<IntType::Store>()));
+ else if(i->get_signature()==FloatType::signature)
+ out.write(format("%15g", (i->get<FloatType::Store>())));
+ else if(i->get_signature()==SymbolType::signature)
+ out.write(i->get<SymbolType::Store>().name);
}
if(!st.sub.empty())
{
IO::print(out, "\n%s{\n", indent);
- for(list<Statement>::const_iterator i=st.sub.begin(); i!=st.sub.end(); ++i)
+ for(list<Statement>::const_iterator i = st.sub.begin(); i!=st.sub.end(); ++i)
write_(*i, level+1);
IO::print(out, "%s}", indent);
}