Implemented two-pass parsing for PDDL problems.

This commit is contained in:
2016-06-09 14:39:03 +02:00
parent fb15a131ac
commit 87889f5efe
5 changed files with 175 additions and 112 deletions

View File

@@ -22,10 +22,9 @@ class Problem
public:
Problem(Context &context, Domain &domain);
void findSections();
void parse();
bool isDeclared() const;
Domain &domain();
const Domain &domain() const;
@@ -44,8 +43,6 @@ class Problem
void checkConsistency();
private:
void parseSection();
void parseRequirementSection();
void computeDerivedRequirements();
@@ -57,13 +54,18 @@ class Problem
Context &m_context;
Domain &m_domain;
bool m_isDeclared;
std::string m_name;
utils::Parser::Position m_domainPosition;
utils::Parser::Position m_requirementsPosition;
Requirements m_requirements;
utils::Parser::Position m_objectsPosition;
expressions::Constants m_objects;
utils::Parser::Position m_initialStatePosition;
std::unique_ptr<InitialState> m_initialState;
};