📄 qscriptcontextfwd_p.h
字号:
/******************************************************************************** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved.**** This file is part of the QtScript module of the Qt Toolkit.**** This file may be used under the terms of the GNU General Public** License version 2.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://trolltech.com/products/qt/licenses/licensing/opensource/**** If you are unsure which license is appropriate for your use, please** review the following information:** http://trolltech.com/products/qt/licenses/licensing/licensingoverview** or contact the sales department at sales@trolltech.com.**** In addition, as a special exception, Trolltech gives you certain** additional rights. These rights are described in the Trolltech GPL** Exception version 1.0, which can be found at** http://www.trolltech.com/products/qt/gplexception/ and in the file** GPL_EXCEPTION.txt in this package.**** In addition, as a special exception, Trolltech, as the sole copyright** holder for Qt Designer, grants users of the Qt/Eclipse Integration** plug-in the right for the Qt/Eclipse Integration to link to** functionality provided by Qt Designer and its related libraries.**** Trolltech reserves all rights not expressly granted herein.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.******************************************************************************/#ifndef QSCRIPTCONTEXTFWD_P_H#define QSCRIPTCONTEXTFWD_P_H//// W A R N I N G// -------------//// This file is not part of the Qt API. It exists purely as an// implementation detail. This header file may change from version to// version without notice, or even be removed.//// We mean it.//#include "qscriptvalueimplfwd_p.h"#ifndef QT_NO_SCRIPT#include "qscriptcontext.h"#include <QtCore/qobjectdefs.h>namespace QScript { namespace AST { class Node; }class Code;}class QScriptInstruction;class QScriptContextPrivate{ Q_DECLARE_PUBLIC(QScriptContext)public: inline QScriptContextPrivate(); static inline QScriptContextPrivate *get(QScriptContext *q); static inline const QScriptContextPrivate *get(const QScriptContext *q); static inline QScriptContext *create(); inline QScriptEngine *engine() const; inline QScriptEnginePrivate *enginePrivate() const; inline QScriptContext *parentContext() const; inline void init(QScriptContext *parent); inline QScriptValueImpl argument(int index) const; inline int argumentCount() const; inline void throwException(); inline bool hasUncaughtException() const; inline void recover(); QStringList backtrace() const; inline bool isNumerical(const QScriptValueImpl &v) const; inline bool eq_cmp(const QScriptValueImpl &lhs, const QScriptValueImpl &rhs); bool eq_cmp_helper(QScriptValueImpl lhs, QScriptValueImpl rhs);#if defined(Q_CC_GNU) && __GNUC__ <= 3 bool lt_cmp(QScriptValueImpl lhs, QScriptValueImpl rhs);#else bool lt_cmp(const QScriptValueImpl &lhs, const QScriptValueImpl &rhs) { if (lhs.type() == rhs.type()) { switch (lhs.type()) { case QScript::UndefinedType: case QScript::NullType: return false; case QScript::NumberType: return lhs.m_number_value < rhs.m_number_value; case QScript::IntegerType: return lhs.m_int_value < rhs.m_int_value; case QScript::BooleanType: return lhs.m_bool_value < rhs.m_bool_value; default: break; } // switch } return lt_cmp_helper(lhs, rhs); } bool lt_cmp_helper(QScriptValueImpl lhs, QScriptValueImpl rhs);#endif bool le_cmp(const QScriptValueImpl &lhs, const QScriptValueImpl &rhs) { if (lhs.type() == rhs.type()) { switch (lhs.type()) { case QScript::UndefinedType: case QScript::NullType: return true; case QScript::NumberType: return lhs.m_number_value <= rhs.m_number_value; case QScript::IntegerType: return lhs.m_int_value <= rhs.m_int_value; case QScript::BooleanType: return lhs.m_bool_value <= rhs.m_bool_value; default: break; } // switch } return le_cmp_helper(lhs, rhs); } bool le_cmp_helper(QScriptValueImpl lhs, QScriptValueImpl rhs); static inline bool strict_eq_cmp(const QScriptValueImpl &lhs, const QScriptValueImpl &rhs); bool resolveField(QScriptEnginePrivate *eng, QScriptValueImpl *stackPtr, QScriptValueImpl *value); void execute(QScript::Code *code); QScriptValueImpl throwError(QScriptContext::Error error, const QString &text); QScriptValueImpl throwError(const QString &text); QString fileName() const; QString functionName() const; void setDebugInformation(QScriptValueImpl *error) const; QScriptValueImpl throwNotImplemented(const QString &name); QScriptValueImpl throwNotDefined(const QString &name); QScriptValueImpl throwNotDefined(QScriptNameIdImpl *nameId); inline QScriptValueImpl throwTypeError(const QString &text); inline QScriptValueImpl throwSyntaxError(const QString &text); inline QScriptValueImpl thisObject() const; inline void setThisObject(const QScriptValueImpl &object); inline QScriptValueImpl callee() const; inline bool isCalledAsConstructor() const; inline QScriptValueImpl returnValue() const; inline void setReturnValue(const QScriptValueImpl &value); inline QScriptValueImpl activationObject() const; inline void setActivationObject(const QScriptValueImpl &activation); inline const QScriptInstruction *instructionPointer(); inline void setInstructionPointer(const QScriptInstruction *instructionPointer); inline const QScriptValueImpl *baseStackPointer() const; inline const QScriptValueImpl *currentStackPointer() const; inline QScriptContext::ExecutionState state() const;public: QScriptContext *previous; int argc; QScriptContext::ExecutionState m_state; QScriptValueImpl m_activation; QScriptValueImpl m_thisObject; QScriptValueImpl m_result; QScriptValueImpl m_scopeChain; QScriptValueImpl m_callee; QScriptValueImpl m_arguments; QScriptValueImpl *args; QScriptValueImpl *tempStack; QScriptValueImpl *stackPtr; QScript::Code *m_code; const QScriptInstruction *iPtr; const QScriptInstruction *firstInstruction; const QScriptInstruction *lastInstruction; int currentLine; int currentColumn; int errorLineNumber; bool catching; bool m_calledAsConstructor; QScriptContext *q_ptr;};#endif // QT_NO_SCRIPT#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -