1
/****************************************************************************
3
** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
4
** All rights reserved.
5
** Contact: Nokia Corporation (qt-info@nokia.com)
7
** This file is part of the QtScript module of the Qt Toolkit.
9
** $QT_BEGIN_LICENSE:LGPL$
10
** No Commercial Usage
11
** This file contains pre-release code and may not be distributed.
12
** You may use this file in accordance with the terms and conditions
13
** contained in the Technology Preview License Agreement accompanying
16
** GNU Lesser General Public License Usage
17
** Alternatively, this file may be used under the terms of the GNU Lesser
18
** General Public License version 2.1 as published by the Free Software
19
** Foundation and appearing in the file LICENSE.LGPL included in the
20
** packaging of this file. Please review the following information to
21
** ensure the GNU Lesser General Public License version 2.1 requirements
22
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24
** In addition, as a special exception, Nokia gives you certain additional
25
** rights. These rights are described in the Nokia Qt LGPL Exception
26
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28
** If you have questions regarding the use of this file, please contact
29
** Nokia at qt-info@nokia.com.
40
****************************************************************************/
42
// This file was generated by qlalr - DO NOT EDIT!
48
// This file is not part of the Qt API. It exists purely as an
49
// implementation detail. This header file may change from version to
50
// version without notice, or even be removed.
56
// This file is automatically generated from qscript.g.
57
// Changes will be lost.
60
#ifndef QSCRIPTPARSER_P_H
61
#define QSCRIPTPARSER_P_H
63
#include "qscriptgrammar_p.h"
65
#include "qscriptastfwd_p.h"
70
class QScriptEnginePrivate;
71
class QScriptNameIdImpl;
73
class QScriptParser: protected QScriptGrammar
79
QScriptNameIdImpl *sval;
80
QScript::AST::ArgumentList *ArgumentList;
81
QScript::AST::CaseBlock *CaseBlock;
82
QScript::AST::CaseClause *CaseClause;
83
QScript::AST::CaseClauses *CaseClauses;
84
QScript::AST::Catch *Catch;
85
QScript::AST::DefaultClause *DefaultClause;
86
QScript::AST::ElementList *ElementList;
87
QScript::AST::Elision *Elision;
88
QScript::AST::ExpressionNode *Expression;
89
QScript::AST::Finally *Finally;
90
QScript::AST::FormalParameterList *FormalParameterList;
91
QScript::AST::FunctionBody *FunctionBody;
92
QScript::AST::FunctionDeclaration *FunctionDeclaration;
93
QScript::AST::Node *Node;
94
QScript::AST::PropertyName *PropertyName;
95
QScript::AST::PropertyNameAndValueList *PropertyNameAndValueList;
96
QScript::AST::SourceElement *SourceElement;
97
QScript::AST::SourceElements *SourceElements;
98
QScript::AST::Statement *Statement;
99
QScript::AST::StatementList *StatementList;
100
QScript::AST::VariableDeclaration *VariableDeclaration;
101
QScript::AST::VariableDeclarationList *VariableDeclarationList;
115
bool parse(QScriptEnginePrivate *driver);
117
inline QString errorMessage() const
118
{ return error_message; }
119
inline int errorLineNumber() const
120
{ return error_lineno; }
121
inline int errorColumnNumber() const
122
{ return error_column; }
125
inline void reallocateStack();
127
inline Value &sym(int index)
128
{ return sym_stack [tos + index - 1]; }
130
inline Location &loc(int index)
131
{ return location_stack [tos + index - 2]; }
138
Location *location_stack;
139
QString error_message;
144
inline void QScriptParser::reallocateStack()
151
sym_stack = reinterpret_cast<Value*> (qRealloc(sym_stack, stack_size * sizeof(Value)));
152
state_stack = reinterpret_cast<int*> (qRealloc(state_stack, stack_size * sizeof(int)));
153
location_stack = reinterpret_cast<Location*> (qRealloc(location_stack, stack_size * sizeof(Location)));
157
#define Q_SCRIPT_REGEXPLITERAL_RULE1 7
159
#define Q_SCRIPT_REGEXPLITERAL_RULE2 8
163
#endif // QSCRIPTPARSER_P_H