37 lines
1.1 KiB
C++
37 lines
1.1 KiB
C++
#include <pddl/detail/normalization/Problem.h>
|
|
|
|
#include <pddl/AST.h>
|
|
#include <pddl/NormalizedAST.h>
|
|
#include <pddl/detail/normalization/InitialState.h>
|
|
#include <pddl/detail/normalization/Precondition.h>
|
|
|
|
namespace pddl
|
|
{
|
|
namespace detail
|
|
{
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Problem
|
|
//
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
normalizedAST::ProblemPointer normalize(ast::ProblemPointer &&problem, normalizedAST::Domain *domain)
|
|
{
|
|
auto normalizedProblem = std::make_unique<normalizedAST::Problem>(domain);
|
|
|
|
normalizedProblem->name = std::move(problem->name);
|
|
normalizedProblem->objects = std::move(problem->objects);
|
|
normalizedProblem->initialState = normalize(std::move(problem->initialState));
|
|
|
|
if (problem->goal)
|
|
normalizedProblem->goal = normalize(std::move(problem->goal.value()), normalizedProblem->derivedPredicates);
|
|
|
|
return normalizedProblem;
|
|
}
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
}
|
|
}
|