aboutsummaryrefslogtreecommitdiffstats
path: root/sources/shiboken2/ApiExtractor/parser/codemodel.h
diff options
context:
space:
mode:
Diffstat (limited to 'sources/shiboken2/ApiExtractor/parser/codemodel.h')
-rw-r--r--sources/shiboken2/ApiExtractor/parser/codemodel.h766
1 files changed, 0 insertions, 766 deletions
diff --git a/sources/shiboken2/ApiExtractor/parser/codemodel.h b/sources/shiboken2/ApiExtractor/parser/codemodel.h
deleted file mode 100644
index 777b2d103..000000000
--- a/sources/shiboken2/ApiExtractor/parser/codemodel.h
+++ /dev/null
@@ -1,766 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2016 The Qt Company Ltd.
-** Copyright (C) 2002-2005 Roberto Raggi <roberto@kdevelop.org>
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of Qt for Python.
-**
-** $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 CODEMODEL_H
-#define CODEMODEL_H
-
-#include "codemodel_fwd.h"
-#include "codemodel_enums.h"
-#include "enumvalue.h"
-
-#include <QtCore/QHash>
-#include <QtCore/QPair>
-#include <QtCore/QSet>
-#include <QtCore/QString>
-#include <QtCore/QStringList>
-#include <QtCore/QVector>
-
-QT_FORWARD_DECLARE_CLASS(QDebug)
-
-#define DECLARE_MODEL_NODE(k) \
- enum { __node_kind = Kind_##k };
-
-class CodeModel
-{
-public:
- Q_DISABLE_COPY(CodeModel)
-
- enum AccessPolicy {
- Public,
- Protected,
- Private
- };
-
- enum FunctionType {
- Normal,
- Constructor,
- CopyConstructor,
- MoveConstructor,
- Destructor,
- Signal,
- Slot
- };
-
- enum ClassType {
- Class,
- Struct,
- Union
- };
-
-public:
- CodeModel();
- virtual ~CodeModel();
-
- FileList files() const { return m_files; }
- NamespaceModelItem globalNamespace() const;
-
- void addFile(const FileModelItem &item);
- FileModelItem findFile(const QString &name) const;
-
- CodeModelItem findItem(const QStringList &qualifiedName, const ScopeModelItem &scope) const;
-
-private:
- FileList m_files;
- NamespaceModelItem m_globalNamespace;
-};
-
-#ifndef QT_NO_DEBUG_STREAM
-QDebug operator<<(QDebug d, const CodeModel *m);
-#endif
-
-class TypeInfo
-{
- friend class TypeParser;
-public:
- using Indirections = QVector<Indirection>;
-
- TypeInfo() : flags(0), m_referenceType(NoReference) {}
-
- QStringList qualifiedName() const
- {
- return m_qualifiedName;
- }
-
- void setQualifiedName(const QStringList &qualified_name)
- {
- m_qualifiedName = qualified_name;
- }
-
- bool isVoid() const;
-
- bool isConstant() const
- {
- return m_constant;
- }
-
- void setConstant(bool is)
- {
- m_constant = is;
- }
-
- bool isVolatile() const
- {
- return m_volatile;
- }
-
- void setVolatile(bool is)
- {
- m_volatile = is;
- }
-
- ReferenceType referenceType() const { return m_referenceType; }
- void setReferenceType(ReferenceType r) { m_referenceType = r; }
-
- Indirections indirectionsV() const { return m_indirections; }
- void setIndirectionsV(const Indirections &i) { m_indirections = i; }
- void addIndirection(Indirection i) { m_indirections.append(i); }
-
- // "Legacy", rename?
- int indirections() const { return m_indirections.size(); }
-
- void setIndirections(int indirections)
- {
- m_indirections = Indirections(indirections, Indirection::Pointer);
- }
-
- bool isFunctionPointer() const
- {
- return m_functionPointer;
- }
- void setFunctionPointer(bool is)
- {
- m_functionPointer = is;
- }
-
- QStringList arrayElements() const
- {
- return m_arrayElements;
- }
- void setArrayElements(const QStringList &arrayElements)
- {
- m_arrayElements = arrayElements;
- }
-
- void addArrayElement(const QString &a) { m_arrayElements.append(a); }
-
- QVector<TypeInfo> arguments() const { return m_arguments; }
-
- void setArguments(const QVector<TypeInfo> &arguments);
-
- void addArgument(const TypeInfo &arg)
- {
- m_arguments.append(arg);
- }
-
- QVector<TypeInfo> instantiations() const { return m_instantiations; }
- void setInstantiations(const QVector<TypeInfo> &i) { m_instantiations = i; }
- void addInstantiation(const TypeInfo &i) { m_instantiations.append(i); }
- void clearInstantiations() { m_instantiations.clear(); }
-
- bool isStdType() const;
-
- QPair<int, int> parseTemplateArgumentList(const QString &l, int from = 0);
-
- bool operator==(const TypeInfo &other) const;
-
- bool operator!=(const TypeInfo &other) const
- {
- return !(*this == other);
- }
-
- // ### arrays and templates??
-
- QString toString() const;
-
- static TypeInfo combine(const TypeInfo &__lhs, const TypeInfo &__rhs);
- static TypeInfo resolveType(TypeInfo const &__type, const ScopeModelItem &__scope);
-
-#ifndef QT_NO_DEBUG_STREAM
- void formatDebug(QDebug &d) const;
-#endif
-
- static QString indirectionKeyword(Indirection i);
-
- static bool stripLeadingConst(QString *s);
- static bool stripLeadingVolatile(QString *s);
- static bool stripLeadingQualifier(const QString &qualifier, QString *s);
- static void stripQualifiers(QString *s);
-
- void simplifyStdType();
-
-private:
- friend class TypeInfoTemplateArgumentHandler;
-
- static TypeInfo resolveType(CodeModelItem item, TypeInfo const &__type, const ScopeModelItem &__scope);
-
- QStringList m_qualifiedName;
- QStringList m_arrayElements;
- QVector<TypeInfo> m_arguments;
- QVector<TypeInfo> m_instantiations;
- Indirections m_indirections;
-
- union {
- uint flags;
-
- struct {
- uint m_constant: 1;
- uint m_volatile: 1;
- uint m_functionPointer: 1;
- uint m_padding: 29;
- };
- };
-
- ReferenceType m_referenceType;
-};
-
-#ifndef QT_NO_DEBUG_STREAM
-QDebug operator<<(QDebug d, const TypeInfo &t);
-#endif
-
-class _CodeModelItem
-{
- Q_DISABLE_COPY(_CodeModelItem)
-public:
- enum Kind {
- /* These are bit-flags resembling inheritance */
- Kind_Scope = 0x1,
- Kind_Namespace = 0x2 | Kind_Scope,
- Kind_Member = 0x4,
- Kind_Function = 0x8 | Kind_Member,
- KindMask = 0xf,
-
- /* These are for classes that are not inherited from */
- FirstKind = 0x8,
- Kind_Argument = 1 << FirstKind,
- Kind_Class = 2 << FirstKind | Kind_Scope,
- Kind_Enum = 3 << FirstKind,
- Kind_Enumerator = 4 << FirstKind,
- Kind_File = 5 << FirstKind | Kind_Namespace,
- Kind_TemplateParameter = 7 << FirstKind,
- Kind_TypeDef = 8 << FirstKind,
- Kind_Variable = 9 << FirstKind | Kind_Member
- };
-
-public:
- virtual ~_CodeModelItem();
-
- int kind() const;
-
- QStringList qualifiedName() const;
-
- QString name() const;
- void setName(const QString &name);
-
- QStringList scope() const;
- void setScope(const QStringList &scope);
-
- QString fileName() const;
- void setFileName(const QString &fileName);
-
- FileModelItem file() const;
-
- void getStartPosition(int *line, int *column);
- void setStartPosition(int line, int column);
-
- void getEndPosition(int *line, int *column);
- void setEndPosition(int line, int column);
-
- inline CodeModel *model() const { return m_model; }
-
-#ifndef QT_NO_DEBUG_STREAM
- static void formatKind(QDebug &d, int k);
- virtual void formatDebug(QDebug &d) const;
-#endif
-
-protected:
- explicit _CodeModelItem(CodeModel *model, int kind);
- explicit _CodeModelItem(CodeModel *model, const QString &name, int kind);
-
-private:
- CodeModel *m_model;
- int m_kind;
- int m_startLine;
- int m_startColumn;
- int m_endLine;
- int m_endColumn;
- QString m_name;
- QString m_fileName;
- QStringList m_scope;
-};
-
-#ifndef QT_NO_DEBUG_STREAM
-QDebug operator<<(QDebug d, const _CodeModelItem *t);
-#endif
-
-class _ScopeModelItem: public _CodeModelItem
-{
-public:
- DECLARE_MODEL_NODE(Scope)
-
- ~_ScopeModelItem();
-
- ClassList classes() const { return m_classes; }
- EnumList enums() const { return m_enums; }
- inline FunctionList functions() const { return m_functions; }
- TypeDefList typeDefs() const { return m_typeDefs; }
- VariableList variables() const { return m_variables; }
-
- void addClass(const ClassModelItem &item);
- void addEnum(const EnumModelItem &item);
- void addFunction(const FunctionModelItem &item);
- void addTypeDef(const TypeDefModelItem &item);
- void addVariable(const VariableModelItem &item);
-
- ClassModelItem findClass(const QString &name) const;
- EnumModelItem findEnum(const QString &name) const;
- FunctionList findFunctions(const QString &name) const;
- TypeDefModelItem findTypeDef(const QString &name) const;
- VariableModelItem findVariable(const QString &name) const;
-
- void addEnumsDeclaration(const QString &enumsDeclaration);
- QStringList enumsDeclarations() const { return m_enumsDeclarations; }
-
- FunctionModelItem declaredFunction(const FunctionModelItem &item);
-
-#ifndef QT_NO_DEBUG_STREAM
- void formatDebug(QDebug &d) const override;
-#endif
-
-protected:
- explicit _ScopeModelItem(CodeModel *model, int kind = __node_kind)
- : _CodeModelItem(model, kind) {}
- explicit _ScopeModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _CodeModelItem(model, name, kind) {}
-
- void appendScope(const _ScopeModelItem &other);
-
-#ifndef QT_NO_DEBUG_STREAM
- void formatScopeItemsDebug(QDebug &d) const;
-#endif
-
-private:
- ClassList m_classes;
- EnumList m_enums;
- TypeDefList m_typeDefs;
- VariableList m_variables;
- FunctionList m_functions;
-
-private:
- QStringList m_enumsDeclarations;
-};
-
-class _ClassModelItem: public _ScopeModelItem
-{
-public:
- DECLARE_MODEL_NODE(Class)
-
- struct BaseClass
- {
- QString name;
- CodeModel::AccessPolicy accessPolicy = CodeModel::Public;
- };
-
- explicit _ClassModelItem(CodeModel *model, int kind = __node_kind)
- : _ScopeModelItem(model, kind), m_classType(CodeModel::Class) {}
- explicit _ClassModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _ScopeModelItem(model, name, kind), m_classType(CodeModel::Class) {}
- ~_ClassModelItem();
-
- QVector<BaseClass> baseClasses() const { return m_baseClasses; }
-
- void addBaseClass(const QString &name, CodeModel::AccessPolicy accessPolicy);
-
- TemplateParameterList templateParameters() const;
- void setTemplateParameters(const TemplateParameterList &templateParameters);
-
- bool extendsClass(const QString &name) const;
-
- void setClassType(CodeModel::ClassType type);
- CodeModel::ClassType classType() const;
-
- void addPropertyDeclaration(const QString &propertyDeclaration);
- QStringList propertyDeclarations() const { return m_propertyDeclarations; }
-
- bool isFinal() const { return m_final; }
- void setFinal(bool f) { m_final = f; }
-
-#ifndef QT_NO_DEBUG_STREAM
- void formatDebug(QDebug &d) const override;
-#endif
-
-private:
- QVector<BaseClass> m_baseClasses;
- TemplateParameterList m_templateParameters;
- CodeModel::ClassType m_classType;
-
- QStringList m_propertyDeclarations;
- bool m_final = false;
-};
-
-class _NamespaceModelItem: public _ScopeModelItem
-{
-public:
- DECLARE_MODEL_NODE(Namespace)
-
- explicit _NamespaceModelItem(CodeModel *model, int kind = __node_kind)
- : _ScopeModelItem(model, kind) {}
- explicit _NamespaceModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _ScopeModelItem(model, name, kind) {}
- ~_NamespaceModelItem();
-
- const NamespaceList &namespaces() const { return m_namespaces; }
-
- void addNamespace(NamespaceModelItem item);
-
- NamespaceModelItem findNamespace(const QString &name) const;
-
- void appendNamespace(const _NamespaceModelItem &other);
-
-#ifndef QT_NO_DEBUG_STREAM
- void formatDebug(QDebug &d) const override;
-#endif
-
-private:
- NamespaceList m_namespaces;
-};
-
-class _FileModelItem: public _NamespaceModelItem
-{
-public:
- DECLARE_MODEL_NODE(File)
-
- explicit _FileModelItem(CodeModel *model, int kind = __node_kind)
- : _NamespaceModelItem(model, kind) {}
- explicit _FileModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _NamespaceModelItem(model, name, kind) {}
- ~_FileModelItem();
-};
-
-class _ArgumentModelItem: public _CodeModelItem
-{
-public:
- DECLARE_MODEL_NODE(Argument)
-
- explicit _ArgumentModelItem(CodeModel *model, int kind = __node_kind)
- : _CodeModelItem(model, kind), m_defaultValue(false) {}
- explicit _ArgumentModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _CodeModelItem(model, name, kind), m_defaultValue(false) {}
- ~_ArgumentModelItem();
-
- TypeInfo type() const;
- void setType(const TypeInfo &type);
-
- bool defaultValue() const;
- void setDefaultValue(bool defaultValue);
-
- QString defaultValueExpression() const { return m_defaultValueExpression; }
- void setDefaultValueExpression(const QString &expr) { m_defaultValueExpression = expr; }
-
-#ifndef QT_NO_DEBUG_STREAM
- void formatDebug(QDebug &d) const override;
-#endif
-
-private:
- TypeInfo m_type;
- QString m_defaultValueExpression;
- bool m_defaultValue;
-};
-
-class _MemberModelItem: public _CodeModelItem
-{
-public:
- DECLARE_MODEL_NODE(Member)
-
- explicit _MemberModelItem(CodeModel *model, int kind = __node_kind)
- : _CodeModelItem(model, kind), m_accessPolicy(CodeModel::Public), m_flags(0) {}
- explicit _MemberModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _CodeModelItem(model, name, kind), m_accessPolicy(CodeModel::Public), m_flags(0) {}
- ~_MemberModelItem();
-
- bool isConstant() const;
- void setConstant(bool isConstant);
-
- bool isVolatile() const;
- void setVolatile(bool isVolatile);
-
- bool isStatic() const;
- void setStatic(bool isStatic);
-
- bool isAuto() const;
- void setAuto(bool isAuto);
-
- bool isFriend() const;
- void setFriend(bool isFriend);
-
- bool isRegister() const;
- void setRegister(bool isRegister);
-
- bool isExtern() const;
- void setExtern(bool isExtern);
-
- bool isMutable() const;
- void setMutable(bool isMutable);
-
- CodeModel::AccessPolicy accessPolicy() const;
- void setAccessPolicy(CodeModel::AccessPolicy accessPolicy);
-
- TemplateParameterList templateParameters() const { return m_templateParameters; }
- void setTemplateParameters(const TemplateParameterList &templateParameters) { m_templateParameters = templateParameters; }
-
- TypeInfo type() const;
- void setType(const TypeInfo &type);
-
-#ifndef QT_NO_DEBUG_STREAM
- void formatDebug(QDebug &d) const override;
-#endif
-
-private:
- TemplateParameterList m_templateParameters;
- TypeInfo m_type;
- CodeModel::AccessPolicy m_accessPolicy;
- union {
- struct {
- uint m_isConstant: 1;
- uint m_isVolatile: 1;
- uint m_isStatic: 1;
- uint m_isAuto: 1;
- uint m_isFriend: 1;
- uint m_isRegister: 1;
- uint m_isExtern: 1;
- uint m_isMutable: 1;
- };
- uint m_flags;
- };
-
-};
-
-class _FunctionModelItem: public _MemberModelItem
-{
-public:
- DECLARE_MODEL_NODE(Function)
-
- explicit _FunctionModelItem(CodeModel *model, int kind = __node_kind)
- : _MemberModelItem(model, kind), m_functionType(CodeModel::Normal), m_flags(0) {}
- explicit _FunctionModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _MemberModelItem(model, name, kind), m_functionType(CodeModel::Normal), m_flags(0) {}
- ~_FunctionModelItem();
-
- ArgumentList arguments() const;
-
- void addArgument(const ArgumentModelItem& item);
-
- CodeModel::FunctionType functionType() const;
- void setFunctionType(CodeModel::FunctionType functionType);
-
- bool isDeleted() const;
- void setDeleted(bool d);
-
- bool isDeprecated() const;
- void setDeprecated(bool d);
-
- bool isVirtual() const;
- void setVirtual(bool isVirtual);
-
- bool isOverride() const;
- void setOverride(bool o);
-
- bool isFinal() const;
- void setFinal(bool f);
-
- bool isInline() const;
- void setInline(bool isInline);
-
- bool isExplicit() const;
- void setExplicit(bool isExplicit);
-
- bool isInvokable() const; // Qt
- void setInvokable(bool isInvokable); // Qt
-
- bool isAbstract() const;
- void setAbstract(bool isAbstract);
-
- bool isVariadics() const;
- void setVariadics(bool isVariadics);
-
-
- bool isSimilar(const FunctionModelItem &other) const;
-
- bool isNoExcept() const;
-
- ExceptionSpecification exceptionSpecification() const;
- void setExceptionSpecification(ExceptionSpecification e);
-
-#ifndef QT_NO_DEBUG_STREAM
- void formatDebug(QDebug &d) const override;
-#endif
-
-private:
- ArgumentList m_arguments;
- CodeModel::FunctionType m_functionType;
- union {
- struct {
- uint m_isDeleted: 1;
- uint m_isVirtual: 1;
- uint m_isOverride: 1;
- uint m_isFinal: 1;
- uint m_isDeprecated: 1;
- uint m_isInline: 1;
- uint m_isAbstract: 1;
- uint m_isExplicit: 1;
- uint m_isVariadics: 1;
- uint m_isInvokable : 1; // Qt
- };
- uint m_flags;
- };
- ExceptionSpecification m_exceptionSpecification = ExceptionSpecification::Unknown;
-};
-
-class _VariableModelItem: public _MemberModelItem
-{
-public:
- DECLARE_MODEL_NODE(Variable)
-
- explicit _VariableModelItem(CodeModel *model, int kind = __node_kind)
- : _MemberModelItem(model, kind) {}
- explicit _VariableModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _MemberModelItem(model, name, kind) {}
-};
-
-class _TypeDefModelItem: public _CodeModelItem
-{
-public:
- DECLARE_MODEL_NODE(TypeDef)
-
- explicit _TypeDefModelItem(CodeModel *model, int kind = __node_kind)
- : _CodeModelItem(model, kind) {}
- explicit _TypeDefModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _CodeModelItem(model, name, kind) {}
-
- TypeInfo type() const;
- void setType(const TypeInfo &type);
-
-#ifndef QT_NO_DEBUG_STREAM
- void formatDebug(QDebug &d) const override;
-#endif
-
-private:
- TypeInfo m_type;
-};
-
-class _EnumModelItem: public _CodeModelItem
-{
-public:
- DECLARE_MODEL_NODE(Enum)
-
- explicit _EnumModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _CodeModelItem(model, name, kind) {}
- explicit _EnumModelItem(CodeModel *model, int kind = __node_kind)
- : _CodeModelItem(model, kind) {}
- ~_EnumModelItem();
-
- CodeModel::AccessPolicy accessPolicy() const;
- void setAccessPolicy(CodeModel::AccessPolicy accessPolicy);
-
- bool hasValues() const { return !m_enumerators.isEmpty(); }
- EnumeratorList enumerators() const;
- void addEnumerator(const EnumeratorModelItem &item);
-
- EnumKind enumKind() const { return m_enumKind; }
- void setEnumKind(EnumKind kind) { m_enumKind = kind; }
-
-#ifndef QT_NO_DEBUG_STREAM
- void formatDebug(QDebug &d) const override;
-#endif
-
- bool isSigned() const;
- void setSigned(bool s);
-
-private:
- CodeModel::AccessPolicy m_accessPolicy = CodeModel::Public;
- EnumeratorList m_enumerators;
- EnumKind m_enumKind = CEnum;
- bool m_signed = true;
-};
-
-class _EnumeratorModelItem: public _CodeModelItem
-{
-public:
- DECLARE_MODEL_NODE(Enumerator)
-
- explicit _EnumeratorModelItem(CodeModel *model, int kind = __node_kind)
- : _CodeModelItem(model, kind) {}
- explicit _EnumeratorModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _CodeModelItem(model, name, kind) {}
- ~_EnumeratorModelItem();
-
- QString stringValue() const;
- void setStringValue(const QString &stringValue);
-
- EnumValue value() const { return m_value; }
- void setValue(EnumValue v) { m_value = v; }
-
-#ifndef QT_NO_DEBUG_STREAM
- void formatDebug(QDebug &d) const override;
-#endif
-
-private:
- QString m_stringValue;
- EnumValue m_value;
-};
-
-class _TemplateParameterModelItem: public _CodeModelItem
-{
-public:
- DECLARE_MODEL_NODE(TemplateParameter)
-
- explicit _TemplateParameterModelItem(CodeModel *model, int kind = __node_kind)
- : _CodeModelItem(model, kind), m_defaultValue(false) {}
- explicit _TemplateParameterModelItem(CodeModel *model, const QString &name, int kind = __node_kind)
- : _CodeModelItem(model, name, kind), m_defaultValue(false) {}
- ~_TemplateParameterModelItem();
-
- TypeInfo type() const;
- void setType(const TypeInfo &type);
-
- bool defaultValue() const;
- void setDefaultValue(bool defaultValue);
-
-#ifndef QT_NO_DEBUG_STREAM
- void formatDebug(QDebug &d) const override;
-#endif
-
-private:
- TypeInfo m_type;
- bool m_defaultValue;
-};
-
-#endif // CODEMODEL_H
-
-// kate: space-indent on; indent-width 2; replace-tabs on;