|
Packit |
1c1d7e |
/******************************************************************************
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
* Copyright (C) 1997-2015 by Dimitri van Heesch.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
* Permission to use, copy, modify, and distribute this software and its
|
|
Packit |
1c1d7e |
* documentation under the terms of the GNU General Public License is hereby
|
|
Packit |
1c1d7e |
* granted. No representations are made about the suitability of this software
|
|
Packit |
1c1d7e |
* for any purpose. It is provided "as is" without express or implied warranty.
|
|
Packit |
1c1d7e |
* See the GNU General Public License for more details.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
* Documents produced by Doxygen are derivative works derived from the
|
|
Packit |
1c1d7e |
* input used in their production; they are not affected by this license.
|
|
Packit |
1c1d7e |
*
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#ifndef _DOCPARSER_H
|
|
Packit |
1c1d7e |
#define _DOCPARSER_H
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#include <stdio.h>
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#include <qlist.h>
|
|
Packit |
1c1d7e |
#include <qcstring.h>
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#include "docvisitor.h"
|
|
Packit |
1c1d7e |
#include "htmlattrib.h"
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
class DocNode;
|
|
Packit |
1c1d7e |
class MemberDef;
|
|
Packit |
1c1d7e |
class Definition;
|
|
Packit |
1c1d7e |
class MemberGroup;
|
|
Packit |
1c1d7e |
class SectionDict;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//---------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! Main entry point for the documentation parser.
|
|
Packit |
1c1d7e |
* @param fileName File in which the documentation block is found (or the
|
|
Packit |
1c1d7e |
* name of the example file in case isExample is TRUE).
|
|
Packit |
1c1d7e |
* @param startLine Line at which the documentation block is found.
|
|
Packit |
1c1d7e |
* @param context Class or namespace to which this block belongs.
|
|
Packit |
1c1d7e |
* @param md Member definition to which the documentation belongs.
|
|
Packit |
1c1d7e |
* Can be 0.
|
|
Packit |
1c1d7e |
* @param input String representation of the documentation block.
|
|
Packit |
1c1d7e |
* @param indexWords Indicates whether or not words should be put in the
|
|
Packit |
1c1d7e |
* search index.
|
|
Packit |
1c1d7e |
* @param isExample TRUE if the documentation belongs to an example.
|
|
Packit |
1c1d7e |
* @param exampleName Base name of the example file (0 if isExample is FALSE).
|
|
Packit |
1c1d7e |
* @param singleLine Output should be presented on a single line, so without
|
|
Packit |
1c1d7e |
* starting a new paragraph at the end.
|
|
Packit |
1c1d7e |
* @param linkFromIndex TRUE if the documentation is generated from an
|
|
Packit |
1c1d7e |
* index page. In this case context is not used to determine
|
|
Packit |
1c1d7e |
* the relative path when making a link.
|
|
Packit |
1c1d7e |
* @returns Root node of the abstract syntax tree. Ownership of the
|
|
Packit |
1c1d7e |
* pointer is handed over to the caller.
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
DocRoot *validatingParseDoc(const char *fileName,int startLine,
|
|
Packit |
1c1d7e |
Definition *context, MemberDef *md,
|
|
Packit |
1c1d7e |
const char *input,bool indexWords,
|
|
Packit |
1c1d7e |
bool isExample,const char *exampleName=0,
|
|
Packit |
1c1d7e |
bool singleLine=FALSE,bool linkFromIndex=FALSE);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! Main entry point for parsing simple text fragments. These
|
|
Packit |
1c1d7e |
* fragments are limited to words, whitespace and symbols.
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
DocText *validatingParseText(const char *input);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! Searches for section and anchor commands in the input */
|
|
Packit |
1c1d7e |
void docFindSections(const char *input,
|
|
Packit |
1c1d7e |
Definition *d,
|
|
Packit |
1c1d7e |
MemberGroup *m,
|
|
Packit |
1c1d7e |
const char *fileName);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//---------------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Abstract node interface with type information. */
|
|
Packit |
1c1d7e |
class DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
/*! Available node types. */
|
|
Packit |
1c1d7e |
enum Kind { Kind_Root = 0,
|
|
Packit |
1c1d7e |
Kind_Word = 1,
|
|
Packit |
1c1d7e |
Kind_WhiteSpace = 2,
|
|
Packit |
1c1d7e |
Kind_Para = 3,
|
|
Packit |
1c1d7e |
Kind_AutoList = 4,
|
|
Packit |
1c1d7e |
Kind_AutoListItem = 5,
|
|
Packit |
1c1d7e |
Kind_Symbol = 6,
|
|
Packit |
1c1d7e |
Kind_URL = 7,
|
|
Packit |
1c1d7e |
Kind_StyleChange = 8,
|
|
Packit |
1c1d7e |
Kind_SimpleSect = 9,
|
|
Packit |
1c1d7e |
Kind_Title = 10,
|
|
Packit |
1c1d7e |
Kind_SimpleList = 11,
|
|
Packit |
1c1d7e |
Kind_SimpleListItem = 12,
|
|
Packit |
1c1d7e |
Kind_Section = 13,
|
|
Packit |
1c1d7e |
Kind_Verbatim = 14,
|
|
Packit |
1c1d7e |
Kind_XRefItem = 15,
|
|
Packit |
1c1d7e |
Kind_HtmlList = 16,
|
|
Packit |
1c1d7e |
Kind_HtmlListItem = 17,
|
|
Packit |
1c1d7e |
Kind_HtmlDescList = 18,
|
|
Packit |
1c1d7e |
Kind_HtmlDescData = 19,
|
|
Packit |
1c1d7e |
Kind_HtmlDescTitle = 20,
|
|
Packit |
1c1d7e |
Kind_HtmlTable = 21,
|
|
Packit |
1c1d7e |
Kind_HtmlRow = 22,
|
|
Packit |
1c1d7e |
Kind_HtmlCell = 23,
|
|
Packit |
1c1d7e |
Kind_HtmlCaption = 24,
|
|
Packit |
1c1d7e |
Kind_LineBreak = 25,
|
|
Packit |
1c1d7e |
Kind_HorRuler = 26,
|
|
Packit |
1c1d7e |
Kind_Anchor = 27,
|
|
Packit |
1c1d7e |
Kind_IndexEntry = 28,
|
|
Packit |
1c1d7e |
Kind_Internal = 29,
|
|
Packit |
1c1d7e |
Kind_HRef = 30,
|
|
Packit |
1c1d7e |
Kind_Include = 31,
|
|
Packit |
1c1d7e |
Kind_IncOperator = 32,
|
|
Packit |
1c1d7e |
Kind_HtmlHeader = 33,
|
|
Packit |
1c1d7e |
Kind_Image = 34,
|
|
Packit |
1c1d7e |
Kind_DotFile = 35,
|
|
Packit |
1c1d7e |
Kind_Link = 36,
|
|
Packit |
1c1d7e |
Kind_Ref = 37,
|
|
Packit |
1c1d7e |
Kind_Formula = 38,
|
|
Packit |
1c1d7e |
Kind_SecRefItem = 39,
|
|
Packit |
1c1d7e |
Kind_SecRefList = 40,
|
|
Packit |
1c1d7e |
Kind_SimpleSectSep = 41,
|
|
Packit |
1c1d7e |
Kind_LinkedWord = 42,
|
|
Packit |
1c1d7e |
Kind_ParamSect = 43,
|
|
Packit |
1c1d7e |
Kind_ParamList = 44,
|
|
Packit |
1c1d7e |
Kind_InternalRef = 45,
|
|
Packit |
1c1d7e |
Kind_Copy = 46,
|
|
Packit |
1c1d7e |
Kind_Text = 47,
|
|
Packit |
1c1d7e |
Kind_MscFile = 48,
|
|
Packit |
1c1d7e |
Kind_HtmlBlockQuote = 49,
|
|
Packit |
1c1d7e |
Kind_VhdlFlow = 50,
|
|
Packit |
1c1d7e |
Kind_ParBlock = 51,
|
|
Packit |
1c1d7e |
Kind_DiaFile = 52
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
/*! Creates a new node */
|
|
Packit |
1c1d7e |
DocNode() : m_parent(0), m_insidePre(FALSE) {}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! Destroys a node. */
|
|
Packit |
1c1d7e |
virtual ~DocNode() {}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! Returns the kind of node. Provides runtime type information */
|
|
Packit |
1c1d7e |
virtual Kind kind() const = 0;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! Returns the parent of this node or 0 for the root node. */
|
|
Packit |
1c1d7e |
DocNode *parent() const { return m_parent; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! Sets a new parent for this node. */
|
|
Packit |
1c1d7e |
void setParent(DocNode *parent) { m_parent = parent; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! Acceptor function for node visitors. Part of the visitor pattern.
|
|
Packit |
1c1d7e |
* @param v Abstract visitor.
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
virtual void accept(DocVisitor *v) = 0;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/*! Returns TRUE iff this node is inside a preformatted section */
|
|
Packit |
1c1d7e |
bool isPreformatted() const { return m_insidePre; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
protected:
|
|
Packit |
1c1d7e |
/*! Sets whether or not this item is inside a preformatted section */
|
|
Packit |
1c1d7e |
void setInsidePreformatted(bool p) { m_insidePre = p; }
|
|
Packit |
1c1d7e |
DocNode *m_parent;
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
bool m_insidePre;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Default accept implementation for compound nodes in the abstract
|
|
Packit |
1c1d7e |
* syntax tree.
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
template<class T> class CompAccept
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
CompAccept() { m_children.setAutoDelete(TRUE); }
|
|
Packit |
1c1d7e |
virtual ~CompAccept() {}
|
|
Packit |
1c1d7e |
void accept(T *obj, DocVisitor *v)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
v->visitPre(obj);
|
|
Packit |
1c1d7e |
QListIterator<DocNode> cli(m_children);
|
|
Packit |
1c1d7e |
DocNode *n;
|
|
Packit |
1c1d7e |
for (cli.toFirst();(n=cli.current());++cli) n->accept(v);
|
|
Packit |
1c1d7e |
v->visitPost(obj);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
const QList<DocNode> &children() const { return m_children; }
|
|
Packit |
1c1d7e |
QList<DocNode> &children() { return m_children; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
protected:
|
|
Packit |
1c1d7e |
QList<DocNode> m_children;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a word
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class DocWord : public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocWord(DocNode *parent,const QCString &word);
|
|
Packit |
1c1d7e |
QCString word() const { return m_word; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_Word; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { v->visit(this); }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
QCString m_word;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a word that can be linked to something
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class DocLinkedWord : public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocLinkedWord(DocNode *parent,const QCString &word,
|
|
Packit |
1c1d7e |
const QCString &ref,const QCString &file,
|
|
Packit |
1c1d7e |
const QCString &anchor,const QCString &tooltip);
|
|
Packit |
1c1d7e |
QCString word() const { return m_word; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_LinkedWord; }
|
|
Packit |
1c1d7e |
QCString file() const { return m_file; }
|
|
Packit |
1c1d7e |
QCString relPath() const { return m_relPath; }
|
|
Packit |
1c1d7e |
QCString ref() const { return m_ref; }
|
|
Packit |
1c1d7e |
QCString anchor() const { return m_anchor; }
|
|
Packit |
1c1d7e |
QCString tooltip() const { return m_tooltip; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { v->visit(this); }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
QCString m_word;
|
|
Packit |
1c1d7e |
QCString m_ref;
|
|
Packit |
1c1d7e |
QCString m_file;
|
|
Packit |
1c1d7e |
QCString m_relPath;
|
|
Packit |
1c1d7e |
QCString m_anchor;
|
|
Packit |
1c1d7e |
QCString m_tooltip;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing an URL (or email address) */
|
|
Packit |
1c1d7e |
class DocURL : public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocURL(DocNode *parent,const QCString &url,bool isEmail) :
|
|
Packit |
1c1d7e |
m_url(url), m_isEmail(isEmail) { m_parent=parent; }
|
|
Packit |
1c1d7e |
QCString url() const { return m_url; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_URL; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { v->visit(this); }
|
|
Packit |
1c1d7e |
bool isEmail() const { return m_isEmail; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
QCString m_url;
|
|
Packit |
1c1d7e |
bool m_isEmail;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a line break */
|
|
Packit |
1c1d7e |
class DocLineBreak : public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocLineBreak(DocNode *parent) { m_parent=parent; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_LineBreak; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { v->visit(this); }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a horizonal ruler */
|
|
Packit |
1c1d7e |
class DocHorRuler : public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocHorRuler(DocNode *parent) { m_parent = parent; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_HorRuler; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { v->visit(this); }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing an anchor */
|
|
Packit |
1c1d7e |
class DocAnchor : public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocAnchor(DocNode *parent,const QCString &id,bool newAnchor);
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_Anchor; }
|
|
Packit |
1c1d7e |
QCString anchor() const { return m_anchor; }
|
|
Packit |
1c1d7e |
QCString file() const { return m_file; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { v->visit(this); }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
QCString m_anchor;
|
|
Packit |
1c1d7e |
QCString m_file;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a citation of some bibliographic reference */
|
|
Packit |
1c1d7e |
class DocCite : public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocCite(DocNode *parent,const QCString &target,const QCString &context);
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_Ref; }
|
|
Packit |
1c1d7e |
QCString file() const { return m_file; }
|
|
Packit |
1c1d7e |
QCString relPath() const { return m_relPath; }
|
|
Packit |
1c1d7e |
QCString ref() const { return m_ref; }
|
|
Packit |
1c1d7e |
QCString anchor() const { return m_anchor; }
|
|
Packit |
1c1d7e |
QCString text() const { return m_text; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { v->visit(this); }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
QCString m_file;
|
|
Packit |
1c1d7e |
QCString m_relPath;
|
|
Packit |
1c1d7e |
QCString m_ref;
|
|
Packit |
1c1d7e |
QCString m_anchor;
|
|
Packit |
1c1d7e |
QCString m_text;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a style change */
|
|
Packit |
1c1d7e |
class DocStyleChange : public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
enum Style { Bold = (1<<0),
|
|
Packit |
1c1d7e |
Italic = (1<<1),
|
|
Packit |
1c1d7e |
Code = (1<<2),
|
|
Packit |
1c1d7e |
Center = (1<<3),
|
|
Packit |
1c1d7e |
Small = (1<<4),
|
|
Packit |
1c1d7e |
Subscript = (1<<5),
|
|
Packit |
1c1d7e |
Superscript = (1<<6),
|
|
Packit |
1c1d7e |
Preformatted = (1<<7),
|
|
Packit |
1c1d7e |
Span = (1<<8),
|
|
Packit |
1c1d7e |
Div = (1<<9)
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
DocStyleChange(DocNode *parent,uint position,Style s,bool enable,
|
|
Packit |
1c1d7e |
const HtmlAttribList *attribs=0) :
|
|
Packit |
1c1d7e |
m_position(position), m_style(s), m_enable(enable)
|
|
Packit |
1c1d7e |
{ m_parent = parent; if (attribs) m_attribs=*attribs; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_StyleChange; }
|
|
Packit |
1c1d7e |
Style style() const { return m_style; }
|
|
Packit |
1c1d7e |
const char *styleString() const;
|
|
Packit |
1c1d7e |
bool enable() const { return m_enable; }
|
|
Packit |
1c1d7e |
uint position() const { return m_position; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { v->visit(this); }
|
|
Packit |
1c1d7e |
const HtmlAttribList &attribs() const { return m_attribs; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
uint m_position;
|
|
Packit |
1c1d7e |
Style m_style;
|
|
Packit |
1c1d7e |
bool m_enable;
|
|
Packit |
1c1d7e |
HtmlAttribList m_attribs;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a special symbol */
|
|
Packit |
1c1d7e |
class DocSymbol : public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
enum SymType { Sym_Unknown = -1,
|
|
Packit |
1c1d7e |
Sym_nbsp, Sym_iexcl, Sym_cent, Sym_pound, Sym_curren,
|
|
Packit |
1c1d7e |
Sym_yen, Sym_brvbar, Sym_sect, Sym_uml, Sym_copy,
|
|
Packit |
1c1d7e |
Sym_ordf, Sym_laquo, Sym_not, Sym_shy, Sym_reg,
|
|
Packit |
1c1d7e |
Sym_macr, Sym_deg, Sym_plusmn, Sym_sup2, Sym_sup3,
|
|
Packit |
1c1d7e |
Sym_acute, Sym_micro, Sym_para, Sym_middot, Sym_cedil,
|
|
Packit |
1c1d7e |
Sym_sup1, Sym_ordm, Sym_raquo, Sym_frac14, Sym_frac12,
|
|
Packit |
1c1d7e |
Sym_frac34, Sym_iquest, Sym_Agrave, Sym_Aacute, Sym_Acirc,
|
|
Packit |
1c1d7e |
Sym_Atilde, Sym_Auml, Sym_Aring, Sym_AElig, Sym_Ccedil,
|
|
Packit |
1c1d7e |
Sym_Egrave, Sym_Eacute, Sym_Ecirc, Sym_Euml, Sym_Igrave,
|
|
Packit |
1c1d7e |
Sym_Iacute, Sym_Icirc, Sym_Iuml, Sym_ETH, Sym_Ntilde,
|
|
Packit |
1c1d7e |
Sym_Ograve, Sym_Oacute, Sym_Ocirc, Sym_Otilde, Sym_Ouml,
|
|
Packit |
1c1d7e |
Sym_times, Sym_Oslash, Sym_Ugrave, Sym_Uacute, Sym_Ucirc,
|
|
Packit |
1c1d7e |
Sym_Uuml, Sym_Yacute, Sym_THORN, Sym_szlig, Sym_agrave,
|
|
Packit |
1c1d7e |
Sym_aacute, Sym_acirc, Sym_atilde, Sym_auml, Sym_aring,
|
|
Packit |
1c1d7e |
Sym_aelig, Sym_ccedil, Sym_egrave, Sym_eacute, Sym_ecirc,
|
|
Packit |
1c1d7e |
Sym_euml, Sym_igrave, Sym_iacute, Sym_icirc, Sym_iuml,
|
|
Packit |
1c1d7e |
Sym_eth, Sym_ntilde, Sym_ograve, Sym_oacute, Sym_ocirc,
|
|
Packit |
1c1d7e |
Sym_otilde, Sym_ouml, Sym_divide, Sym_oslash, Sym_ugrave,
|
|
Packit |
1c1d7e |
Sym_uacute, Sym_ucirc, Sym_uuml, Sym_yacute, Sym_thorn,
|
|
Packit |
1c1d7e |
Sym_yuml, Sym_fnof, Sym_Alpha, Sym_Beta, Sym_Gamma,
|
|
Packit |
1c1d7e |
Sym_Delta, Sym_Epsilon, Sym_Zeta, Sym_Eta, Sym_Theta,
|
|
Packit |
1c1d7e |
Sym_Iota, Sym_Kappa, Sym_Lambda, Sym_Mu, Sym_Nu,
|
|
Packit |
1c1d7e |
Sym_Xi, Sym_Omicron, Sym_Pi, Sym_Rho, Sym_Sigma,
|
|
Packit |
1c1d7e |
Sym_Tau, Sym_Upsilon, Sym_Phi, Sym_Chi, Sym_Psi,
|
|
Packit |
1c1d7e |
Sym_Omega, Sym_alpha, Sym_beta, Sym_gamma, Sym_delta,
|
|
Packit |
1c1d7e |
Sym_epsilon, Sym_zeta, Sym_eta, Sym_theta, Sym_iota,
|
|
Packit |
1c1d7e |
Sym_kappa, Sym_lambda, Sym_mu, Sym_nu, Sym_xi,
|
|
Packit |
1c1d7e |
Sym_omicron, Sym_pi, Sym_rho, Sym_sigmaf, Sym_sigma,
|
|
Packit |
1c1d7e |
Sym_tau, Sym_upsilon, Sym_phi, Sym_chi, Sym_psi,
|
|
Packit |
1c1d7e |
Sym_omega, Sym_thetasym, Sym_upsih, Sym_piv, Sym_bull,
|
|
Packit |
1c1d7e |
Sym_hellip, Sym_prime, Sym_Prime, Sym_oline, Sym_frasl,
|
|
Packit |
1c1d7e |
Sym_weierp, Sym_image, Sym_real, Sym_trade, Sym_alefsym,
|
|
Packit |
1c1d7e |
Sym_larr, Sym_uarr, Sym_rarr, Sym_darr, Sym_harr,
|
|
Packit |
1c1d7e |
Sym_crarr, Sym_lArr, Sym_uArr, Sym_rArr, Sym_dArr,
|
|
Packit |
1c1d7e |
Sym_hArr, Sym_forall, Sym_part, Sym_exist, Sym_empty,
|
|
Packit |
1c1d7e |
Sym_nabla, Sym_isin, Sym_notin, Sym_ni, Sym_prod,
|
|
Packit |
1c1d7e |
Sym_sum, Sym_minus, Sym_lowast, Sym_radic, Sym_prop,
|
|
Packit |
1c1d7e |
Sym_infin, Sym_ang, Sym_and, Sym_or, Sym_cap,
|
|
Packit |
1c1d7e |
Sym_cup, Sym_int, Sym_there4, Sym_sim, Sym_cong,
|
|
Packit |
1c1d7e |
Sym_asymp, Sym_ne, Sym_equiv, Sym_le, Sym_ge,
|
|
Packit |
1c1d7e |
Sym_sub, Sym_sup, Sym_nsub, Sym_sube, Sym_supe,
|
|
Packit |
1c1d7e |
Sym_oplus, Sym_otimes, Sym_perp, Sym_sdot, Sym_lceil,
|
|
Packit |
1c1d7e |
Sym_rceil, Sym_lfloor, Sym_rfloor, Sym_lang, Sym_rang,
|
|
Packit |
1c1d7e |
Sym_loz, Sym_spades, Sym_clubs, Sym_hearts, Sym_diams,
|
|
Packit |
1c1d7e |
Sym_quot, Sym_amp, Sym_lt, Sym_gt, Sym_OElig,
|
|
Packit |
1c1d7e |
Sym_oelig, Sym_Scaron, Sym_scaron, Sym_Yuml, Sym_circ,
|
|
Packit |
1c1d7e |
Sym_tilde, Sym_ensp, Sym_emsp, Sym_thinsp, Sym_zwnj,
|
|
Packit |
1c1d7e |
Sym_zwj, Sym_lrm, Sym_rlm, Sym_ndash, Sym_mdash,
|
|
Packit |
1c1d7e |
Sym_lsquo, Sym_rsquo, Sym_sbquo, Sym_ldquo, Sym_rdquo,
|
|
Packit |
1c1d7e |
Sym_bdquo, Sym_dagger, Sym_Dagger, Sym_permil, Sym_lsaquo,
|
|
Packit |
1c1d7e |
Sym_rsaquo, Sym_euro,
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/* doxygen extensions */
|
|
Packit |
1c1d7e |
Sym_tm, Sym_apos,
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/* doxygen commands mapped */
|
|
Packit |
1c1d7e |
Sym_BSlash, Sym_At, Sym_Less, Sym_Greater, Sym_Amp,
|
|
Packit |
1c1d7e |
Sym_Dollar, Sym_Hash, Sym_DoubleColon, Sym_Percent, Sym_Pipe,
|
|
Packit |
1c1d7e |
Sym_Quot, Sym_Minus, Sym_Plus, Sym_Dot
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
enum PerlType { Perl_unknown = 0, Perl_string, Perl_char, Perl_symbol, Perl_umlaut,
|
|
Packit |
1c1d7e |
Perl_acute, Perl_grave, Perl_circ, Perl_slash, Perl_tilde,
|
|
Packit |
1c1d7e |
Perl_cedilla, Perl_ring
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
typedef struct PerlSymb {
|
|
Packit |
1c1d7e |
const char *symb;
|
|
Packit |
1c1d7e |
const PerlType type;
|
|
Packit |
1c1d7e |
}PerlSymb;
|
|
Packit |
1c1d7e |
DocSymbol(DocNode *parent,SymType s) :
|
|
Packit |
1c1d7e |
m_symbol(s) { m_parent = parent; }
|
|
Packit |
1c1d7e |
SymType symbol() const { return m_symbol; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_Symbol; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { v->visit(this); }
|
|
Packit |
1c1d7e |
static SymType decodeSymbol(const QCString &symName);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
SymType m_symbol;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing some amount of white space */
|
|
Packit |
1c1d7e |
class DocWhiteSpace : public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocWhiteSpace(DocNode *parent,const QCString &chars) :
|
|
Packit |
1c1d7e |
m_chars(chars) { m_parent = parent; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_WhiteSpace; }
|
|
Packit |
1c1d7e |
QCString chars() const { return m_chars; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { v->visit(this); }
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
QCString m_chars;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a verbatim, unparsed text fragment */
|
|
Packit |
1c1d7e |
class DocVerbatim : public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
enum Type { Code, HtmlOnly, ManOnly, LatexOnly, RtfOnly, XmlOnly, Verbatim, Dot, Msc, DocbookOnly, PlantUML };
|
|
Packit |
1c1d7e |
DocVerbatim(DocNode *parent,const QCString &context,
|
|
Packit |
1c1d7e |
const QCString &text, Type t,bool isExample,
|
|
Packit |
1c1d7e |
const QCString &exampleFile,bool isBlock=FALSE,const QCString &lang=QCString());
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_Verbatim; }
|
|
Packit |
1c1d7e |
Type type() const { return m_type; }
|
|
Packit |
1c1d7e |
QCString text() const { return m_text; }
|
|
Packit |
1c1d7e |
QCString context() const { return m_context; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { v->visit(this); }
|
|
Packit |
1c1d7e |
bool isExample() const { return m_isExample; }
|
|
Packit |
1c1d7e |
QCString exampleFile() const { return m_exampleFile; }
|
|
Packit |
1c1d7e |
QCString relPath() const { return m_relPath; }
|
|
Packit |
1c1d7e |
QCString language() const { return m_lang; }
|
|
Packit |
1c1d7e |
bool isBlock() const { return m_isBlock; }
|
|
Packit |
1c1d7e |
bool hasCaption() const { return !m_children.isEmpty(); }
|
|
Packit |
1c1d7e |
QCString width() const { return m_width; }
|
|
Packit |
1c1d7e |
QCString height() const { return m_height; }
|
|
Packit |
1c1d7e |
const QList<DocNode> &children() const { return m_children; }
|
|
Packit |
1c1d7e |
QList<DocNode> &children() { return m_children; }
|
|
Packit |
1c1d7e |
void setText(const QCString &t) { m_text=t; }
|
|
Packit |
1c1d7e |
void setWidth(const QCString &w) { m_width=w; }
|
|
Packit |
1c1d7e |
void setHeight(const QCString &h) { m_height=h; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
QCString m_context;
|
|
Packit |
1c1d7e |
QCString m_text;
|
|
Packit |
1c1d7e |
Type m_type;
|
|
Packit |
1c1d7e |
bool m_isExample;
|
|
Packit |
1c1d7e |
QCString m_exampleFile;
|
|
Packit |
1c1d7e |
QCString m_relPath;
|
|
Packit |
1c1d7e |
QCString m_lang;
|
|
Packit |
1c1d7e |
bool m_isBlock;
|
|
Packit |
1c1d7e |
QCString m_width;
|
|
Packit |
1c1d7e |
QCString m_height;
|
|
Packit |
1c1d7e |
QList<DocNode> m_children;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing an included text block from file */
|
|
Packit |
1c1d7e |
class DocInclude : public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
enum Type { Include, DontInclude, VerbInclude, HtmlInclude, LatexInclude,
|
|
Packit |
1c1d7e |
IncWithLines, Snippet , IncludeDoc, SnippetDoc, SnipWithLines};
|
|
Packit |
1c1d7e |
DocInclude(DocNode *parent,const QCString &file,
|
|
Packit |
1c1d7e |
const QCString context, Type t,
|
|
Packit |
1c1d7e |
bool isExample,const QCString exampleFile,
|
|
Packit |
1c1d7e |
const QCString blockId) :
|
|
Packit |
1c1d7e |
m_file(file), m_context(context), m_type(t),
|
|
Packit |
1c1d7e |
m_isExample(isExample), m_exampleFile(exampleFile),
|
|
Packit |
1c1d7e |
m_blockId(blockId) { m_parent = parent; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_Include; }
|
|
Packit |
1c1d7e |
QCString file() const { return m_file; }
|
|
Packit |
1c1d7e |
QCString extension() const { int i=m_file.findRev('.');
|
|
Packit |
1c1d7e |
if (i!=-1)
|
|
Packit |
1c1d7e |
return m_file.right(m_file.length()-i);
|
|
Packit |
1c1d7e |
else
|
|
Packit |
1c1d7e |
return "";
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
Type type() const { return m_type; }
|
|
Packit |
1c1d7e |
QCString text() const { return m_text; }
|
|
Packit |
1c1d7e |
QCString context() const { return m_context; }
|
|
Packit |
1c1d7e |
QCString blockId() const { return m_blockId; }
|
|
Packit |
1c1d7e |
bool isExample() const { return m_isExample; }
|
|
Packit |
1c1d7e |
QCString exampleFile() const { return m_exampleFile; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { v->visit(this); }
|
|
Packit |
1c1d7e |
void parse();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
QCString m_file;
|
|
Packit |
1c1d7e |
QCString m_context;
|
|
Packit |
1c1d7e |
QCString m_text;
|
|
Packit |
1c1d7e |
Type m_type;
|
|
Packit |
1c1d7e |
bool m_isExample;
|
|
Packit |
1c1d7e |
QCString m_exampleFile;
|
|
Packit |
1c1d7e |
QCString m_blockId;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a include/dontinclude operator block */
|
|
Packit |
1c1d7e |
class DocIncOperator : public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
enum Type { Line, SkipLine, Skip, Until };
|
|
Packit |
1c1d7e |
DocIncOperator(DocNode *parent,Type t,const QCString &pat,
|
|
Packit |
1c1d7e |
const QCString &context,bool isExample,const QCString &exampleFile) :
|
|
Packit |
1c1d7e |
m_type(t), m_pattern(pat), m_context(context),
|
|
Packit |
1c1d7e |
m_isFirst(FALSE), m_isLast(FALSE),
|
|
Packit |
1c1d7e |
m_isExample(isExample), m_exampleFile(exampleFile) { m_parent = parent; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_IncOperator; }
|
|
Packit |
1c1d7e |
Type type() const { return m_type; }
|
|
Packit |
1c1d7e |
QCString text() const { return m_text; }
|
|
Packit |
1c1d7e |
QCString pattern() const { return m_pattern; }
|
|
Packit |
1c1d7e |
QCString context() const { return m_context; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { v->visit(this); }
|
|
Packit |
1c1d7e |
bool isFirst() const { return m_isFirst; }
|
|
Packit |
1c1d7e |
bool isLast() const { return m_isLast; }
|
|
Packit |
1c1d7e |
void markFirst(bool v=TRUE) { m_isFirst = v; }
|
|
Packit |
1c1d7e |
void markLast(bool v=TRUE) { m_isLast = v; }
|
|
Packit |
1c1d7e |
bool isExample() const { return m_isExample; }
|
|
Packit |
1c1d7e |
QCString exampleFile() const { return m_exampleFile; }
|
|
Packit |
1c1d7e |
QCString includeFileName() const { return m_includeFileName; }
|
|
Packit |
1c1d7e |
void parse();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
Type m_type;
|
|
Packit |
1c1d7e |
QCString m_text;
|
|
Packit |
1c1d7e |
QCString m_pattern;
|
|
Packit |
1c1d7e |
QCString m_context;
|
|
Packit |
1c1d7e |
bool m_isFirst;
|
|
Packit |
1c1d7e |
bool m_isLast;
|
|
Packit |
1c1d7e |
bool m_isExample;
|
|
Packit |
1c1d7e |
QCString m_exampleFile;
|
|
Packit |
1c1d7e |
QCString m_includeFileName;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing an item of a cross-referenced list */
|
|
Packit |
1c1d7e |
class DocFormula : public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocFormula(DocNode *parent,int id);
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_Formula; }
|
|
Packit |
1c1d7e |
QCString name() const { return m_name; }
|
|
Packit |
1c1d7e |
QCString text() const { return m_text; }
|
|
Packit |
1c1d7e |
QCString relPath() const { return m_relPath; }
|
|
Packit |
1c1d7e |
int id() const { return m_id; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { v->visit(this); }
|
|
Packit |
1c1d7e |
bool isInline() { return m_text.length()>0 ? m_text.at(0)!='\\' : TRUE; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
QCString m_name;
|
|
Packit |
1c1d7e |
QCString m_text;
|
|
Packit |
1c1d7e |
QCString m_relPath;
|
|
Packit |
1c1d7e |
int m_id;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing an entry in the index. */
|
|
Packit |
1c1d7e |
class DocIndexEntry : public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocIndexEntry(DocNode *parent,Definition *scope,MemberDef *md)
|
|
Packit |
1c1d7e |
: m_scope(scope), m_member(md){ m_parent = parent; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_IndexEntry; }
|
|
Packit |
1c1d7e |
int parse();
|
|
Packit |
1c1d7e |
Definition *scope() const { return m_scope; }
|
|
Packit |
1c1d7e |
MemberDef *member() const { return m_member; }
|
|
Packit |
1c1d7e |
QCString entry() const { return m_entry; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { v->visit(this); }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
QCString m_entry;
|
|
Packit |
1c1d7e |
Definition *m_scope;
|
|
Packit |
1c1d7e |
MemberDef *m_member;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
//-----------------------------------------------------------------------
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a copy of documentation block. */
|
|
Packit |
1c1d7e |
class DocCopy : public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocCopy(DocNode *parent,const QCString &link,bool copyBrief,bool copyDetails)
|
|
Packit |
1c1d7e |
: m_link(link),
|
|
Packit |
1c1d7e |
m_copyBrief(copyBrief), m_copyDetails(copyDetails) { m_parent = parent; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_Copy; }
|
|
Packit |
1c1d7e |
QCString link() const { return m_link; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor * /*v*/) { /*CompAccept<DocCopy>::accept(this,v);*/ }
|
|
Packit |
1c1d7e |
void parse(QList<DocNode> &children);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
QCString m_link;
|
|
Packit |
1c1d7e |
bool m_copyBrief;
|
|
Packit |
1c1d7e |
bool m_copyDetails;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing an auto List */
|
|
Packit |
1c1d7e |
class DocAutoList : public CompAccept<DocAutoList>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocAutoList(DocNode *parent,int indent,bool isEnumList,int depth);
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_AutoList; }
|
|
Packit |
1c1d7e |
bool isEnumList() const { return m_isEnumList; }
|
|
Packit |
1c1d7e |
int indent() const { return m_indent; }
|
|
Packit |
1c1d7e |
int depth() const { return m_depth; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocAutoList>::accept(this,v); }
|
|
Packit |
1c1d7e |
int parse();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
int m_indent;
|
|
Packit |
1c1d7e |
bool m_isEnumList;
|
|
Packit |
1c1d7e |
int m_depth;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing an item of a auto list */
|
|
Packit |
1c1d7e |
class DocAutoListItem : public CompAccept<DocAutoListItem>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocAutoListItem(DocNode *parent,int indent,int num);
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_AutoListItem; }
|
|
Packit |
1c1d7e |
int itemNumber() const { return m_itemNum; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocAutoListItem>::accept(this,v); }
|
|
Packit |
1c1d7e |
int parse();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
int m_indent;
|
|
Packit |
1c1d7e |
int m_itemNum;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a simple section title */
|
|
Packit |
1c1d7e |
class DocTitle : public CompAccept<DocTitle>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocTitle(DocNode *parent) { m_parent = parent; }
|
|
Packit |
1c1d7e |
void parse();
|
|
Packit |
1c1d7e |
void parseFromString(const QCString &title);
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_Title; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocTitle>::accept(this,v); }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing an item of a cross-referenced list */
|
|
Packit |
1c1d7e |
class DocXRefItem : public CompAccept<DocXRefItem>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocXRefItem(DocNode *parent,int id,const char *key);
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_XRefItem; }
|
|
Packit |
1c1d7e |
QCString file() const { return m_file; }
|
|
Packit |
1c1d7e |
QCString anchor() const { return m_anchor; }
|
|
Packit |
1c1d7e |
QCString title() const { return m_title; }
|
|
Packit |
1c1d7e |
QCString relPath() const { return m_relPath; }
|
|
Packit |
1c1d7e |
QCString key() const { return m_key; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocXRefItem>::accept(this,v); }
|
|
Packit |
1c1d7e |
bool parse();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
int m_id;
|
|
Packit |
1c1d7e |
QCString m_key;
|
|
Packit |
1c1d7e |
QCString m_file;
|
|
Packit |
1c1d7e |
QCString m_anchor;
|
|
Packit |
1c1d7e |
QCString m_title;
|
|
Packit |
1c1d7e |
QCString m_relPath;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing an image */
|
|
Packit |
1c1d7e |
class DocImage : public CompAccept<DocImage>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
enum Type { Html, Latex, Rtf, DocBook };
|
|
Packit |
1c1d7e |
DocImage(DocNode *parent,const HtmlAttribList &attribs,
|
|
Packit |
1c1d7e |
const QCString &name,Type t,const QCString &url=QCString());
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_Image; }
|
|
Packit |
1c1d7e |
Type type() const { return m_type; }
|
|
Packit |
1c1d7e |
QCString name() const { return m_name; }
|
|
Packit |
1c1d7e |
bool hasCaption() const { return !m_children.isEmpty(); }
|
|
Packit |
1c1d7e |
QCString width() const { return m_width; }
|
|
Packit |
1c1d7e |
QCString height() const { return m_height; }
|
|
Packit |
1c1d7e |
QCString relPath() const { return m_relPath; }
|
|
Packit |
1c1d7e |
QCString url() const { return m_url; }
|
|
Packit |
1c1d7e |
const HtmlAttribList &attribs() const { return m_attribs; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocImage>::accept(this,v); }
|
|
Packit |
1c1d7e |
void parse();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
HtmlAttribList m_attribs;
|
|
Packit |
1c1d7e |
QCString m_name;
|
|
Packit |
1c1d7e |
Type m_type;
|
|
Packit |
1c1d7e |
QCString m_width;
|
|
Packit |
1c1d7e |
QCString m_height;
|
|
Packit |
1c1d7e |
QCString m_relPath;
|
|
Packit |
1c1d7e |
QCString m_url;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a dot file */
|
|
Packit |
1c1d7e |
class DocDotFile : public CompAccept<DocDotFile>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocDotFile(DocNode *parent,const QCString &name,const QCString &context);
|
|
Packit |
1c1d7e |
void parse();
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_DotFile; }
|
|
Packit |
1c1d7e |
QCString name() const { return m_name; }
|
|
Packit |
1c1d7e |
QCString file() const { return m_file; }
|
|
Packit |
1c1d7e |
QCString relPath() const { return m_relPath; }
|
|
Packit |
1c1d7e |
bool hasCaption() const { return !m_children.isEmpty(); }
|
|
Packit |
1c1d7e |
QCString width() const { return m_width; }
|
|
Packit |
1c1d7e |
QCString height() const { return m_height; }
|
|
Packit |
1c1d7e |
QCString context() const { return m_context; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocDotFile>::accept(this,v); }
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
QCString m_name;
|
|
Packit |
1c1d7e |
QCString m_file;
|
|
Packit |
1c1d7e |
QCString m_relPath;
|
|
Packit |
1c1d7e |
QCString m_width;
|
|
Packit |
1c1d7e |
QCString m_height;
|
|
Packit |
1c1d7e |
QCString m_context;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a msc file */
|
|
Packit |
1c1d7e |
class DocMscFile : public CompAccept<DocMscFile>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocMscFile(DocNode *parent,const QCString &name,const QCString &context);
|
|
Packit |
1c1d7e |
void parse();
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_MscFile; }
|
|
Packit |
1c1d7e |
QCString name() const { return m_name; }
|
|
Packit |
1c1d7e |
QCString file() const { return m_file; }
|
|
Packit |
1c1d7e |
QCString relPath() const { return m_relPath; }
|
|
Packit |
1c1d7e |
bool hasCaption() const { return !m_children.isEmpty(); }
|
|
Packit |
1c1d7e |
QCString width() const { return m_width; }
|
|
Packit |
1c1d7e |
QCString height() const { return m_height; }
|
|
Packit |
1c1d7e |
QCString context() const { return m_context; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocMscFile>::accept(this,v); }
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
QCString m_name;
|
|
Packit |
1c1d7e |
QCString m_file;
|
|
Packit |
1c1d7e |
QCString m_relPath;
|
|
Packit |
1c1d7e |
QCString m_width;
|
|
Packit |
1c1d7e |
QCString m_height;
|
|
Packit |
1c1d7e |
QCString m_context;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a dia file */
|
|
Packit |
1c1d7e |
class DocDiaFile : public CompAccept<DocDiaFile>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocDiaFile(DocNode *parent,const QCString &name,const QCString &context);
|
|
Packit |
1c1d7e |
void parse();
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_DiaFile; }
|
|
Packit |
1c1d7e |
QCString name() const { return m_name; }
|
|
Packit |
1c1d7e |
QCString file() const { return m_file; }
|
|
Packit |
1c1d7e |
QCString relPath() const { return m_relPath; }
|
|
Packit |
1c1d7e |
bool hasCaption() const { return !m_children.isEmpty(); }
|
|
Packit |
1c1d7e |
QCString width() const { return m_width; }
|
|
Packit |
1c1d7e |
QCString height() const { return m_height; }
|
|
Packit |
1c1d7e |
QCString context() const { return m_context; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocDiaFile>::accept(this,v); }
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
QCString m_name;
|
|
Packit |
1c1d7e |
QCString m_file;
|
|
Packit |
1c1d7e |
QCString m_relPath;
|
|
Packit |
1c1d7e |
QCString m_width;
|
|
Packit |
1c1d7e |
QCString m_height;
|
|
Packit |
1c1d7e |
QCString m_context;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a VHDL flow chart */
|
|
Packit |
1c1d7e |
class DocVhdlFlow : public CompAccept<DocVhdlFlow>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocVhdlFlow(DocNode *parent);
|
|
Packit |
1c1d7e |
void parse();
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_VhdlFlow; }
|
|
Packit |
1c1d7e |
bool hasCaption() { return !m_children.isEmpty(); }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocVhdlFlow>::accept(this,v); }
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a link to some item */
|
|
Packit |
1c1d7e |
class DocLink : public CompAccept<DocLink>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocLink(DocNode *parent,const QCString &target);
|
|
Packit |
1c1d7e |
QCString parse(bool,bool isXmlLink=FALSE);
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_Link; }
|
|
Packit |
1c1d7e |
QCString file() const { return m_file; }
|
|
Packit |
1c1d7e |
QCString relPath() const { return m_relPath; }
|
|
Packit |
1c1d7e |
QCString ref() const { return m_ref; }
|
|
Packit |
1c1d7e |
QCString anchor() const { return m_anchor; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocLink>::accept(this,v); }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
QCString m_file;
|
|
Packit |
1c1d7e |
QCString m_relPath;
|
|
Packit |
1c1d7e |
QCString m_ref;
|
|
Packit |
1c1d7e |
QCString m_anchor;
|
|
Packit |
1c1d7e |
QCString m_refText;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a reference to some item */
|
|
Packit |
1c1d7e |
class DocRef : public CompAccept<DocRef>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocRef(DocNode *parent,const QCString &target,const QCString &context);
|
|
Packit |
1c1d7e |
void parse();
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_Ref; }
|
|
Packit |
1c1d7e |
QCString file() const { return m_file; }
|
|
Packit |
1c1d7e |
QCString relPath() const { return m_relPath; }
|
|
Packit |
1c1d7e |
QCString ref() const { return m_ref; }
|
|
Packit |
1c1d7e |
QCString anchor() const { return m_anchor; }
|
|
Packit |
1c1d7e |
QCString targetTitle() const { return m_text; }
|
|
Packit |
1c1d7e |
bool hasLinkText() const { return !m_children.isEmpty(); }
|
|
Packit |
1c1d7e |
bool refToAnchor() const { return m_refType==Anchor; }
|
|
Packit |
1c1d7e |
bool refToSection() const { return m_refType==Section; }
|
|
Packit |
1c1d7e |
bool refToTable() const { return m_refType==Table; }
|
|
Packit |
1c1d7e |
bool isSubPage() const { return m_isSubPage; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocRef>::accept(this,v); }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
enum RefType { Unknown, Anchor, Section, Table };
|
|
Packit |
1c1d7e |
RefType m_refType;
|
|
Packit |
1c1d7e |
bool m_isSubPage;
|
|
Packit |
1c1d7e |
QCString m_file;
|
|
Packit |
1c1d7e |
QCString m_relPath;
|
|
Packit |
1c1d7e |
QCString m_ref;
|
|
Packit |
1c1d7e |
QCString m_anchor;
|
|
Packit |
1c1d7e |
QCString m_text;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing an internal reference to some item */
|
|
Packit |
1c1d7e |
class DocInternalRef : public CompAccept<DocInternalRef>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocInternalRef(DocNode *parent,const QCString &target);
|
|
Packit |
1c1d7e |
void parse();
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_Ref; }
|
|
Packit |
1c1d7e |
QCString file() const { return m_file; }
|
|
Packit |
1c1d7e |
QCString relPath() const { return m_relPath; }
|
|
Packit |
1c1d7e |
QCString anchor() const { return m_anchor; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocInternalRef>::accept(this,v); }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
QCString m_file;
|
|
Packit |
1c1d7e |
QCString m_relPath;
|
|
Packit |
1c1d7e |
QCString m_anchor;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a Hypertext reference */
|
|
Packit |
1c1d7e |
class DocHRef : public CompAccept<DocHRef>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocHRef(DocNode *parent,const HtmlAttribList &attribs,const QCString &url,
|
|
Packit |
1c1d7e |
const QCString &relPath) :
|
|
Packit |
1c1d7e |
m_attribs(attribs), m_url(url), m_relPath(relPath) { m_parent = parent; }
|
|
Packit |
1c1d7e |
int parse();
|
|
Packit |
1c1d7e |
QCString url() const { return m_url; }
|
|
Packit |
1c1d7e |
QCString relPath() const { return m_relPath; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_HRef; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocHRef>::accept(this,v); }
|
|
Packit |
1c1d7e |
const HtmlAttribList &attribs() const { return m_attribs; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
HtmlAttribList m_attribs;
|
|
Packit |
1c1d7e |
QCString m_url;
|
|
Packit |
1c1d7e |
QCString m_relPath;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node Html heading */
|
|
Packit |
1c1d7e |
class DocHtmlHeader : public CompAccept<DocHtmlHeader>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocHtmlHeader(DocNode *parent,const HtmlAttribList &attribs,int level) :
|
|
Packit |
1c1d7e |
m_level(level), m_attribs(attribs) { m_parent = parent; }
|
|
Packit |
1c1d7e |
int level() const { return m_level; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_HtmlHeader; }
|
|
Packit |
1c1d7e |
const HtmlAttribList &attribs() const { return m_attribs; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocHtmlHeader>::accept(this,v); }
|
|
Packit |
1c1d7e |
int parse();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
int m_level;
|
|
Packit |
1c1d7e |
HtmlAttribList m_attribs;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a Html description item */
|
|
Packit |
1c1d7e |
class DocHtmlDescTitle : public CompAccept<DocHtmlDescTitle>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocHtmlDescTitle(DocNode *parent,const HtmlAttribList &attribs) :
|
|
Packit |
1c1d7e |
m_attribs(attribs) { m_parent = parent; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_HtmlDescTitle; }
|
|
Packit |
1c1d7e |
const HtmlAttribList &attribs() const { return m_attribs; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocHtmlDescTitle>::accept(this,v); }
|
|
Packit |
1c1d7e |
int parse();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
HtmlAttribList m_attribs;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a Html description list */
|
|
Packit |
1c1d7e |
class DocHtmlDescList : public CompAccept<DocHtmlDescList>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocHtmlDescList(DocNode *parent,const HtmlAttribList &attribs) :
|
|
Packit |
1c1d7e |
m_attribs(attribs) { m_parent = parent; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_HtmlDescList; }
|
|
Packit |
1c1d7e |
const HtmlAttribList &attribs() const { return m_attribs; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocHtmlDescList>::accept(this,v); }
|
|
Packit |
1c1d7e |
int parse();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
HtmlAttribList m_attribs;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a normal section */
|
|
Packit |
1c1d7e |
class DocSection : public CompAccept<DocSection>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocSection(DocNode *parent,int level,const QCString &id) :
|
|
Packit |
1c1d7e |
m_level(level), m_id(id) { m_parent = parent; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_Section; }
|
|
Packit |
1c1d7e |
int level() const { return m_level; }
|
|
Packit |
1c1d7e |
QCString title() const { return m_title; }
|
|
Packit |
1c1d7e |
QCString anchor() const { return m_anchor; }
|
|
Packit |
1c1d7e |
QCString id() const { return m_id; }
|
|
Packit |
1c1d7e |
QCString file() const { return m_file; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocSection>::accept(this,v); }
|
|
Packit |
1c1d7e |
int parse();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
int m_level;
|
|
Packit |
1c1d7e |
QCString m_id;
|
|
Packit |
1c1d7e |
QCString m_title;
|
|
Packit |
1c1d7e |
QCString m_anchor;
|
|
Packit |
1c1d7e |
QCString m_file;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a reference to a section */
|
|
Packit |
1c1d7e |
class DocSecRefItem : public CompAccept<DocSecRefItem>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocSecRefItem(DocNode *parent,const QCString &target) :
|
|
Packit |
1c1d7e |
m_target(target) { m_parent = parent; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_SecRefItem; }
|
|
Packit |
1c1d7e |
QCString target() const { return m_target; }
|
|
Packit |
1c1d7e |
QCString file() const { return m_file; }
|
|
Packit |
1c1d7e |
QCString anchor() const { return m_anchor; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocSecRefItem>::accept(this,v); }
|
|
Packit |
1c1d7e |
void parse();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
QCString m_target;
|
|
Packit |
1c1d7e |
QCString m_file;
|
|
Packit |
1c1d7e |
QCString m_anchor;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a list of section references */
|
|
Packit |
1c1d7e |
class DocSecRefList : public CompAccept<DocSecRefList>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocSecRefList(DocNode *parent) { m_parent = parent; }
|
|
Packit |
1c1d7e |
void parse();
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_SecRefList; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocSecRefList>::accept(this,v); }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing an internal section of documentation */
|
|
Packit |
1c1d7e |
class DocInternal : public CompAccept<DocInternal>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocInternal(DocNode *parent) { m_parent = parent; }
|
|
Packit |
1c1d7e |
int parse(int);
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_Internal; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocInternal>::accept(this,v); }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing an block of paragraphs */
|
|
Packit |
1c1d7e |
class DocParBlock : public CompAccept<DocParBlock>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocParBlock(DocNode *parent) { m_parent = parent; }
|
|
Packit |
1c1d7e |
int parse();
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_ParBlock; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocParBlock>::accept(this,v); }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a simple list */
|
|
Packit |
1c1d7e |
class DocSimpleList : public CompAccept<DocSimpleList>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocSimpleList(DocNode *parent) { m_parent = parent; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_SimpleList; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocSimpleList>::accept(this,v); }
|
|
Packit |
1c1d7e |
int parse();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a Html list */
|
|
Packit |
1c1d7e |
class DocHtmlList : public CompAccept<DocHtmlList>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
enum Type { Unordered, Ordered };
|
|
Packit |
1c1d7e |
DocHtmlList(DocNode *parent,const HtmlAttribList &attribs,Type t) :
|
|
Packit |
1c1d7e |
m_type(t), m_attribs(attribs) { m_parent = parent; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_HtmlList; }
|
|
Packit |
1c1d7e |
Type type() const { return m_type; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocHtmlList>::accept(this,v); }
|
|
Packit |
1c1d7e |
const HtmlAttribList &attribs() const { return m_attribs; }
|
|
Packit |
1c1d7e |
int parse();
|
|
Packit |
1c1d7e |
int parseXml();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
Type m_type;
|
|
Packit |
1c1d7e |
HtmlAttribList m_attribs;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a simple section */
|
|
Packit |
1c1d7e |
class DocSimpleSect : public CompAccept<DocSimpleSect>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
enum Type
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
Unknown, See, Return, Author, Authors, Version, Since, Date,
|
|
Packit |
1c1d7e |
Note, Warning, Copyright, Pre, Post, Invar, Remark, Attention, User, Rcs
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
DocSimpleSect(DocNode *parent,Type t);
|
|
Packit |
1c1d7e |
virtual ~DocSimpleSect();
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_SimpleSect; }
|
|
Packit |
1c1d7e |
Type type() const { return m_type; }
|
|
Packit |
1c1d7e |
QCString typeString() const;
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v);
|
|
Packit |
1c1d7e |
int parse(bool userTitle,bool needsSeparator);
|
|
Packit |
1c1d7e |
int parseRcs();
|
|
Packit |
1c1d7e |
int parseXml();
|
|
Packit |
1c1d7e |
void appendLinkWord(const QCString &word);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
Type m_type;
|
|
Packit |
1c1d7e |
DocTitle * m_title;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a separator between two simple sections of the
|
|
Packit |
1c1d7e |
* same type.
|
|
Packit |
1c1d7e |
*/
|
|
Packit |
1c1d7e |
class DocSimpleSectSep : public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocSimpleSectSep(DocNode *parent) { m_parent = parent; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_SimpleSectSep; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { v->visit(this); }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a parameter section */
|
|
Packit |
1c1d7e |
class DocParamSect : public CompAccept<DocParamSect>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
friend class DocParamList;
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
enum Type
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
Unknown, Param, RetVal, Exception, TemplateParam
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
enum Direction
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
In=1, Out=2, InOut=3, Unspecified=0
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
DocParamSect(DocNode *parent,Type t)
|
|
Packit |
1c1d7e |
: m_type(t), m_hasInOutSpecifier(FALSE), m_hasTypeSpecifier(FALSE)
|
|
Packit |
1c1d7e |
{ m_parent = parent; }
|
|
Packit |
1c1d7e |
int parse(const QCString &cmdName,bool xmlContext,Direction d);
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_ParamSect; }
|
|
Packit |
1c1d7e |
Type type() const { return m_type; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocParamSect>::accept(this,v); }
|
|
Packit |
1c1d7e |
bool hasInOutSpecifier() const { return m_hasInOutSpecifier; }
|
|
Packit |
1c1d7e |
bool hasTypeSpecifier() const { return m_hasTypeSpecifier; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
Type m_type;
|
|
Packit |
1c1d7e |
bool m_hasInOutSpecifier;
|
|
Packit |
1c1d7e |
bool m_hasTypeSpecifier;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a paragraph in the documentation tree */
|
|
Packit |
1c1d7e |
class DocPara : public CompAccept<DocPara>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocPara(DocNode *parent) :
|
|
Packit |
1c1d7e |
m_isFirst(FALSE), m_isLast(FALSE) { m_parent = parent; }
|
|
Packit |
1c1d7e |
int parse();
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_Para; }
|
|
Packit |
1c1d7e |
bool isEmpty() const { return m_children.isEmpty(); }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocPara>::accept(this,v); }
|
|
Packit |
1c1d7e |
void markFirst(bool v=TRUE) { m_isFirst=v; }
|
|
Packit |
1c1d7e |
void markLast(bool v=TRUE) { m_isLast=v; }
|
|
Packit |
1c1d7e |
bool isFirst() const { return m_isFirst; }
|
|
Packit |
1c1d7e |
bool isLast() const { return m_isLast; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
int handleCommand(const QCString &cmdName);
|
|
Packit |
1c1d7e |
int handleHtmlStartTag(const QCString &tagName,const HtmlAttribList &tagHtmlAttribs);
|
|
Packit |
1c1d7e |
int handleHtmlEndTag(const QCString &tagName);
|
|
Packit |
1c1d7e |
int handleSimpleSection(DocSimpleSect::Type t,bool xmlContext=FALSE);
|
|
Packit |
1c1d7e |
int handleXRefItem();
|
|
Packit |
1c1d7e |
int handleParamSection(const QCString &cmdName,DocParamSect::Type t,
|
|
Packit |
1c1d7e |
bool xmlContext,
|
|
Packit |
1c1d7e |
int direction);
|
|
Packit |
1c1d7e |
void handleIncludeOperator(const QCString &cmdName,DocIncOperator::Type t);
|
|
Packit |
1c1d7e |
void handleImage(const QCString &cmdName);
|
|
Packit |
1c1d7e |
template<class T> void handleFile(const QCString &cmdName);
|
|
Packit |
1c1d7e |
void handleInclude(const QCString &cmdName,DocInclude::Type t);
|
|
Packit |
1c1d7e |
void handleLink(const QCString &cmdName,bool isJavaLink);
|
|
Packit |
1c1d7e |
void handleCite();
|
|
Packit |
1c1d7e |
void handleRef(const QCString &cmdName);
|
|
Packit |
1c1d7e |
void handleSection(const QCString &cmdName);
|
|
Packit |
1c1d7e |
void handleInheritDoc();
|
|
Packit |
1c1d7e |
void handleVhdlFlow();
|
|
Packit |
1c1d7e |
int handleStartCode();
|
|
Packit |
1c1d7e |
int handleHtmlHeader(const HtmlAttribList &tagHtmlAttribs,int level);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
bool injectToken(int tok,const QCString &tokText);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
QCString m_sectionId;
|
|
Packit |
1c1d7e |
bool m_isFirst;
|
|
Packit |
1c1d7e |
bool m_isLast;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a parameter list. */
|
|
Packit |
1c1d7e |
class DocParamList : public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocParamList(DocNode *parent,DocParamSect::Type t,DocParamSect::Direction d)
|
|
Packit |
1c1d7e |
: m_type(t), m_dir(d), m_isFirst(TRUE), m_isLast(TRUE)
|
|
Packit |
1c1d7e |
{ m_paragraphs.setAutoDelete(TRUE);
|
|
Packit |
1c1d7e |
m_params.setAutoDelete(TRUE);
|
|
Packit |
1c1d7e |
m_paramTypes.setAutoDelete(TRUE);
|
|
Packit |
1c1d7e |
m_parent = parent;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
virtual ~DocParamList() { }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_ParamList; }
|
|
Packit |
1c1d7e |
const QList<DocNode> ¶meters() { return m_params; }
|
|
Packit |
1c1d7e |
const QList<DocNode> ¶mTypes() { return m_paramTypes; }
|
|
Packit |
1c1d7e |
DocParamSect::Type type() const { return m_type; }
|
|
Packit |
1c1d7e |
DocParamSect::Direction direction() const { return m_dir; }
|
|
Packit |
1c1d7e |
void markFirst(bool b=TRUE) { m_isFirst=b; }
|
|
Packit |
1c1d7e |
void markLast(bool b=TRUE) { m_isLast=b; }
|
|
Packit |
1c1d7e |
bool isFirst() const { return m_isFirst; }
|
|
Packit |
1c1d7e |
bool isLast() const { return m_isLast; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
v->visitPre(this);
|
|
Packit |
1c1d7e |
QListIterator<DocPara> cli(m_paragraphs);
|
|
Packit |
1c1d7e |
DocNode *n;
|
|
Packit |
1c1d7e |
for (cli.toFirst();(n=cli.current());++cli) n->accept(v);
|
|
Packit |
1c1d7e |
v->visitPost(this);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
int parse(const QCString &cmdName);
|
|
Packit |
1c1d7e |
int parseXml(const QCString ¶mName);
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
QList<DocPara> m_paragraphs;
|
|
Packit |
1c1d7e |
QList<DocNode> m_params;
|
|
Packit |
1c1d7e |
QList<DocNode> m_paramTypes;
|
|
Packit |
1c1d7e |
DocParamSect::Type m_type;
|
|
Packit |
1c1d7e |
DocParamSect::Direction m_dir;
|
|
Packit |
1c1d7e |
bool m_isFirst;
|
|
Packit |
1c1d7e |
bool m_isLast;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a simple list item */
|
|
Packit |
1c1d7e |
class DocSimpleListItem : public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocSimpleListItem(DocNode *parent)
|
|
Packit |
1c1d7e |
{ m_paragraph=new DocPara(this); m_parent = parent; }
|
|
Packit |
1c1d7e |
int parse();
|
|
Packit |
1c1d7e |
virtual ~DocSimpleListItem() { delete m_paragraph; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_SimpleListItem; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
v->visitPre(this);
|
|
Packit |
1c1d7e |
m_paragraph->accept(v);
|
|
Packit |
1c1d7e |
v->visitPost(this);
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
DocPara *m_paragraph;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a HTML list item */
|
|
Packit |
1c1d7e |
class DocHtmlListItem : public CompAccept<DocHtmlListItem>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocHtmlListItem(DocNode *parent,const HtmlAttribList &attribs,int num) :
|
|
Packit |
1c1d7e |
m_attribs(attribs), m_itemNum(num) { m_parent = parent; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_HtmlListItem; }
|
|
Packit |
1c1d7e |
int itemNumber() const { return m_itemNum; }
|
|
Packit |
1c1d7e |
const HtmlAttribList &attribs() const { return m_attribs; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocHtmlListItem>::accept(this,v); }
|
|
Packit |
1c1d7e |
int parse();
|
|
Packit |
1c1d7e |
int parseXml();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
HtmlAttribList m_attribs;
|
|
Packit |
1c1d7e |
int m_itemNum;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a HTML description data */
|
|
Packit |
1c1d7e |
class DocHtmlDescData : public CompAccept<DocHtmlDescData>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocHtmlDescData(DocNode *parent) { m_parent = parent; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_HtmlDescData; }
|
|
Packit |
1c1d7e |
const HtmlAttribList &attribs() const { return m_attribs; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocHtmlDescData>::accept(this,v); }
|
|
Packit |
1c1d7e |
int parse();
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
HtmlAttribList m_attribs;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a HTML table cell */
|
|
Packit |
1c1d7e |
class DocHtmlCell : public CompAccept<DocHtmlCell>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
friend class DocHtmlTable;
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
enum Alignment { Left, Right, Center };
|
|
Packit |
1c1d7e |
DocHtmlCell(DocNode *parent,const HtmlAttribList &attribs,bool isHeading) :
|
|
Packit |
1c1d7e |
m_isHeading(isHeading),
|
|
Packit |
1c1d7e |
m_isFirst(FALSE), m_isLast(FALSE), m_attribs(attribs),
|
|
Packit |
1c1d7e |
m_rowIdx(-1), m_colIdx(-1) { m_parent = parent; }
|
|
Packit |
1c1d7e |
bool isHeading() const { return m_isHeading; }
|
|
Packit |
1c1d7e |
bool isFirst() const { return m_isFirst; }
|
|
Packit |
1c1d7e |
bool isLast() const { return m_isLast; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_HtmlCell; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocHtmlCell>::accept(this,v); }
|
|
Packit |
1c1d7e |
void markFirst(bool v=TRUE) { m_isFirst=v; }
|
|
Packit |
1c1d7e |
void markLast(bool v=TRUE) { m_isLast=v; }
|
|
Packit |
1c1d7e |
const HtmlAttribList &attribs() const { return m_attribs; }
|
|
Packit |
1c1d7e |
int parse();
|
|
Packit |
1c1d7e |
int parseXml();
|
|
Packit |
1c1d7e |
int rowIndex() const { return m_rowIdx; }
|
|
Packit |
1c1d7e |
int columnIndex() const { return m_colIdx; }
|
|
Packit |
1c1d7e |
int rowSpan() const;
|
|
Packit |
1c1d7e |
int colSpan() const;
|
|
Packit |
1c1d7e |
Alignment alignment() const;
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
void setRowIndex(int idx) { m_rowIdx = idx; }
|
|
Packit |
1c1d7e |
void setColumnIndex(int idx) { m_colIdx = idx; }
|
|
Packit |
1c1d7e |
bool m_isHeading;
|
|
Packit |
1c1d7e |
bool m_isFirst;
|
|
Packit |
1c1d7e |
bool m_isLast;
|
|
Packit |
1c1d7e |
HtmlAttribList m_attribs;
|
|
Packit |
1c1d7e |
int m_rowIdx;
|
|
Packit |
1c1d7e |
int m_colIdx;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a HTML table caption */
|
|
Packit |
1c1d7e |
class DocHtmlCaption : public CompAccept<DocHtmlCaption>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocHtmlCaption(DocNode *parent,const HtmlAttribList &attribs);
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_HtmlCaption; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocHtmlCaption>::accept(this,v); }
|
|
Packit |
1c1d7e |
const HtmlAttribList &attribs() const { return m_attribs; }
|
|
Packit |
1c1d7e |
int parse();
|
|
Packit |
1c1d7e |
bool hasCaptionId() const { return m_hasCaptionId; }
|
|
Packit |
1c1d7e |
QCString file() const { return m_file; }
|
|
Packit |
1c1d7e |
QCString anchor() const { return m_anchor; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
HtmlAttribList m_attribs;
|
|
Packit |
1c1d7e |
bool m_hasCaptionId;
|
|
Packit |
1c1d7e |
QCString m_file;
|
|
Packit |
1c1d7e |
QCString m_anchor;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a HTML table row */
|
|
Packit |
1c1d7e |
class DocHtmlRow : public CompAccept<DocHtmlRow>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
friend class DocHtmlTable;
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocHtmlRow(DocNode *parent,const HtmlAttribList &attribs) :
|
|
Packit |
1c1d7e |
m_attribs(attribs), m_visibleCells(-1), m_rowIdx(-1) { m_parent = parent; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_HtmlRow; }
|
|
Packit |
1c1d7e |
uint numCells() const { return m_children.count(); }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocHtmlRow>::accept(this,v); }
|
|
Packit |
1c1d7e |
const HtmlAttribList &attribs() const { return m_attribs; }
|
|
Packit |
1c1d7e |
int parse();
|
|
Packit |
1c1d7e |
int parseXml(bool header);
|
|
Packit |
1c1d7e |
bool isHeading() const { // a row is a table heading if all cells are marked as such
|
|
Packit |
1c1d7e |
bool heading=TRUE;
|
|
Packit |
1c1d7e |
QListIterator<DocNode> it(m_children);
|
|
Packit |
1c1d7e |
DocNode *n;
|
|
Packit |
1c1d7e |
for (;(n=it.current());++it)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
if (n->kind()==Kind_HtmlCell)
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
heading = heading && ((DocHtmlCell*)n)->isHeading();
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
return m_children.count()>0 && heading;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
void setVisibleCells(int n) { m_visibleCells = n; }
|
|
Packit |
1c1d7e |
int visibleCells() const { return m_visibleCells; }
|
|
Packit |
1c1d7e |
int rowIndex() const { return m_rowIdx; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
void setRowIndex(int idx) { m_rowIdx = idx; }
|
|
Packit |
1c1d7e |
HtmlAttribList m_attribs;
|
|
Packit |
1c1d7e |
int m_visibleCells;
|
|
Packit |
1c1d7e |
int m_rowIdx;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing a HTML table */
|
|
Packit |
1c1d7e |
class DocHtmlTable : public CompAccept<DocHtmlTable>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocHtmlTable(DocNode *parent,const HtmlAttribList &attribs)
|
|
Packit |
1c1d7e |
: m_attribs(attribs) { m_caption=0; m_parent = parent; }
|
|
Packit |
1c1d7e |
~DocHtmlTable() { delete m_caption; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_HtmlTable; }
|
|
Packit |
1c1d7e |
uint numRows() const { return m_children.count(); }
|
|
Packit |
1c1d7e |
bool hasCaption() { return m_caption!=0; }
|
|
Packit |
1c1d7e |
const HtmlAttribList &attribs() const { return m_attribs; }
|
|
Packit |
1c1d7e |
int parse();
|
|
Packit |
1c1d7e |
int parseXml();
|
|
Packit |
1c1d7e |
uint numColumns() const { return m_numCols; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v);
|
|
Packit |
1c1d7e |
DocHtmlCaption *caption() const { return m_caption; }
|
|
Packit |
1c1d7e |
DocHtmlRow *firstRow() const {
|
|
Packit |
1c1d7e |
DocNode *n = m_children.getFirst();
|
|
Packit |
1c1d7e |
if (n && n->kind()==Kind_HtmlRow) return (DocHtmlRow*)n;
|
|
Packit |
1c1d7e |
return 0;
|
|
Packit |
1c1d7e |
}
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
void computeTableGrid();
|
|
Packit |
1c1d7e |
DocHtmlCaption *m_caption;
|
|
Packit |
1c1d7e |
HtmlAttribList m_attribs;
|
|
Packit |
1c1d7e |
int m_numCols;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Node representing an HTML blockquote */
|
|
Packit |
1c1d7e |
class DocHtmlBlockQuote : public CompAccept<DocHtmlBlockQuote>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocHtmlBlockQuote(DocNode *parent,const HtmlAttribList &attribs)
|
|
Packit |
1c1d7e |
: m_attribs(attribs) { m_parent = parent; }
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_HtmlBlockQuote; }
|
|
Packit |
1c1d7e |
int parse();
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocHtmlBlockQuote>::accept(this,v); }
|
|
Packit |
1c1d7e |
const HtmlAttribList &attribs() const { return m_attribs; }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
HtmlAttribList m_attribs;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Root node of a text fragment */
|
|
Packit |
1c1d7e |
class DocText : public CompAccept<DocText>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocText() {}
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_Text; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocText>::accept(this,v); }
|
|
Packit |
1c1d7e |
void parse();
|
|
Packit |
1c1d7e |
bool isEmpty() const { return m_children.isEmpty(); }
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
/** Root node of documentation tree */
|
|
Packit |
1c1d7e |
class DocRoot : public CompAccept<DocRoot>, public DocNode
|
|
Packit |
1c1d7e |
{
|
|
Packit |
1c1d7e |
public:
|
|
Packit |
1c1d7e |
DocRoot(bool indent,bool sl) : m_indent(indent), m_singleLine(sl) {}
|
|
Packit |
1c1d7e |
Kind kind() const { return Kind_Root; }
|
|
Packit |
1c1d7e |
void accept(DocVisitor *v) { CompAccept<DocRoot>::accept(this,v); }
|
|
Packit |
1c1d7e |
void parse();
|
|
Packit |
1c1d7e |
bool indent() const { return m_indent; }
|
|
Packit |
1c1d7e |
bool singleLine() const { return m_singleLine; }
|
|
Packit |
1c1d7e |
bool isEmpty() const { return m_children.isEmpty(); }
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
private:
|
|
Packit |
1c1d7e |
bool m_indent;
|
|
Packit |
1c1d7e |
bool m_singleLine;
|
|
Packit |
1c1d7e |
};
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
|
|
Packit |
1c1d7e |
#endif
|