diff options
Diffstat (limited to 'sources/shiboken2/ApiExtractor/parser/control.h')
-rw-r--r-- | sources/shiboken2/ApiExtractor/parser/control.h | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/sources/shiboken2/ApiExtractor/parser/control.h b/sources/shiboken2/ApiExtractor/parser/control.h deleted file mode 100644 index 92635299e..000000000 --- a/sources/shiboken2/ApiExtractor/parser/control.h +++ /dev/null @@ -1,165 +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 PySide2. -** -** $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 CONTROL_H -#define CONTROL_H - -#include "symbol.h" -#include "smallobject.h" - -#include <QtCore/QHash> - -struct Declarator; -struct Type; -class Lexer; -class Parser; - -struct Context { - Context *parent; - - inline void bind(const NameSymbol *name, Type *type) { - symbol_table.insert(name, type); - } - - inline Type *resolve(const NameSymbol *name) const { - if (Type *type = symbol_table.value(name)) - return type; - else if (parent) - return parent->resolve(name); - - return 0; - } - - typedef QHash<const NameSymbol*, Type*> symbol_table_t; - - symbol_table_t symbol_table; -}; - -class Control -{ -public: - class ErrorMessage - { - public: - ErrorMessage(): - _M_line(0), - _M_column(0) {} - - inline int line() const { - return _M_line; - } - inline void setLine(int line) { - _M_line = line; - } - - inline int column() const { - return _M_column; - } - inline void setColumn(int column) { - _M_column = column; - } - - inline QString fileName() const { - return _M_fileName; - } - inline void setFileName(const QString &fileName) { - _M_fileName = fileName; - } - - inline QString message() const { - return _M_message; - } - inline void setMessage(const QString &message) { - _M_message = message; - } - - private: - int _M_line; - int _M_column; - QString _M_fileName; - QString _M_message; - }; - - Control(); - ~Control(); - - inline bool skipFunctionBody() const { - return _M_skipFunctionBody; - } - inline void setSkipFunctionBody(bool skip) { - _M_skipFunctionBody = skip; - } - - Lexer *changeLexer(Lexer *lexer); - Parser *changeParser(Parser *parser); - - Lexer *currentLexer() const { - return _M_lexer; - } - Parser *currentParser() const { - return _M_parser; - } - - Context *current_context; - - inline Context *currentContext() const { - return current_context; - } - - void pushContext(); - void popContext(); - - Type *lookupType(const NameSymbol *name) const; - void declare(const NameSymbol *name, Type *type); - - inline const NameSymbol *findOrInsertName(const char *data, size_t count) { - return name_table.findOrInsert(data, count); - } - - void declareTypedef(const NameSymbol *name, Declarator *d); - bool isTypedef(const NameSymbol *name) const; - - void reportError(const ErrorMessage &errmsg); - QList<ErrorMessage> errorMessages() const; - void clearErrorMessages(); - -private: - NameTable name_table; - QHash<const NameSymbol*, Declarator*> stl_typedef_table; - bool _M_skipFunctionBody; - Lexer *_M_lexer; - Parser *_M_parser; - - QList<ErrorMessage> _M_error_messages; -}; - -#endif // CONTROL_H - -// kate: space-indent on; indent-width 2; replace-tabs on; |