diff options
author | dt <qtc-commiter@nokia.com> | 2008-12-08 12:47:15 +0100 |
---|---|---|
committer | dt <qtc-commiter@nokia.com> | 2008-12-08 12:47:15 +0100 |
commit | 942363913cd907097703ecbbe4a9da98df9613d9 (patch) | |
tree | 04f2068b7588f0d084a938ea0e04da6e18ada5c2 /src/libs/cplusplus/pp-environment.h | |
parent | 83d5461c7f083277ee5948b6b4bbbd93b63415dc (diff) | |
parent | f6fbb274ae715c05fcdee61cba5395b4fd4814b9 (diff) | |
download | qt-creator-942363913cd907097703ecbbe4a9da98df9613d9.tar.gz |
Merge branch '0.9.1-beta' of git@scm.dev.nokia.troll.no:creator/mainline into 0.9.1-beta
Conflicts:
src/plugins/qt4projectmanager/qtversionmanager.cpp
Diffstat (limited to 'src/libs/cplusplus/pp-environment.h')
-rw-r--r-- | src/libs/cplusplus/pp-environment.h | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/src/libs/cplusplus/pp-environment.h b/src/libs/cplusplus/pp-environment.h new file mode 100644 index 0000000000..e3d130871b --- /dev/null +++ b/src/libs/cplusplus/pp-environment.h @@ -0,0 +1,109 @@ +/*************************************************************************** +** +** This file is part of Qt Creator +** +** Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +** +** Contact: Qt Software Information (qt-info@nokia.com) +** +** +** Non-Open Source Usage +** +** Licensees may use this file in accordance with the Qt Beta Version +** License Agreement, Agreement version 2.2 provided with the Software or, +** alternatively, in accordance with the terms contained in a written +** agreement between you and Nokia. +** +** GNU General Public License Usage +** +** Alternatively, this file may be used under the terms of the GNU General +** Public License versions 2.0 or 3.0 as published by the Free Software +** Foundation and appearing in the file LICENSE.GPL included in the packaging +** of this file. Please review the following information to ensure GNU +** General Public Licensing requirements will be met: +** +** http://www.fsf.org/licensing/licenses/info/GPLv2.html and +** http://www.gnu.org/copyleft/gpl.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt GPL Exception +** version 1.2, included in the file GPL_EXCEPTION.txt in this package. +** +***************************************************************************/ +/* + Copyright 2005 Roberto Raggi <roberto@kdevelop.org> + + Permission to use, copy, modify, distribute, and sell this software and its + documentation for any purpose is hereby granted without fee, provided that + the above copyright notice appear in all copies and that both that + copyright notice and this permission notice appear in supporting + documentation. + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + KDEVELOP TEAM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#ifndef PP_ENVIRONMENT_H +#define PP_ENVIRONMENT_H + +#include <QVector> +#include <QByteArray> + +namespace CPlusPlus { + +struct Macro; + +class Environment +{ +public: + Environment(); + ~Environment(); + + unsigned macroCount() const; + Macro *macroAt(unsigned index) const; + + Macro *bind(const Macro ¯o); + void remove(const QByteArray &name); + + Macro *resolve(const QByteArray &name) const; + bool isBuiltinMacro(const QByteArray &name) const; + + const Macro *const *firstMacro() const + { return _macros; } + + Macro **firstMacro() + { return _macros; } + + const Macro *const *lastMacro() const + { return _macros + _macro_count + 1; } + + Macro **lastMacro() + { return _macros + _macro_count + 1; } + +private: + static unsigned hash_code (const QByteArray &s); + void rehash(); + +public: + QByteArray current_file; + unsigned currentLine; + bool hide_next; + +private: + Macro **_macros; + int _allocated_macros; + int _macro_count; + Macro **_hash; + int _hash_count; +}; + +} // namespace CPlusPlus + +#endif // PP_ENVIRONMENT_H |