]> git.tdb.fi Git - libs/datafile.git/blobdiff - source/statement.h
Move token-to-argument conversion to Statement
[libs/datafile.git] / source / statement.h
index 80b7b15af8da82566f3526d1494e82a3a787c2e4..9aad48d953226ba0ab1b3b209d88d10460d56f39 100644 (file)
@@ -7,6 +7,8 @@
 namespace Msp {
 namespace DataFile {
 
+struct Token;
+
 class Statement
 {
 public:
@@ -32,6 +34,8 @@ public:
                return *this;
        }
 
+       Statement &append_from_token(const Token &);
+
        template<typename T>
        Statement &operator,(const T &v)
        { return append(v); }
@@ -49,6 +53,16 @@ struct StatementKey
        { 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