#include #include #include #include #include #include namespace plasp { namespace pddl { namespace expressions { //////////////////////////////////////////////////////////////////////////////////////////////////// // // InitialState // //////////////////////////////////////////////////////////////////////////////////////////////////// void throwUnsupported(const utils::Parser &parser, const std::string &expressionIdentifier) { throw utils::ParserException(parser, "Expression type \"" + expressionIdentifier + "\" currently unsupported in this context"); } //////////////////////////////////////////////////////////////////////////////////////////////////// ExpressionPointer parseInitialState(Context &context) { context.parser.expect("("); const auto expressionIdentifier = context.parser.parseIdentifier(isIdentifier); ExpressionPointer expression; if (expressionIdentifier == "at" || expressionIdentifier == "=") { throwUnsupported(context.parser, expressionIdentifier); } // TODO: implement predicate parsing context.parser.expect(")"); return expression; } //////////////////////////////////////////////////////////////////////////////////////////////////// } } }