]> git.tdb.fi Git - libs/datafile.git/blobdiff - source/statement.h
Remove the loaded flag from PackSource files
[libs/datafile.git] / source / statement.h
index b26f2c88efc2f709d5853eb97cc265b1155d823a..184ef9955cbc78af80231eabda307bb45605be54 100644 (file)
@@ -13,10 +13,11 @@ public:
        typedef std::vector<Value> Arguments;
 
        std::string keyword;
-       Arguments   args;
-       bool        valid;
+       Arguments args;
+       bool valid;
+       bool control;
        std::string source;
-       unsigned    line;
+       unsigned line;
        std::list<Statement> sub;
 
        Statement();
@@ -36,6 +37,28 @@ public:
        { return append(v); }
 };
 
+struct StatementKey
+{
+       std::string keyword;
+       std::string signature;
+
+       StatementKey() { }
+       StatementKey(const std::string &k, const std::string &s): keyword(k), signature(s) { }
+
+       bool operator<(const StatementKey &o) const
+       { return keyword<o.keyword || (keyword==o.keyword && signature<o.signature); }
+};
+
+struct StatementInfo
+{
+       StatementKey key;
+       unsigned args_size;
+       std::vector<unsigned> arg_offsets;
+
+       StatementInfo();
+       StatementInfo(const std::string &, const std::string &);
+};
+
 } // namespace DataFile
 } // namespace Msp