]> git.tdb.fi Git - libs/datafile.git/blobdiff - source/statement.h
Cosmetic changes
[libs/datafile.git] / source / statement.h
index 184ef9955cbc78af80231eabda307bb45605be54..a580f379e47eb5130aa6379aa03d301433ce614b 100644 (file)
@@ -7,20 +7,21 @@
 namespace Msp {
 namespace DataFile {
 
-class Statement
+struct Token;
+
+struct Statement
 {
-public:
        typedef std::vector<Value> Arguments;
 
        std::string keyword;
        Arguments args;
-       bool valid;
-       bool control;
+       bool valid = false;
+       bool control = false;
        std::string source;
-       unsigned line;
+       unsigned line = 0;
        std::list<Statement> sub;
 
-       Statement();
+       Statement() = default;
        Statement(const std::string &);
        std::string get_location() const;
        std::string get_signature() const;
@@ -32,6 +33,8 @@ public:
                return *this;
        }
 
+       Statement &append_from_token(const Token &);
+
        template<typename T>
        Statement &operator,(const T &v)
        { return append(v); }
@@ -42,7 +45,7 @@ struct StatementKey
        std::string keyword;
        std::string signature;
 
-       StatementKey() { }
+       StatementKey() = default;
        StatementKey(const std::string &k, const std::string &s): keyword(k), signature(s) { }
 
        bool operator<(const StatementKey &o) const
@@ -52,10 +55,10 @@ struct StatementKey
 struct StatementInfo
 {
        StatementKey key;
-       unsigned args_size;
-       std::vector<unsigned> arg_offsets;
+       std::size_t args_size = 0;
+       std::vector<std::size_t> arg_offsets;
 
-       StatementInfo();
+       StatementInfo() = default;
        StatementInfo(const std::string &, const std::string &);
 };