]> git.tdb.fi Git - libs/datafile.git/blobdiff - source/binaryparser.cpp
Use a common StatementKey structure for Loader and BinaryParser/Writer
[libs/datafile.git] / source / binaryparser.cpp
index 796a592d3e84d05a70e2e8316abdcccbe543f3bf..7d1591de77105264a3d59fc2506c4bd0c03a9739 100644 (file)
@@ -27,9 +27,9 @@ BinaryParser::BinaryParser(Input &i, const string &s):
        first(true),
        float_precision(32)
 {
-       dict[-1] = DictEntry("__kwd", "iss");
-       dict[-2] = DictEntry("__str", "is");
-       dict[-3] = DictEntry("__flt", "i");
+       dict[-1] = StatementKey("__kwd", "iss");
+       dict[-2] = StatementKey("__str", "is");
+       dict[-3] = StatementKey("__flt", "i");
 }
 
 Statement BinaryParser::parse(bool raw)
@@ -50,7 +50,7 @@ Statement BinaryParser::parse(bool raw)
                                        if(!valid_signatures[j])
                                                throw bad_definition("__kwd");
 
-                       dict[id] = DictEntry(kw, args);
+                       dict[id] = StatementKey(kw, args);
                }
                else if(st.keyword=="__str")
                {
@@ -80,15 +80,15 @@ Statement BinaryParser::parse_statement(bool raw)
        if(!in)
                return Statement();
 
-       const DictEntry &de = get_item(dict, id);
+       const StatementKey &key = get_item(dict, id);
 
        Statement result;
-       result.keyword = de.keyword;
+       result.keyword = key.keyword;
        result.source = src;
 
-       for(unsigned j = 0; j<de.args.size(); ++j)
+       for(unsigned j=0; j<key.signature.size(); ++j)
        {
-               switch(de.args[j])
+               switch(key.signature[j])
                {
                case IntType::signature:
                        result.args.push_back(parse_int());