X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fstatement.cpp;h=57364bbd4d1563e7c0f1f5753216d1cd7e1cacf5;hb=refs%2Fheads%2Fwip;hp=125c1d5ab5403af6fd2b1d96cd2108000559bc4f;hpb=d93f320a4853afa6d1c25d9b546600807cfee37d;p=libs%2Fdatafile.git diff --git a/source/statement.cpp b/source/statement.cpp index 125c1d5..57364bb 100644 --- a/source/statement.cpp +++ b/source/statement.cpp @@ -8,17 +8,10 @@ using namespace std; namespace Msp { namespace DataFile { -Statement::Statement(): - valid(false), - control(false), - line(0) -{ } - Statement::Statement(const string &kw): keyword(kw), valid(true), - control(!kw.compare(0, 2, "__")), - line(0) + control(!kw.compare(0, 2, "__")) { } string Statement::get_location() const @@ -32,8 +25,8 @@ string Statement::get_location() const string Statement::get_signature() const { string result; - for(Arguments::const_iterator i = args.begin(); i!=args.end(); ++i) - result += i->get_signature(); + for(const Value &a: args) + result += a.get_signature(); return result; } @@ -52,25 +45,21 @@ Statement &Statement::append_from_token(const Token &token) else if(token.str=="false") return append(false); else - return append(Symbol(token.str)); + return append(Value(Symbol(token.str))); } else throw invalid_argument("Statement::append_from_token"); } -StatementInfo::StatementInfo(): - args_size(0) -{ } - StatementInfo::StatementInfo(const string &k, const string &s): key(k, s), args_size(0) { - for(string::const_iterator i=key.signature.begin(); i!=key.signature.end(); ++i) + for(char c: key.signature) { arg_offsets.push_back(args_size); - switch(*i) + switch(c) { case IntType::signature: args_size += sizeof(IntType::Store);