diff options
Diffstat (limited to 'docgenerator.h')
-rw-r--r-- | docgenerator.h | 213 |
1 files changed, 0 insertions, 213 deletions
diff --git a/docgenerator.h b/docgenerator.h deleted file mode 100644 index 6298f41cb..000000000 --- a/docgenerator.h +++ /dev/null @@ -1,213 +0,0 @@ -/* - * This file is part of the Shiboken Python Binding Generator project. - * - * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). - * - * Contact: PySide team <contact@pyside.org> - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * version 2 as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA - * - */ -#ifndef DOCGENERATOR_H -#define DOCGENERATOR_H - -#include "shibokengenerator.h" -#include <QtCore/QStack> - -class QXmlStreamReader; -class DocGenerator; - -class QtXmlToSphinx -{ -public: - struct TableCell - { - short rowSpan; - short colSpan; - QString data; - - TableCell(const QString& text = QString()) : rowSpan(0), colSpan(0), data(text) {} - TableCell(const char* text) : rowSpan(0), colSpan(0), data(text) {} - }; - - typedef QList<TableCell> TableRow; - class Table : public QList<TableRow> - { - public: - Table() : m_hasHeader(false), m_normalized(false) - { - } - - void enableHeader(bool enable) - { - m_hasHeader = enable; - } - - bool hasHeader() const - { - return m_hasHeader; - } - - void normalize(); - - bool isNormalized() const - { - return m_normalized; - } - - void clear() - { - m_normalized = false; - QList<TableRow>::clear(); - } - - private: - bool m_hasHeader; - bool m_normalized; - }; - - QtXmlToSphinx(DocGenerator* generator, const QString& doc, const QString& context = QString()); - - QString result() const - { - return m_result; - } - -private: - QString transform(const QString& doc); - - void handleHeadingTag(QXmlStreamReader& reader); - void handleParaTag(QXmlStreamReader& reader); - void handleItalicTag(QXmlStreamReader& reader); - void handleBoldTag(QXmlStreamReader& reader); - void handleArgumentTag(QXmlStreamReader& reader); - void handleSeeAlsoTag(QXmlStreamReader& reader); - void handleSnippetTag(QXmlStreamReader& reader); - void handleDotsTag(QXmlStreamReader& reader); - void handleLinkTag(QXmlStreamReader& reader); - void handleImageTag(QXmlStreamReader& reader); - void handleListTag(QXmlStreamReader& reader); - void handleTermTag(QXmlStreamReader& reader); - void handleSuperScriptTag(QXmlStreamReader& reader); - void handleQuoteFileTag(QXmlStreamReader& reader); - - // table tagsvoid QtXmlToSphinx::handleValueTag(QXmlStreamReader& reader) - - void handleTableTag(QXmlStreamReader& reader); - void handleRowTag(QXmlStreamReader& reader); - void handleItemTag(QXmlStreamReader& reader); - void handleRawTag(QXmlStreamReader& reader); - void handleCodeTag(QXmlStreamReader& reader); - - void handleIgnoredTag(QXmlStreamReader& reader); - void handleUnknownTag(QXmlStreamReader& reader); - void handleUselessTag(QXmlStreamReader& reader); - void handleAnchorTag(QXmlStreamReader& reader); - - typedef void (QtXmlToSphinx::*TagHandler)(QXmlStreamReader&); - QHash<QString, TagHandler> m_handlerMap; - QStack<TagHandler> m_handlers; - QTextStream m_output; - QString m_result; - - QStack<QString*> m_buffers; - - - Table m_currentTable; - bool m_tableHasHeader; - QString m_context; - DocGenerator* m_generator; - bool m_insideBold; - bool m_insideItalic; - QString m_lastTagName; - QString m_opened_anchor; - - QString readFromLocation(QString& location, QString& identifier); - void pushOutputBuffer(); - QString popOutputBuffer(); - void writeTable(Table& table); -}; - -inline QTextStream& operator<<(QTextStream& s, const QtXmlToSphinx& xmlToSphinx) -{ - return s << xmlToSphinx.result(); -} - -QTextStream& operator<<(QTextStream& s, const QtXmlToSphinx::Table &table); - -/** -* The DocGenerator generates documentation from library being binded. -*/ -class DocGenerator : public ShibokenGenerator -{ -public: - virtual GeneratorType type() const - { - return DocumentationType; - } - - QString libSourceDir() const - { - return m_libSourceDir; - } - - virtual bool prepareGeneration(const QMap<QString, QString>& args); - - const char* name() const - { - return "DocGenerator"; - } - - QMap<QString, QString> options() const; - - QString codeSnippetDir() const - { - return m_codeSnippetDir; - } - -protected: - QString fileNameForClass(const AbstractMetaClass* cppClass) const; - void generateClass(QTextStream& s, const AbstractMetaClass* cppClass); - void finishGeneration(); -private: - void writeEnums(QTextStream& s, const AbstractMetaClass* cppClass); - - void writeFields(QTextStream &s, const AbstractMetaClass *cppClass); - void writeArguments(QTextStream &s, const AbstractMetaClass *cppClass, const AbstractMetaFunction *func); - void writeFunctionBrief(QTextStream &s, const AbstractMetaClass *cppClass, const AbstractMetaFunction *cppFunction); - void writeFunctionSignature(QTextStream& s, const AbstractMetaClass* cppClass, const AbstractMetaFunction* func); - void writeFunction(QTextStream& s, bool writeDoc, const AbstractMetaClass* cppClass, const AbstractMetaFunction* func); - void writeFunctionParametersType(QTextStream &s, const AbstractMetaClass *cppClass, const AbstractMetaFunction* func); - void writeFunctionList(QTextStream &se, const QString &content, const AbstractMetaClass *cppClass); - void writeParamerteType(QTextStream &s, const AbstractMetaClass *cppClass, const AbstractMetaArgument *arg); - - void writeConstructors(QTextStream &s, const AbstractMetaClass *cppClass); - void writeFormatedText(QTextStream& s, const Documentation& doc, const AbstractMetaClass* metaclass = 0); - void writeInjectDocumentation(QTextStream &s, DocModification::Mode mode, const AbstractMetaClass *cppClass, const AbstractMetaFunction *func); - void writeDocSnips(QTextStream &s, const CodeSnipList &codeSnips, CodeSnip::Position position, TypeSystem::Language language); - - - QString parseArgDocStyle(const AbstractMetaClass *cppClass, const AbstractMetaFunction *func); - QString parseFunctionDeclaration(const QString &data, const AbstractMetaClass *cppClass); - QString translateToPythonType(const AbstractMetaType *type, const AbstractMetaClass *cppClass); - - QString m_docDataDir; - QString m_libSourceDir; - QString m_codeSnippetDir; - QStringList m_functionList; - Documentation m_moduleDoc; -}; - -#endif // DOCGENERATOR_H |