-/*
-This file is part of libmspparser
-Copyright © 2006 Mikko Rasa, Mikkosoft Productions
+/* $Id$
+
+This file is part of libmspdatafile
+Copyright © 2006 Mikko Rasa, Mikkosoft Productions
Distributed under the LGPL
*/
-#ifndef MSP_PARSER_STATEMENT_H_
-#define MSP_PARSER_STATEMENT_H_
+#ifndef MSP_DATAFILE_STATEMENT_H_
+#define MSP_DATAFILE_STATEMENT_H_
#include <list>
-#include <sstream>
-#include <vector>
#include "value.h"
namespace Msp {
-namespace Parser {
+namespace DataFile {
class Statement
{
std::list<Statement> sub;
Statement(): valid(false), line(0) { }
- std::string get_location() const
- { std::ostringstream ss; ss<<source<<':'<<line; return ss.str(); }
+ Statement(const std::string &kw): keyword(kw), valid(true), line(0) { }
+ std::string get_location() const;
+
+ template<typename T>
+ Statement &append(const T &v)
+ {
+ args.push_back(Value(v));
+ return *this;
+ }
+
+ template<typename T>
+ Statement &operator,(const T &v)
+ { return append(v); }
};
-} // namespace Parser
+} // namespace DataFile
} // namespace Msp
#endif