// Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB) // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #ifndef XMLSPECPARSER_H #define XMLSPECPARSER_H #include "specparser.h" #include #include class QXmlStreamReader; class XmlSpecParser : public SpecParser { public: virtual QList versions() const { return m_versions; } virtual bool parse(); protected: const QMultiHash &versionFunctions() const { return m_functions; } const QMultiMap &extensionFunctions() const { return m_extensionFunctions; } private: void parseFunctions(QXmlStreamReader &stream); void parseCommands(QXmlStreamReader &stream); void parseCommand(QXmlStreamReader &stream); void parseParam(QXmlStreamReader &stream, Function &func); void parseFeature(QXmlStreamReader &stream); void parseExtension(QXmlStreamReader &stream); void parseRequire(QXmlStreamReader &stream, FunctionList& profile); void parseRemoveCore(QXmlStreamReader &stream); QMultiHash m_functions; QList m_versions; // Extension support QMultiMap m_extensionFunctions; QMap m_functionList; }; #endif // XMLSPECPARSER_H