X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbinaryparser.cpp;h=fa1cf1daa86cd490f3d3697fbf83f5c8949a1a59;hb=daca21051927eabee098e422fe5a0990acacfb96;hp=4ed2877a4424c2389c890473a0e71918418516ba;hpb=ed78b585cfc4ecb44972e346857e887b183fd7a7;p=libs%2Fdatafile.git diff --git a/source/binaryparser.cpp b/source/binaryparser.cpp index 4ed2877..fa1cf1d 100644 --- a/source/binaryparser.cpp +++ b/source/binaryparser.cpp @@ -1,5 +1,4 @@ #include -#include #include #include #include "argumentstore.h" @@ -17,7 +16,7 @@ namespace DataFile { BinaryParser::BinaryParser(Input &i, const string &s): ParserMode(i, s), float_precision(32), - cur_info(0) + cur_info(nullptr) { dict[-1] = StatementInfo("__kwd", "iss"); dict[-2] = StatementInfo("__str", "is"); @@ -30,7 +29,7 @@ Statement BinaryParser::parse() if(cur_info) { key = &cur_info->key; - cur_info = 0; + cur_info = nullptr; } else { @@ -62,7 +61,7 @@ Statement BinaryParser::parse() result.args.push_back(parse_bool()); break; case SymbolType::signature: - result.args.push_back(parse_symbol()); + result.args.push_back(Value(parse_symbol())); break; } } @@ -91,8 +90,8 @@ void BinaryParser::process_control_statement(const Statement &st) const string &kw = st.args[1].get(); const string &args = st.args[2].get(); - for(string::const_iterator i=args.begin(); i!=args.end(); ++i) - for(unsigned j=0; valid_signatures[j]!=*i; ++j) + for(char c: args) + for(unsigned j=0; valid_signatures[j]!=c; ++j) if(!valid_signatures[j]) throw bad_definition("__kwd"); @@ -120,14 +119,14 @@ const StatementKey *BinaryParser::peek(unsigned level) for(unsigned i=sub_remaining.back(); i-->0; ) parse(); sub_remaining.pop_back(); - cur_info = 0; + cur_info = nullptr; } if(!sub_remaining.empty() && sub_remaining.back()==0) { // No more substatements on this level - cur_info = 0; - return 0; + cur_info = nullptr; + return nullptr; } if(cur_info) @@ -135,7 +134,7 @@ const StatementKey *BinaryParser::peek(unsigned level) int id = parse_int(); if(!in) - return 0; + return nullptr; cur_info = &get_item(dict, id); return &cur_info->key; @@ -170,7 +169,7 @@ bool BinaryParser::parse_and_load(unsigned level, Loader &ldr, const LoaderActio if(!sub_remaining.empty()) --sub_remaining.back(); sub_remaining.push_back(parse_int()); - cur_info = 0; + cur_info = nullptr; act.execute(ldr, args); @@ -201,7 +200,7 @@ IntType::Store BinaryParser::parse_int() FloatType::Store BinaryParser::parse_float() { - UInt64 encoded = 0; + uint64_t encoded = 0; for(unsigned i=0; i