1 #ifndef MSP_DATAFILE_STATEMENT_H_
2 #define MSP_DATAFILE_STATEMENT_H_
5 #include "mspdatafile_api.h"
13 struct MSPDATAFILE_API Statement
15 typedef std::vector<Value> Arguments;
23 std::list<Statement> sub;
25 Statement() = default;
26 Statement(const std::string &);
27 std::string get_location() const;
28 std::string get_signature() const;
31 Statement &append(const T &v)
37 Statement &append_from_token(const Token &);
40 Statement &operator,(const T &v)
47 std::string signature;
49 StatementKey() = default;
50 StatementKey(const std::string &k, const std::string &s): keyword(k), signature(s) { }
52 bool operator<(const StatementKey &o) const
53 { return keyword<o.keyword || (keyword==o.keyword && signature<o.signature); }
59 std::size_t args_size = 0;
60 std::vector<std::size_t> arg_offsets;
62 StatementInfo() = default;
63 StatementInfo(const std::string &, const std::string &);
66 } // namespace DataFile