-/* $Id$
-
-This file is part of libmspdatafile
-Copyright © 2007-2008, 2010 Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
#ifndef MSP_DATAFILE_BINARYWRITER_H_
#define MSP_DATAFILE_BINARYWRITER_H_
#include <map>
-#include "binarydict.h"
+#include "statement.h"
+#include "type.h"
#include "writermode.h"
namespace Msp {
class BinaryWriter: public WriterMode
{
private:
- typedef std::map<DictEntry, unsigned> Dictionary;
+ typedef std::map<StatementKey, int> Dictionary;
typedef std::map<std::string, unsigned> StringMap;
Dictionary dict;
unsigned next_kwd_id;
StringMap strings;
unsigned next_str_id;
+ unsigned float_precision;
public:
- BinaryWriter(IO::Base &o);
+ BinaryWriter(Output &o);
+ virtual void set_float_precision(unsigned);
virtual void write(const Statement &st);
private:
void write_(const Statement &st);
void collect_keywords(const Statement &st);
- void write_int(long long n);
- void write_string(const std::string &s);
- void write_float(float f);
- void write_enum(const std::string &e);
+ void write_int(IntType::Store n);
+ void write_string(const StringType::Store &s);
+ void write_float(FloatType::Store f);
+ void write_symbol(const SymbolType::Store &s);
};
} // namespace DataFile