#ifndef __PDDL__CONTEXT_H #define __PDDL__CONTEXT_H #include #include #include namespace pddl { //////////////////////////////////////////////////////////////////////////////////////////////////// // // Context // //////////////////////////////////////////////////////////////////////////////////////////////////// struct Context { constexpr static const char *auxiliaryPrefix() { return "__plasp_"; } // TODO: replace std::string with char * using WarningCallback = std::function; Context() = default; ~Context() = default; explicit Context(Tokenizer &&tokenizer, WarningCallback warningCallback, Mode mode = Mode::Strict) : tokenizer{std::move(tokenizer)}, warningCallback{warningCallback}, mode{mode} { } Context(const Context &other) = delete; Context &operator=(const Context &other) = delete; Context(Context &&other) = default; Context &operator=(Context &&other) = default; Tokenizer tokenizer; WarningCallback warningCallback; Mode mode; }; //////////////////////////////////////////////////////////////////////////////////////////////////// } #endif