patrick
/
plasp
Archived
1
0
Fork 0
This repository has been archived on 2023-07-19. You can view files and clone it, but cannot push or open issues or pull requests.
plasp/include/plasp/sas/Variable.h

57 lines
1.2 KiB
C
Raw Permalink Normal View History

#ifndef __PLASP__SAS__VARIABLE_H
#define __PLASP__SAS__VARIABLE_H
2016-05-20 15:29:24 +02:00
2016-05-21 15:45:01 +02:00
#include <iosfwd>
2016-05-20 15:29:24 +02:00
#include <string>
#include <vector>
2017-05-12 14:17:57 +02:00
#include <tokenize/Tokenizer.h>
#include <colorlog/ColorStream.h>
#include <plasp/sas/Value.h>
2016-05-20 15:29:24 +02:00
namespace plasp
{
namespace sas
{
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Variable
//
////////////////////////////////////////////////////////////////////////////////////////////////////
class Variable;
using Variables = std::vector<Variable>;
////////////////////////////////////////////////////////////////////////////////////////////////////
2016-05-21 15:54:03 +02:00
class Variable
2016-05-20 15:29:24 +02:00
{
2016-05-21 15:54:03 +02:00
public:
2017-05-12 14:17:57 +02:00
static Variable fromSAS(tokenize::Tokenizer<> &tokenizer);
static const Variable &referenceFromSAS(tokenize::Tokenizer<> &tokenizer, const Variables &variables);
2016-05-21 15:45:01 +02:00
2016-05-21 15:54:03 +02:00
public:
void printNameAsASPPredicate(colorlog::ColorStream &outputStream) const;
2016-05-21 15:54:03 +02:00
const std::string &name() const;
int axiomLayer() const;
const Values &values() const;
2016-05-20 15:29:24 +02:00
2016-05-21 15:54:03 +02:00
private:
Variable();
std::string m_name;
int m_axiomLayer;
Values m_values;
2016-05-20 15:29:24 +02:00
};
////////////////////////////////////////////////////////////////////////////////////////////////////
}
}
#endif