summaryrefslogtreecommitdiffstats
path: root/src/tools/qdoc/generator.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/qdoc/generator.h')
-rw-r--r--src/tools/qdoc/generator.h176
1 files changed, 95 insertions, 81 deletions
diff --git a/src/tools/qdoc/generator.h b/src/tools/qdoc/generator.h
index 4021a85f61..bc1b12b958 100644
--- a/src/tools/qdoc/generator.h
+++ b/src/tools/qdoc/generator.h
@@ -46,22 +46,23 @@
#ifndef GENERATOR_H
#define GENERATOR_H
-#include <qlist.h>
-#include <qmap.h>
-#include <qregexp.h>
-#include <qstring.h>
-#include <qstringlist.h>
+#include <QList>
+#include <QMap>
+#include <QRegExp>
+#include <QString>
+#include <QStringList>
+#include <QTextStream>
#include "node.h"
#include "text.h"
QT_BEGIN_NAMESPACE
+typedef QMap<QString, NodeMap> NewClassMaps;
+typedef QMap<QString, NodeMultiMap> NewSinceMaps;
typedef QMap<QString, const Node*> NodeMap;
typedef QMultiMap<QString, Node*> NodeMultiMap;
-typedef QMap<QString, NodeMultiMap> NewSinceMaps;
typedef QMap<Node*, NodeMultiMap> ParentMaps;
-typedef QMap<QString, NodeMap> NewClassMaps;
class ClassNode;
class Config;
@@ -80,87 +81,124 @@ public:
Generator();
virtual ~Generator();
+ virtual bool canHandleFormat(const QString &format) { return format == this->format(); }
+ virtual QString format() = 0;
+ virtual void generateTree(const Tree *tree);
virtual void initializeGenerator(const Config &config);
virtual void terminateGenerator();
- virtual QString format() = 0;
- virtual bool canHandleFormat(const QString &format) { return format == this->format(); }
- virtual void generateTree(const Tree *tree) = 0;
- static void initialize(const Config& config);
- static void terminate();
+ static const QString& baseDir() { return baseDir_; }
static Generator *generatorForFormat(const QString& format);
+ static void initialize(const Config& config);
static const QString& outputDir() { return outDir_; }
- static const QString& baseDir() { return baseDir_; }
+ static void terminate();
protected:
- virtual void startText(const Node *relative, CodeMarker *marker);
+ virtual void beginSubPage(const InnerNode* node, const QString& fileName);
+ virtual void endSubPage();
virtual void endText(const Node *relative, CodeMarker *marker);
+ virtual QString fileBase(const Node* node) const;
+ virtual QString fileExtension(const Node* node) const = 0;
+ virtual QString fullName(const Node *node,
+ const Node *relative,
+ CodeMarker *marker) const;
+ virtual void generateAlsoList(const Node *node, CodeMarker *marker);
virtual int generateAtom(const Atom *atom,
const Node *relative,
CodeMarker *marker);
+ virtual void generateBody(const Node *node, CodeMarker *marker);
virtual void generateClassLikeNode(const InnerNode *inner, CodeMarker *marker);
virtual void generateFakeNode(const FakeNode *fake, CodeMarker *marker);
-
- virtual bool generateText(const Text& text,
- const Node *relative,
- CodeMarker *marker);
+ virtual void generateInheritedBy(const ClassNode *classe,
+ CodeMarker *marker);
+ virtual void generateInherits(const ClassNode *classe,
+ CodeMarker *marker);
+ virtual void generateInnerNode(const InnerNode *node);
+ virtual void generateMaintainerList(const InnerNode* node, CodeMarker* marker);
+ virtual void generateQmlInheritedBy(const QmlClassNode* qcn, CodeMarker* marker);
+ virtual void generateQmlInherits(const QmlClassNode* qcn, CodeMarker* marker);
virtual bool generateQmlText(const Text& text,
const Node *relative,
CodeMarker *marker,
const QString& qmlName);
- virtual void generateQmlInherits(const QmlClassNode* qcn, CodeMarker* marker);
- virtual void generateBody(const Node *node, CodeMarker *marker);
- virtual void generateAlsoList(const Node *node, CodeMarker *marker);
- virtual void generateMaintainerList(const InnerNode* node, CodeMarker* marker);
- virtual void generateInherits(const ClassNode *classe,
- CodeMarker *marker);
- virtual void generateInheritedBy(const ClassNode *classe,
- CodeMarker *marker);
+ virtual bool generateText(const Text& text,
+ const Node *relative,
+ CodeMarker *marker);
+ virtual QString imageFileName(const Node *relative, const QString& fileBase);
+ virtual QString outFileName() { return QString(); }
+ virtual int skipAtoms(const Atom *atom, Atom::Type type) const;
+ virtual void startText(const Node *relative, CodeMarker *marker);
+ virtual QString typeString(const Node *node);
- void generateThreadSafeness(const Node *node, CodeMarker *marker);
- void generateSince(const Node *node, CodeMarker *marker);
- void generateStatus(const Node *node, CodeMarker *marker);
+ static bool matchAhead(const Atom *atom, Atom::Type expectedAtomType);
+ static QString outputPrefix(const QString &nodeType);
+ static void singularPlural(Text& text, const NodeList& nodes);
+ static void supplementAlsoList(const Node *node, QList<Text> &alsoList);
+ static QString trimmedTrailing(const QString &string);
+ static QString sinceTitles[];
+
+ QString fileName(const Node* node) const;
+ void findAllSince(const InnerNode *node);
+ QMap<QString, QString> &formattingLeftMap();
+ QMap<QString, QString> &formattingRightMap();
const Atom* generateAtomList(const Atom *atom,
const Node *relative,
CodeMarker *marker,
bool generate,
int& numGeneratedAtoms);
+ void generateExampleFiles(const FakeNode *fake, CodeMarker *marker);
void generateFileList(const FakeNode* fake,
CodeMarker* marker,
Node::SubType subtype,
const QString& tag);
- void generateExampleFiles(const FakeNode *fake, CodeMarker *marker);
-
- virtual int skipAtoms(const Atom *atom, Atom::Type type) const;
- virtual QString fullName(const Node *node,
- const Node *relative,
- CodeMarker *marker) const;
-
- virtual QString outFileName() { return QString(); }
-
+ void generateSince(const Node *node, CodeMarker *marker);
+ void generateStatus(const Node *node, CodeMarker *marker);
+ void generateThreadSafeness(const Node *node, CodeMarker *marker);
+ QString getMetadataElement(const InnerNode* inner, const QString& t);
+ QStringList getMetadataElements(const InnerNode* inner, const QString& t);
QString indent(int level, const QString& markedCode);
+ QTextStream& out();
+ bool parseArg(const QString& src,
+ const QString& tag,
+ int* pos,
+ int n,
+ QStringRef* contents,
+ QStringRef* par1 = 0,
+ bool debug = false);
QString plainCode(const QString& markedCode);
- virtual QString typeString(const Node *node);
- virtual QString imageFileName(const Node *relative, const QString& fileBase);
void setImageFileExtensions(const QStringList& extensions);
void unknownAtom(const Atom *atom);
- QMap<QString, QString> &formattingLeftMap();
- QMap<QString, QString> &formattingRightMap();
- QMap<QString, QStringList> editionModuleMap;
- QMap<QString, QStringList> editionGroupMap;
-
- static QString trimmedTrailing(const QString &string);
- static bool matchAhead(const Atom *atom, Atom::Type expectedAtomType);
- static void supplementAlsoList(const Node *node, QList<Text> &alsoList);
- static QString outputPrefix(const QString &nodeType);
- QString getMetadataElement(const InnerNode* inner, const QString& t);
- QStringList getMetadataElements(const InnerNode* inner, const QString& t);
- void findAllSince(const InnerNode *node);
+ QList<NameCollisionNode*> collisionNodes;
+ QMap<QString, QStringList> editionGroupMap;
+ QMap<QString, QStringList> editionModuleMap;
+ QString naturalLanguage;
+ QTextCodec* outputCodec;
+ QString outputEncoding;
+ QStack<QTextStream*> outStreamStack;
+ NewClassMaps newClassMaps;
+ NewClassMaps newQmlClassMaps;
+ NewSinceMaps newSinceMaps;
private:
- void generateReimplementedFrom(const FunctionNode *func,
- CodeMarker *marker);
+ static QString baseDir_;
+ static QStringList exampleDirs;
+ static QStringList exampleImgExts;
+ static QMap<QString, QMap<QString, QString> > fmtLeftMaps;
+ static QMap<QString, QMap<QString, QString> > fmtRightMaps;
+ static QList<Generator *> generators;
+ static QStringList imageDirs;
+ static QStringList imageFiles;
+ static QMap<QString, QStringList> imgFileExts;
+ static QString project;
+ static QString outDir_;
+ static QSet<QString> outputFormats;
+ static QHash<QString, QString> outputPrefixes;
+ static QStringList scriptDirs;
+ static QStringList scriptFiles;
+ static QStringList styleDirs;
+ static QStringList styleFiles;
+
void appendFullName(Text& text,
const Node *apparentNode,
const Node *relative,
@@ -178,42 +216,18 @@ private:
const ClassNode *classe,
const QList<RelatedClass> &classes,
CodeMarker *marker);
-
-protected:
void appendSortedQmlNames(Text& text,
const Node* base,
const NodeList& subs,
CodeMarker *marker);
+ void generateReimplementedFrom(const FunctionNode *func,
+ CodeMarker *marker);
- static QString sinceTitles[];
- NewSinceMaps newSinceMaps;
- NewClassMaps newClassMaps;
- NewClassMaps newQmlClassMaps;
-
-private:
QString amp;
- QString lt;
QString gt;
+ QString lt;
QString quot;
QRegExp tag;
-
- static QList<Generator *> generators;
- static QMap<QString, QMap<QString, QString> > fmtLeftMaps;
- static QMap<QString, QMap<QString, QString> > fmtRightMaps;
- static QMap<QString, QStringList> imgFileExts;
- static QSet<QString> outputFormats;
- static QStringList imageFiles;
- static QStringList imageDirs;
- static QStringList exampleDirs;
- static QStringList exampleImgExts;
- static QStringList scriptFiles;
- static QStringList scriptDirs;
- static QStringList styleFiles;
- static QStringList styleDirs;
- static QString outDir_;
- static QString baseDir_;
- static QString project;
- static QHash<QString, QString> outputPrefixes;
};
QT_END_NAMESPACE