diff options
Diffstat (limited to 'src/qdoc/atom.h')
-rw-r--r-- | src/qdoc/atom.h | 249 |
1 files changed, 0 insertions, 249 deletions
diff --git a/src/qdoc/atom.h b/src/qdoc/atom.h deleted file mode 100644 index 544e8369b..000000000 --- a/src/qdoc/atom.h +++ /dev/null @@ -1,249 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2021 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the tools applications of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef ATOM_H -#define ATOM_H - -#include "node.h" - -#include <QtCore/qdebug.h> -#include <QtCore/qstringlist.h> - -QT_BEGIN_NAMESPACE - -class Tree; -class LinkAtom; - -class Atom -{ -public: - enum AtomType { - AnnotatedList, - AutoLink, - BaseName, - BR, - BriefLeft, - BriefRight, - C, - CaptionLeft, - CaptionRight, - Code, - CodeBad, - CodeNew, - CodeOld, - CodeQuoteArgument, - CodeQuoteCommand, - DivLeft, - DivRight, - EndQmlText, - ExampleFileLink, - ExampleImageLink, - FootnoteLeft, - FootnoteRight, - FormatElse, - FormatEndif, - FormatIf, - FormattingLeft, - FormattingRight, - GeneratedList, - HR, - Image, - ImageText, - ImportantLeft, - ImportantRight, - InlineImage, - JavaScript, - EndJavaScript, - Keyword, - LegaleseLeft, - LegaleseRight, - LineBreak, - Link, - LinkNode, - ListLeft, - ListItemNumber, - ListTagLeft, - ListTagRight, - ListItemLeft, - ListItemRight, - ListRight, - NavAutoLink, - NavLink, - Nop, - NoteLeft, - NoteRight, - ParaLeft, - ParaRight, - Qml, - QmlText, - QuotationLeft, - QuotationRight, - RawString, - SectionLeft, - SectionRight, - SectionHeadingLeft, - SectionHeadingRight, - SidebarLeft, - SidebarRight, - SinceList, - SinceTagLeft, - SinceTagRight, - SnippetCommand, - SnippetIdentifier, - SnippetLocation, - String, - TableLeft, - TableRight, - TableHeaderLeft, - TableHeaderRight, - TableRowLeft, - TableRowRight, - TableItemLeft, - TableItemRight, - TableOfContents, - Target, - UnhandledFormat, - WarningLeft, - WarningRight, - UnknownCommand, - Last = UnknownCommand - }; - - friend class LinkAtom; - - explicit Atom(AtomType type, const QString &string = "") : m_type(type), m_strs(string) { } - - Atom(AtomType type, const QString &p1, const QString &p2) : m_type(type), m_strs(p1) - { - if (!p2.isEmpty()) - m_strs << p2; - } - - Atom(Atom *previous, AtomType type, const QString &string) - : m_next(previous->m_next), m_type(type), m_strs(string) - { - previous->m_next = this; - } - - Atom(Atom *previous, AtomType type, const QString &p1, const QString &p2) - : m_next(previous->m_next), m_type(type), m_strs(p1) - { - if (!p2.isEmpty()) - m_strs << p2; - previous->m_next = this; - } - - virtual ~Atom() = default; - - void appendChar(QChar ch) { m_strs[0] += ch; } - void appendString(const QString &string) { m_strs[0] += string; } - void chopString() { m_strs[0].chop(1); } - void setString(const QString &string) { m_strs[0] = string; } - Atom *next() { return m_next; } - void setNext(Atom *newNext) { m_next = newNext; } - - [[nodiscard]] const Atom *next() const { return m_next; } - [[nodiscard]] const Atom *next(AtomType t) const; - [[nodiscard]] const Atom *next(AtomType t, const QString &s) const; - [[nodiscard]] AtomType type() const { return m_type; } - [[nodiscard]] QString typeString() const; - [[nodiscard]] const QString &string() const { return m_strs[0]; } - [[nodiscard]] const QString &string(int i) const { return m_strs[i]; } - [[nodiscard]] qsizetype count() const { return m_strs.size(); } - void dump() const; - [[nodiscard]] QString linkText() const; - [[nodiscard]] const QStringList &strings() const { return m_strs; } - - [[nodiscard]] virtual bool isLinkAtom() const { return false; } - virtual Node::Genus genus() { return Node::DontCare; } - virtual Tree *domain() { return nullptr; } - virtual const QString &error() { return s_noError; } - virtual void resolveSquareBracketParams() {} - -protected: - static QString s_noError; - Atom *m_next = nullptr; - AtomType m_type {}; - QStringList m_strs {}; -}; - -class LinkAtom : public Atom -{ -public: - LinkAtom(const QString &p1, const QString &p2); - LinkAtom(const LinkAtom &t); - LinkAtom(Atom *previous, const LinkAtom &t); - ~LinkAtom() override = default; - - [[nodiscard]] bool isLinkAtom() const override { return true; } - Node::Genus genus() override - { - resolveSquareBracketParams(); - return m_genus; - } - Tree *domain() override - { - resolveSquareBracketParams(); - return m_domain; - } - const QString &error() override { return m_error; } - void resolveSquareBracketParams() override; - -protected: - bool m_resolved {}; - Node::Genus m_genus {}; - Node::NodeType m_goal {}; - Tree *m_domain {}; - QString m_error {}; - QString m_squareBracketParams {}; -}; - -#define ATOM_FORMATTING_BOLD "bold" -#define ATOM_FORMATTING_INDEX "index" -#define ATOM_FORMATTING_ITALIC "italic" -#define ATOM_FORMATTING_LINK "link" -#define ATOM_FORMATTING_PARAMETER "parameter" -#define ATOM_FORMATTING_SPAN "span " -#define ATOM_FORMATTING_SUBSCRIPT "subscript" -#define ATOM_FORMATTING_SUPERSCRIPT "superscript" -#define ATOM_FORMATTING_TELETYPE "teletype" -#define ATOM_FORMATTING_UICONTROL "uicontrol" -#define ATOM_FORMATTING_UNDERLINE "underline" - -#define ATOM_LIST_BULLET "bullet" -#define ATOM_LIST_TAG "tag" -#define ATOM_LIST_VALUE "value" -#define ATOM_LIST_LOWERALPHA "loweralpha" -#define ATOM_LIST_LOWERROMAN "lowerroman" -#define ATOM_LIST_NUMERIC "numeric" -#define ATOM_LIST_UPPERALPHA "upperalpha" -#define ATOM_LIST_UPPERROMAN "upperroman" - -QT_END_NAMESPACE - -#endif |