#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(parsebase::Parser<> &parser); static const Variable &referenceFromSAS(parsebase::Parser<> &parser, const Variables &variables); public: void printNameAsASPPredicate(output::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