⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qscriptparser_p.h

📁 奇趣公司比较新的qt/emd版本
💻 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.******************************************************************************/////  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.//#ifndef QSCRIPTPARSER_P_H#define QSCRIPTPARSER_P_H#include "qscriptgrammar_p.h"#ifndef QT_NO_SCRIPT#include "qscriptastfwd_p.h"class QString;class QScriptEnginePrivate;class QScriptNameIdImpl;class QScriptParser: protected QScriptGrammar{public:    union Value {      int ival;      double dval;      QScriptNameIdImpl *sval;      QScript::AST::ArgumentList *ArgumentList;      QScript::AST::CaseBlock *CaseBlock;      QScript::AST::CaseClause *CaseClause;      QScript::AST::CaseClauses *CaseClauses;      QScript::AST::Catch *Catch;      QScript::AST::DefaultClause *DefaultClause;      QScript::AST::ElementList *ElementList;      QScript::AST::Elision *Elision;      QScript::AST::ExpressionNode *Expression;      QScript::AST::Finally *Finally;      QScript::AST::FormalParameterList *FormalParameterList;      QScript::AST::FunctionBody *FunctionBody;      QScript::AST::FunctionDeclaration *FunctionDeclaration;      QScript::AST::Node *Node;      QScript::AST::PropertyName *PropertyName;      QScript::AST::PropertyNameAndValueList *PropertyNameAndValueList;      QScript::AST::SourceElement *SourceElement;      QScript::AST::SourceElements *SourceElements;      QScript::AST::Statement *Statement;      QScript::AST::StatementList *StatementList;      QScript::AST::VariableDeclaration *VariableDeclaration;      QScript::AST::VariableDeclarationList *VariableDeclarationList;    };    struct Location {      int startLine;      int startColumn;      int endLine;      int endColumn;    };public:    QScriptParser();    ~QScriptParser();    bool parse(QScriptEnginePrivate *driver);    inline QString errorMessage() const    { return error_message; }    inline int errorLineNumber() const    { return error_lineno; }    inline int errorColumnNumber() const    { return error_column; }protected:    inline void reallocateStack();    inline Value &sym(int index)    { return sym_stack [tos + index - 1]; }    inline Location &loc(int index)    { return location_stack [tos + index - 2]; }protected:    int tos;    int stack_size;    Value *sym_stack;    int *state_stack;    Location *location_stack;    QString error_message;    int error_lineno;    int error_column;};inline void QScriptParser::reallocateStack(){    if (! stack_size)        stack_size = 128;    else        stack_size <<= 1;    sym_stack = reinterpret_cast<Value*> (qRealloc(sym_stack, stack_size * sizeof(Value)));    state_stack = reinterpret_cast<int*> (qRealloc(state_stack, stack_size * sizeof(int)));    location_stack = reinterpret_cast<Location*> (qRealloc(location_stack, stack_size * sizeof(Location)));}#endif // QT_NO_SCRIPT#endif // QSCRIPTPARSER_P_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -