#ifndef __PLASP__SAS__VARIABLE_H #define __PLASP__SAS__VARIABLE_H #include #include #include #include #include #include namespace plasp { namespace sas { //////////////////////////////////////////////////////////////////////////////////////////////////// // // Variable // //////////////////////////////////////////////////////////////////////////////////////////////////// class Variable; using Variables = std::vector; //////////////////////////////////////////////////////////////////////////////////////////////////// class Variable { public: static Variable fromSAS(tokenize::Tokenizer<> &tokenizer); static const Variable &referenceFromSAS(tokenize::Tokenizer<> &tokenizer, const Variables &variables); public: void printNameAsASPPredicate(colorlog::ColorStream &outputStream) const; const std::string &name() const; int axiomLayer() const; const Values &values() const; private: Variable(); std::string m_name; int m_axiomLayer; Values m_values; }; //////////////////////////////////////////////////////////////////////////////////////////////////// } } #endif