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/src/plasp/pddl/expressions/PredicateExpression.cpp

47 lines
1.2 KiB
C++

#include <plasp/pddl/expressions/PredicateExpression.h>
#include <plasp/pddl/ExpressionVisitor.h>
namespace plasp
{
namespace pddl
{
namespace expressions
{
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// PredicateExpression
//
////////////////////////////////////////////////////////////////////////////////////////////////////
std::unique_ptr<PredicateExpression> PredicateExpression::parse(std::string name, utils::Parser &parser, Context &context, const Variables &parameters)
{
auto expression = std::make_unique<PredicateExpression>(PredicateExpression());
expression->m_name = name;
parser.skipWhiteSpace();
// Parse arguments
while (parser.currentCharacter() != ')')
Variable::parseTyped(parser, context, expression->m_arguments);
std::cout << "Parsed " << expression->m_arguments.size() << " arguments" << std::endl;
return expression;
}
////////////////////////////////////////////////////////////////////////////////////////////////////
void PredicateExpression::accept(plasp::pddl::ExpressionVisitor &expressionVisitor) const
{
expressionVisitor.visit(*this);
}
////////////////////////////////////////////////////////////////////////////////////////////////////
}
}
}