#ifndef __PLASP__LANGUAGE_DETECTION_H #define __PLASP__LANGUAGE_DETECTION_H #include #include namespace plasp { //////////////////////////////////////////////////////////////////////////////////////////////////// // // LanguageDetection // //////////////////////////////////////////////////////////////////////////////////////////////////// Language::Type detectLanguage(parsebase::Parser &parser) { parser.skipWhiteSpace(); // SAS begins with "begin_version" if (parser.testAndSkip("begin")) { parser.seek(0); return Language::Type::SAS; } // Skip potential PDDL comments while (parser.currentCharacter() == ';') { parser.skipLine(); parser.skipWhiteSpace(); } // PDDL contains sections starting with "(define" if (parser.testAndSkip("(") && parser.testAndSkip("define")) { parser.seek(std::ios::beg); return Language::Type::PDDL; } parser.seek(std::ios::beg); return Language::Type::Unknown; } //////////////////////////////////////////////////////////////////////////////////////////////////// } #endif