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;
return *this;
}
+ Statement &append_from_token(const Token &);
+
template<typename T>
Statement &operator,(const T &v)
{ return append(v); }
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
struct StatementInfo
{
StatementKey key;
- unsigned args_size;
+ unsigned args_size = 0;
std::vector<unsigned> arg_offsets;
- StatementInfo();
+ StatementInfo() = default;
StatementInfo(const std::string &, const std::string &);
};