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/pddl/Requirement.h

58 lines
1.2 KiB
C++

#ifndef __PLASP__PDDL__REQUIREMENT_H
#define __PLASP__PDDL__REQUIREMENT_H
#include <plasp/utils/Parser.h>
#include <vector>
namespace plasp
{
namespace pddl
{
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Requirement
//
////////////////////////////////////////////////////////////////////////////////////////////////////
struct Requirement
{
enum class Type
{
STRIPS,
Typing,
NegativePreconditions,
DisjunctivePreconditions,
Equality,
ExistentialPreconditions,
UniversalPreconditions,
QuantifiedPreconditions,
ConditionalEffects,
Fluents,
NumericFluents,
ADL,
DurativeActions,
DurationInequalities,
ContinuousEffects,
DerivedPredicates,
TimedInitialLiterals,
Preferences,
Constraints,
ActionCosts
};
using Types = std::vector<Type>;
static Requirement::Type fromPDDL(utils::Parser &parser);
static void toPDDL(std::ostream &ostream, Requirement::Type requirementType);
static void toASP(std::ostream &ostream, Requirement::Type requirementType);
};
////////////////////////////////////////////////////////////////////////////////////////////////////
}
}
#endif