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/Effect.h

52 lines
1.1 KiB
C++

#ifndef __PLASP__SAS__EFFECT_H
#define __PLASP__SAS__EFFECT_H
#include <vector>
#include <plasp/input/Parser.h>
#include <plasp/sas/AssignedVariable.h>
#include <plasp/sas/Variable.h>
namespace plasp
{
namespace sas
{
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Effect
//
////////////////////////////////////////////////////////////////////////////////////////////////////
class Effect;
using Effects = std::vector<Effect>;
////////////////////////////////////////////////////////////////////////////////////////////////////
class Effect
{
public:
using Condition = AssignedVariable;
using Conditions = AssignedVariables;
static Effect fromSAS(input::Parser<> &parser, const Variables &variables, Conditions &preconditions);
public:
const Conditions &conditions() const;
const Condition &postcondition() const;
private:
Effect() = default;
explicit Effect(Conditions conditions, Condition postcondition);
Conditions m_conditions;
Condition m_postcondition;
};
////////////////////////////////////////////////////////////////////////////////////////////////////
}
}
#endif