Added translation for preconditions of PDDL actions.

This commit is contained in:
2016-06-13 02:38:56 +02:00
parent 680206b40b
commit e2b8fd2880
3 changed files with 184 additions and 56 deletions

View File

@@ -34,7 +34,9 @@ class TranslatorASP
void translateProblem() const;
void translateVariables(const expressions::Variables &variables) const;
void translateVariablesHead(const expressions::Variables &variables) const;
void translateVariablesBody(const expressions::Variables &variables) const;
void translatePredicate(const expressions::Predicate &predicate) const;
const Description &m_description;
std::ostream &m_ostream;

View File

@@ -36,7 +36,7 @@ class Binary: public ExpressionCRTP<Derived>
void setArgument(const Expression *argument);
template<size_t i>
void setArgument(ExpressionPointer &&argument);
std::array<const Expression *, 2> m_arguments;
std::array<ExpressionPointer, 2> m_argumentStorage;
};
@@ -63,8 +63,8 @@ std::unique_ptr<Derived> Binary<Derived>::parse(Context &context,
// Assume that expression identifier (imply, exists, etc.) is already parsed
// Parse arguments of the expression
expression->setArgument<0>(parseExpression(context, expressionContext));
expression->setArgument<1>(parseExpression(context, expressionContext));
expression->Binary<Derived>::setArgument<0>(parseExpression(context, expressionContext));
expression->Binary<Derived>::setArgument<1>(parseExpression(context, expressionContext));
parser.expect<std::string>(")");