]> git.tdb.fi Git - libs/datafile.git/blobdiff - source/binaryparser.h
Cosmetic changes
[libs/datafile.git] / source / binaryparser.h
index b4fec6b4c9e681f6f635a7e348868d65097eddeb..f6226a1d621df86719b45b653a41fc883ba8194f 100644 (file)
@@ -2,7 +2,6 @@
 #define MSP_DATAFILE_BINARYPARSER_H_
 
 #include <map>
-#include "binarydict.h"
 #include "parsermode.h"
 #include "type.h"
 
@@ -15,20 +14,25 @@ Parses data in binary format.
 class BinaryParser: public ParserMode
 {
 private:
-       typedef std::map<int, DictEntry> Dictionary;
+       typedef std::map<int, StatementInfo> Dictionary;
        typedef std::map<unsigned, std::string> StringMap;
 
        Dictionary dict;
        StringMap strings;
-       bool first;
-       unsigned float_precision;
+       unsigned float_precision = 32;
+       StatementInfo *cur_info = nullptr;
+       std::vector<unsigned> sub_remaining;
 
 public:
        BinaryParser(Input &i, const std::string &s);
 
-       virtual Statement parse();
+       Statement parse() override;
+       void process_control_statement(const Statement &) override;
+
+       const StatementKey *peek(unsigned) override;
+       bool parse_and_load(unsigned, Loader &, const LoaderAction &) override;
+
 private:
-       Statement parse_statement();
        IntType::Store parse_int();
        FloatType::Store parse_float();
        StringType::Store parse_string();