]> git.tdb.fi Git - libs/datafile.git/blobdiff - source/binaryparser.h
Use custom encoding for floats in binary format
[libs/datafile.git] / source / binaryparser.h
index f6736faa0a0fb701cbfd4867245993e8855d21a5..b4fec6b4c9e681f6f635a7e348868d65097eddeb 100644 (file)
@@ -4,6 +4,7 @@
 #include <map>
 #include "binarydict.h"
 #include "parsermode.h"
+#include "type.h"
 
 namespace Msp {
 namespace DataFile {
@@ -14,12 +15,13 @@ Parses data in binary format.
 class BinaryParser: public ParserMode
 {
 private:
-       typedef std::map<unsigned, DictEntry> Dictionary;
+       typedef std::map<int, DictEntry> Dictionary;
        typedef std::map<unsigned, std::string> StringMap;
 
        Dictionary dict;
        StringMap strings;
        bool first;
+       unsigned float_precision;
 
 public:
        BinaryParser(Input &i, const std::string &s);
@@ -27,12 +29,11 @@ public:
        virtual Statement parse();
 private:
        Statement parse_statement();
-       long long parse_int();
-       float parse_float();
-       std::string parse_string();
-       bool parse_bool();
-       std::string parse_enum();
-       const std::string &lookup_string(unsigned) const;
+       IntType::Store parse_int();
+       FloatType::Store parse_float();
+       StringType::Store parse_string();
+       BoolType::Store parse_bool();
+       SymbolType::Store parse_symbol();
 };
 
 } // namespace DataFile