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/lib/pddl/include/pddl/detail/parsing/Action.h

51 lines
1.2 KiB
C++

#ifndef __PDDL__DETAIL__PARSING__ACTION_H
#define __PDDL__DETAIL__PARSING__ACTION_H
#include <pddl/ASTForward.h>
#include <pddl/Context.h>
namespace pddl
{
namespace detail
{
////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Action
//
////////////////////////////////////////////////////////////////////////////////////////////////////
class ActionParser
{
public:
ActionParser(Context &context, ast::Domain &domain);
ast::ActionPointer parse();
private:
void findSections(ast::Action &action);
void parseParameterSection(ast::Action &action);
void parsePreconditionSection(ast::Action &action);
void parseEffectSection(ast::Action &action);
// For compatibility with old PDDL versions
void parseVarsSection(ast::Action &action);
Context &m_context;
ast::Domain &m_domain;
tokenize::StreamPosition m_parametersPosition;
tokenize::StreamPosition m_preconditionPosition;
tokenize::StreamPosition m_effectPosition;
// For compatibility with old PDDL versions
tokenize::StreamPosition m_varsPosition;
};
////////////////////////////////////////////////////////////////////////////////////////////////////
}
}
#endif