forked from qt-creator/qt-creator
QmlJS: Merge new parser from Qt 5.
Change-Id: I986df52b7ddb31e3bae1148eda881acc1829b102 Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
This commit is contained in:
@@ -15,7 +15,7 @@ perl -p -0777 -i -e 's/QT_BEGIN_NAMESPACE\n\nclass QmlError;\nclass QmlDirParser
|
|||||||
# export QmlJSGrammar
|
# export QmlJSGrammar
|
||||||
perl -p -0777 -i -e 's/#include <QtCore\/qglobal.h>\n\nQT_BEGIN_NAMESPACE\n\nclass QmlJSGrammar\n/#include "qmljsglobal_p.h"\n#include <QtCore\/qglobal.h>\n\nQT_BEGIN_NAMESPACE\n\nclass QML_PARSER_EXPORT QmlJSGrammar\n/' qmljsgrammar_p.h
|
perl -p -0777 -i -e 's/#include <QtCore\/qglobal.h>\n\nQT_BEGIN_NAMESPACE\n\nclass QmlJSGrammar\n/#include "qmljsglobal_p.h"\n#include <QtCore\/qglobal.h>\n\nQT_BEGIN_NAMESPACE\n\nclass QML_PARSER_EXPORT QmlJSGrammar\n/' qmljsgrammar_p.h
|
||||||
# replace qmlglobal_p.h include with needed declaration
|
# replace qmlglobal_p.h include with needed declaration
|
||||||
perl -p -0777 -i -e 's/#include \<qmlglobal_p.h\>/bool Qml_isFileCaseCorrect(const QString &) { return true; }/' qmldirparser.cpp
|
perl -p -0777 -i -e 's/#include \"qmlglobal_p.h\"/bool Qml_isFileCaseCorrect(const QString &) { return true; }/' qmldirparser.cpp
|
||||||
|
|
||||||
./changeLicense.py $me/../qmljs_global.h qml*.{cpp,h}
|
./changeLicense.py $me/../qmljs_global.h qml*.{cpp,h}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
INCLUDEPATH += $$PWD
|
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
$$PWD/qmljsast_p.h \
|
$$PWD/qmljsast_p.h \
|
||||||
$$PWD/qmljsastfwd_p.h \
|
$$PWD/qmljsastfwd_p.h \
|
||||||
|
|||||||
@@ -177,7 +177,7 @@ bool QmlDirParser::parse()
|
|||||||
QString::fromUtf8("internal types require 2 arguments, but %1 were provided").arg(sectionCount - 1));
|
QString::fromUtf8("internal types require 2 arguments, but %1 were provided").arg(sectionCount - 1));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
Component entry(sections[1].toUtf8(), sections[2], -1, -1);
|
Component entry(sections[1], sections[2], -1, -1);
|
||||||
entry.internal = true;
|
entry.internal = true;
|
||||||
_components.append(entry);
|
_components.append(entry);
|
||||||
} else if (sections[0] == QLatin1String("typeinfo")) {
|
} else if (sections[0] == QLatin1String("typeinfo")) {
|
||||||
@@ -193,7 +193,7 @@ bool QmlDirParser::parse()
|
|||||||
|
|
||||||
} else if (sectionCount == 2) {
|
} else if (sectionCount == 2) {
|
||||||
// No version specified (should only be used for relative qmldir files)
|
// No version specified (should only be used for relative qmldir files)
|
||||||
const Component entry(sections[0].toUtf8(), sections[1], -1, -1);
|
const Component entry(sections[0], sections[1], -1, -1);
|
||||||
_components.append(entry);
|
_components.append(entry);
|
||||||
} else if (sectionCount == 3) {
|
} else if (sectionCount == 3) {
|
||||||
const QString &version = sections[1];
|
const QString &version = sections[1];
|
||||||
@@ -211,7 +211,7 @@ bool QmlDirParser::parse()
|
|||||||
const int minorVersion = version.mid(dotIndex + 1).toInt(&validVersionNumber);
|
const int minorVersion = version.mid(dotIndex + 1).toInt(&validVersionNumber);
|
||||||
|
|
||||||
if (validVersionNumber) {
|
if (validVersionNumber) {
|
||||||
const Component entry(sections[0].toUtf8(), sections[2], majorVersion, minorVersion);
|
const Component entry(sections[0], sections[2], majorVersion, minorVersion);
|
||||||
|
|
||||||
_components.append(entry);
|
_components.append(entry);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -91,11 +91,11 @@ public:
|
|||||||
Component()
|
Component()
|
||||||
: majorVersion(0), minorVersion(0), internal(false) {}
|
: majorVersion(0), minorVersion(0), internal(false) {}
|
||||||
|
|
||||||
Component(const QByteArray &typeName, const QString &fileName, int majorVersion, int minorVersion)
|
Component(const QString &typeName, const QString &fileName, int majorVersion, int minorVersion)
|
||||||
: typeName(typeName), fileName(fileName), majorVersion(majorVersion), minorVersion(minorVersion),
|
: typeName(typeName), fileName(fileName), majorVersion(majorVersion), minorVersion(minorVersion),
|
||||||
internal(false) {}
|
internal(false) {}
|
||||||
|
|
||||||
QByteArray typeName;
|
QString typeName;
|
||||||
QString fileName;
|
QString fileName;
|
||||||
int majorVersion;
|
int majorVersion;
|
||||||
int minorVersion;
|
int minorVersion;
|
||||||
|
|||||||
@@ -246,9 +246,6 @@ public:
|
|||||||
AST::UiObjectMemberList *UiObjectMemberList;
|
AST::UiObjectMemberList *UiObjectMemberList;
|
||||||
AST::UiArrayMemberList *UiArrayMemberList;
|
AST::UiArrayMemberList *UiArrayMemberList;
|
||||||
AST::UiQualifiedId *UiQualifiedId;
|
AST::UiQualifiedId *UiQualifiedId;
|
||||||
AST::UiSignature *UiSignature;
|
|
||||||
AST::UiFormalList *UiFormalList;
|
|
||||||
AST::UiFormal *UiFormal;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@@ -781,7 +778,10 @@ case $rule_number: {
|
|||||||
UiScriptStatement: Block ;
|
UiScriptStatement: Block ;
|
||||||
UiScriptStatement: EmptyStatement ;
|
UiScriptStatement: EmptyStatement ;
|
||||||
UiScriptStatement: ExpressionStatement ;
|
UiScriptStatement: ExpressionStatement ;
|
||||||
UiScriptStatement: IfStatement ; --- ### do we really want if statement in a binding?
|
UiScriptStatement: IfStatement ;
|
||||||
|
UiScriptStatement: WithStatement ;
|
||||||
|
UiScriptStatement: SwitchStatement ;
|
||||||
|
UiScriptStatement: TryStatement ;
|
||||||
|
|
||||||
UiObjectMember: UiQualifiedId T_COLON UiScriptStatement ;
|
UiObjectMember: UiQualifiedId T_COLON UiScriptStatement ;
|
||||||
/.
|
/.
|
||||||
@@ -816,6 +816,7 @@ UiParameterList: UiPropertyType JsIdentifier ;
|
|||||||
/.
|
/.
|
||||||
case $rule_number: {
|
case $rule_number: {
|
||||||
AST::UiParameterList *node = new (pool) AST::UiParameterList(stringRef(1), stringRef(2));
|
AST::UiParameterList *node = new (pool) AST::UiParameterList(stringRef(1), stringRef(2));
|
||||||
|
node->propertyTypeToken = loc(1);
|
||||||
node->identifierToken = loc(2);
|
node->identifierToken = loc(2);
|
||||||
sym(1).Node = node;
|
sym(1).Node = node;
|
||||||
} break;
|
} break;
|
||||||
@@ -1100,6 +1101,7 @@ case $rule_number: {
|
|||||||
}
|
}
|
||||||
|
|
||||||
loc(1).length = lexer->tokenLength();
|
loc(1).length = lexer->tokenLength();
|
||||||
|
yylloc = loc(1); // adjust the location of the current token
|
||||||
|
|
||||||
AST::RegExpLiteral *node = new (pool) AST::RegExpLiteral(
|
AST::RegExpLiteral *node = new (pool) AST::RegExpLiteral(
|
||||||
driver->newStringRef(lexer->regExpPattern()), lexer->regExpFlags());
|
driver->newStringRef(lexer->regExpPattern()), lexer->regExpFlags());
|
||||||
@@ -1121,6 +1123,7 @@ case $rule_number: {
|
|||||||
}
|
}
|
||||||
|
|
||||||
loc(1).length = lexer->tokenLength();
|
loc(1).length = lexer->tokenLength();
|
||||||
|
yylloc = loc(1); // adjust the location of the current token
|
||||||
|
|
||||||
AST::RegExpLiteral *node = new (pool) AST::RegExpLiteral(
|
AST::RegExpLiteral *node = new (pool) AST::RegExpLiteral(
|
||||||
driver->newStringRef(lexer->regExpPattern()), lexer->regExpFlags());
|
driver->newStringRef(lexer->regExpPattern()), lexer->regExpFlags());
|
||||||
@@ -2810,6 +2813,8 @@ case $rule_number: {
|
|||||||
} break;
|
} break;
|
||||||
./
|
./
|
||||||
|
|
||||||
|
Program: Empty ;
|
||||||
|
|
||||||
Program: SourceElements ;
|
Program: SourceElements ;
|
||||||
/.
|
/.
|
||||||
case $rule_number: {
|
case $rule_number: {
|
||||||
|
|||||||
@@ -799,31 +799,6 @@ void UiProgram::accept0(Visitor *visitor)
|
|||||||
visitor->endVisit(this);
|
visitor->endVisit(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UiSignature::accept0(Visitor *visitor)
|
|
||||||
{
|
|
||||||
if (visitor->visit(this)) {
|
|
||||||
accept(formals, visitor);
|
|
||||||
}
|
|
||||||
visitor->endVisit(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
void UiFormalList::accept0(Visitor *visitor)
|
|
||||||
{
|
|
||||||
if (visitor->visit(this)) {
|
|
||||||
for (UiFormalList *it = this; it; it = it->next) {
|
|
||||||
accept(it->formal, visitor);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
visitor->endVisit(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
void UiFormal::accept0(Visitor *visitor)
|
|
||||||
{
|
|
||||||
if (visitor->visit(this)) {
|
|
||||||
}
|
|
||||||
visitor->endVisit(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
void UiPublicMember::accept0(Visitor *visitor)
|
void UiPublicMember::accept0(Visitor *visitor)
|
||||||
{
|
{
|
||||||
if (visitor->visit(this)) {
|
if (visitor->visit(this)) {
|
||||||
|
|||||||
@@ -207,10 +207,7 @@ public:
|
|||||||
Kind_UiPublicMember,
|
Kind_UiPublicMember,
|
||||||
Kind_UiQualifiedId,
|
Kind_UiQualifiedId,
|
||||||
Kind_UiScriptBinding,
|
Kind_UiScriptBinding,
|
||||||
Kind_UiSourceElement,
|
Kind_UiSourceElement
|
||||||
Kind_UiFormal,
|
|
||||||
Kind_UiFormalList,
|
|
||||||
Kind_UiSignature
|
|
||||||
};
|
};
|
||||||
|
|
||||||
inline Node()
|
inline Node()
|
||||||
@@ -233,6 +230,8 @@ public:
|
|||||||
{ return accept(node, visitor); } // ### remove
|
{ return accept(node, visitor); } // ### remove
|
||||||
|
|
||||||
virtual void accept0(Visitor *visitor) = 0;
|
virtual void accept0(Visitor *visitor) = 0;
|
||||||
|
virtual SourceLocation firstSourceLocation() const = 0;
|
||||||
|
virtual SourceLocation lastSourceLocation() const = 0;
|
||||||
|
|
||||||
// attributes
|
// attributes
|
||||||
int kind;
|
int kind;
|
||||||
@@ -244,9 +243,6 @@ public:
|
|||||||
ExpressionNode() {}
|
ExpressionNode() {}
|
||||||
|
|
||||||
virtual ExpressionNode *expressionCast();
|
virtual ExpressionNode *expressionCast();
|
||||||
|
|
||||||
virtual SourceLocation firstSourceLocation() const = 0;
|
|
||||||
virtual SourceLocation lastSourceLocation() const = 0;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class QML_PARSER_EXPORT Statement: public Node
|
class QML_PARSER_EXPORT Statement: public Node
|
||||||
@@ -255,92 +251,6 @@ public:
|
|||||||
Statement() {}
|
Statement() {}
|
||||||
|
|
||||||
virtual Statement *statementCast();
|
virtual Statement *statementCast();
|
||||||
|
|
||||||
virtual SourceLocation firstSourceLocation() const = 0;
|
|
||||||
virtual SourceLocation lastSourceLocation() const = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
class QML_PARSER_EXPORT UiFormal: public Node
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
QMLJS_DECLARE_AST_NODE(UiFormal)
|
|
||||||
|
|
||||||
UiFormal(const QStringRef &name, const QStringRef &alias)
|
|
||||||
: name(name), alias(alias)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
virtual SourceLocation firstSourceLocation() const
|
|
||||||
{ return SourceLocation(); }
|
|
||||||
|
|
||||||
virtual SourceLocation lastSourceLocation() const
|
|
||||||
{ return SourceLocation(); }
|
|
||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
|
||||||
|
|
||||||
// attributes
|
|
||||||
QStringRef name;
|
|
||||||
QStringRef alias;
|
|
||||||
SourceLocation identifierToken;
|
|
||||||
SourceLocation asToken;
|
|
||||||
SourceLocation aliasToken;
|
|
||||||
};
|
|
||||||
|
|
||||||
class QML_PARSER_EXPORT UiFormalList: public Node
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
QMLJS_DECLARE_AST_NODE(UiFormalList)
|
|
||||||
|
|
||||||
UiFormalList(UiFormal *formal)
|
|
||||||
: formal(formal), next(this) {}
|
|
||||||
|
|
||||||
UiFormalList(UiFormalList *previous, UiFormal *formal)
|
|
||||||
: formal(formal)
|
|
||||||
{
|
|
||||||
next = previous->next;
|
|
||||||
previous->next = this;
|
|
||||||
}
|
|
||||||
|
|
||||||
UiFormalList *finish()
|
|
||||||
{
|
|
||||||
UiFormalList *head = next;
|
|
||||||
next = 0;
|
|
||||||
return head;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual SourceLocation firstSourceLocation() const
|
|
||||||
{ return SourceLocation(); }
|
|
||||||
|
|
||||||
virtual SourceLocation lastSourceLocation() const
|
|
||||||
{ return SourceLocation(); }
|
|
||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
|
||||||
|
|
||||||
// attributes
|
|
||||||
UiFormal *formal;
|
|
||||||
UiFormalList *next;
|
|
||||||
};
|
|
||||||
|
|
||||||
class QML_PARSER_EXPORT UiSignature: public Node
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
QMLJS_DECLARE_AST_NODE(UiSignature)
|
|
||||||
|
|
||||||
UiSignature(UiFormalList *formals = 0)
|
|
||||||
: formals(formals)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
virtual SourceLocation firstSourceLocation() const
|
|
||||||
{ return SourceLocation(); }
|
|
||||||
|
|
||||||
virtual SourceLocation lastSourceLocation() const
|
|
||||||
{ return SourceLocation(); }
|
|
||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
|
||||||
|
|
||||||
// attributes
|
|
||||||
SourceLocation lparenToken;
|
|
||||||
UiFormalList *formals;
|
|
||||||
SourceLocation rparenToken;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class QML_PARSER_EXPORT NestedExpression: public ExpressionNode
|
class QML_PARSER_EXPORT NestedExpression: public ExpressionNode
|
||||||
@@ -585,6 +495,41 @@ public:
|
|||||||
SourceLocation rbraceToken;
|
SourceLocation rbraceToken;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class QML_PARSER_EXPORT Elision: public Node
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
QMLJS_DECLARE_AST_NODE(Elision)
|
||||||
|
|
||||||
|
Elision():
|
||||||
|
next (this) { kind = K; }
|
||||||
|
|
||||||
|
Elision(Elision *previous)
|
||||||
|
{
|
||||||
|
kind = K;
|
||||||
|
next = previous->next;
|
||||||
|
previous->next = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return commaToken; }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{ return next ? next->lastSourceLocation() : commaToken; }
|
||||||
|
|
||||||
|
inline Elision *finish ()
|
||||||
|
{
|
||||||
|
Elision *front = next;
|
||||||
|
next = 0;
|
||||||
|
return front;
|
||||||
|
}
|
||||||
|
|
||||||
|
// attributes
|
||||||
|
Elision *next;
|
||||||
|
SourceLocation commaToken;
|
||||||
|
};
|
||||||
|
|
||||||
class QML_PARSER_EXPORT ElementList: public Node
|
class QML_PARSER_EXPORT ElementList: public Node
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -611,6 +556,20 @@ public:
|
|||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{
|
||||||
|
if (elision)
|
||||||
|
return elision->firstSourceLocation();
|
||||||
|
return expression->firstSourceLocation();
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{
|
||||||
|
if (next)
|
||||||
|
return next->lastSourceLocation();
|
||||||
|
return expression->lastSourceLocation();
|
||||||
|
}
|
||||||
|
|
||||||
// attributes
|
// attributes
|
||||||
Elision *elision;
|
Elision *elision;
|
||||||
ExpressionNode *expression;
|
ExpressionNode *expression;
|
||||||
@@ -618,33 +577,21 @@ public:
|
|||||||
SourceLocation commaToken;
|
SourceLocation commaToken;
|
||||||
};
|
};
|
||||||
|
|
||||||
class QML_PARSER_EXPORT Elision: public Node
|
class QML_PARSER_EXPORT PropertyName: public Node
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
QMLJS_DECLARE_AST_NODE(Elision)
|
QMLJS_DECLARE_AST_NODE(PropertyName)
|
||||||
|
|
||||||
Elision():
|
PropertyName() { kind = K; }
|
||||||
next (this) { kind = K; }
|
|
||||||
|
|
||||||
Elision(Elision *previous)
|
virtual SourceLocation firstSourceLocation() const
|
||||||
{
|
{ return propertyNameToken; }
|
||||||
kind = K;
|
|
||||||
next = previous->next;
|
|
||||||
previous->next = this;
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{ return propertyNameToken; }
|
||||||
inline Elision *finish ()
|
|
||||||
{
|
|
||||||
Elision *front = next;
|
|
||||||
next = 0;
|
|
||||||
return front;
|
|
||||||
}
|
|
||||||
|
|
||||||
// attributes
|
// attributes
|
||||||
Elision *next;
|
SourceLocation propertyNameToken;
|
||||||
SourceLocation commaToken;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class QML_PARSER_EXPORT PropertyNameAndValueList: public Node
|
class QML_PARSER_EXPORT PropertyNameAndValueList: public Node
|
||||||
@@ -666,6 +613,16 @@ public:
|
|||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return name->firstSourceLocation(); }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{
|
||||||
|
if (next)
|
||||||
|
return next->lastSourceLocation();
|
||||||
|
return value->lastSourceLocation();
|
||||||
|
}
|
||||||
|
|
||||||
inline PropertyNameAndValueList *finish ()
|
inline PropertyNameAndValueList *finish ()
|
||||||
{
|
{
|
||||||
PropertyNameAndValueList *front = next;
|
PropertyNameAndValueList *front = next;
|
||||||
@@ -681,17 +638,6 @@ public:
|
|||||||
SourceLocation commaToken;
|
SourceLocation commaToken;
|
||||||
};
|
};
|
||||||
|
|
||||||
class QML_PARSER_EXPORT PropertyName: public Node
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
QMLJS_DECLARE_AST_NODE(PropertyName)
|
|
||||||
|
|
||||||
PropertyName() { kind = K; }
|
|
||||||
|
|
||||||
// attributes
|
|
||||||
SourceLocation propertyNameToken;
|
|
||||||
};
|
|
||||||
|
|
||||||
class QML_PARSER_EXPORT IdentifierPropertyName: public PropertyName
|
class QML_PARSER_EXPORT IdentifierPropertyName: public PropertyName
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -871,6 +817,16 @@ public:
|
|||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return expression->firstSourceLocation(); }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{
|
||||||
|
if (next)
|
||||||
|
return next->lastSourceLocation();
|
||||||
|
return expression->lastSourceLocation();
|
||||||
|
}
|
||||||
|
|
||||||
inline ArgumentList *finish ()
|
inline ArgumentList *finish ()
|
||||||
{
|
{
|
||||||
ArgumentList *front = next;
|
ArgumentList *front = next;
|
||||||
@@ -1229,6 +1185,12 @@ public:
|
|||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return statement->firstSourceLocation(); }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{ return next ? next->lastSourceLocation() : statement->lastSourceLocation(); }
|
||||||
|
|
||||||
inline StatementList *finish ()
|
inline StatementList *finish ()
|
||||||
{
|
{
|
||||||
StatementList *front = next;
|
StatementList *front = next;
|
||||||
@@ -1275,6 +1237,12 @@ public:
|
|||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return identifierToken; }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{ return expression ? expression->lastSourceLocation() : identifierToken; }
|
||||||
|
|
||||||
// attributes
|
// attributes
|
||||||
QStringRef name;
|
QStringRef name;
|
||||||
ExpressionNode *expression;
|
ExpressionNode *expression;
|
||||||
@@ -1301,6 +1269,16 @@ public:
|
|||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return declaration->firstSourceLocation(); }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{
|
||||||
|
if (next)
|
||||||
|
return next->lastSourceLocation();
|
||||||
|
return declaration->lastSourceLocation();
|
||||||
|
}
|
||||||
|
|
||||||
inline VariableDeclarationList *finish (bool readOnly)
|
inline VariableDeclarationList *finish (bool readOnly)
|
||||||
{
|
{
|
||||||
VariableDeclarationList *front = next;
|
VariableDeclarationList *front = next;
|
||||||
@@ -1661,6 +1639,12 @@ public:
|
|||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return lbraceToken; }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{ return rbraceToken; }
|
||||||
|
|
||||||
// attributes
|
// attributes
|
||||||
CaseClauses *clauses;
|
CaseClauses *clauses;
|
||||||
DefaultClause *defaultClause;
|
DefaultClause *defaultClause;
|
||||||
@@ -1694,6 +1678,30 @@ public:
|
|||||||
SourceLocation rparenToken;
|
SourceLocation rparenToken;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class QML_PARSER_EXPORT CaseClause: public Node
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
QMLJS_DECLARE_AST_NODE(CaseClause)
|
||||||
|
|
||||||
|
CaseClause(ExpressionNode *e, StatementList *slist):
|
||||||
|
expression (e), statements (slist)
|
||||||
|
{ kind = K; }
|
||||||
|
|
||||||
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return caseToken; }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{ return statements ? statements->lastSourceLocation() : colonToken; }
|
||||||
|
|
||||||
|
// attributes
|
||||||
|
ExpressionNode *expression;
|
||||||
|
StatementList *statements;
|
||||||
|
SourceLocation caseToken;
|
||||||
|
SourceLocation colonToken;
|
||||||
|
};
|
||||||
|
|
||||||
class QML_PARSER_EXPORT CaseClauses: public Node
|
class QML_PARSER_EXPORT CaseClauses: public Node
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -1713,6 +1721,12 @@ public:
|
|||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return clause->firstSourceLocation(); }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{ return next ? next->lastSourceLocation() : clause->lastSourceLocation(); }
|
||||||
|
|
||||||
inline CaseClauses *finish ()
|
inline CaseClauses *finish ()
|
||||||
{
|
{
|
||||||
CaseClauses *front = next;
|
CaseClauses *front = next;
|
||||||
@@ -1725,24 +1739,6 @@ public:
|
|||||||
CaseClauses *next;
|
CaseClauses *next;
|
||||||
};
|
};
|
||||||
|
|
||||||
class QML_PARSER_EXPORT CaseClause: public Node
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
QMLJS_DECLARE_AST_NODE(CaseClause)
|
|
||||||
|
|
||||||
CaseClause(ExpressionNode *e, StatementList *slist):
|
|
||||||
expression (e), statements (slist)
|
|
||||||
{ kind = K; }
|
|
||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
|
||||||
|
|
||||||
// attributes
|
|
||||||
ExpressionNode *expression;
|
|
||||||
StatementList *statements;
|
|
||||||
SourceLocation caseToken;
|
|
||||||
SourceLocation colonToken;
|
|
||||||
};
|
|
||||||
|
|
||||||
class QML_PARSER_EXPORT DefaultClause: public Node
|
class QML_PARSER_EXPORT DefaultClause: public Node
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -1754,6 +1750,12 @@ public:
|
|||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return defaultToken; }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{ return statements ? statements->lastSourceLocation() : colonToken; }
|
||||||
|
|
||||||
// attributes
|
// attributes
|
||||||
StatementList *statements;
|
StatementList *statements;
|
||||||
SourceLocation defaultToken;
|
SourceLocation defaultToken;
|
||||||
@@ -1817,6 +1819,12 @@ public:
|
|||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return catchToken; }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{ return statement->lastSourceLocation(); }
|
||||||
|
|
||||||
// attributes
|
// attributes
|
||||||
QStringRef name;
|
QStringRef name;
|
||||||
Block *statement;
|
Block *statement;
|
||||||
@@ -1837,6 +1845,12 @@ public:
|
|||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return finallyToken; }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{ return statement ? statement->lastSourceLocation() : finallyToken; }
|
||||||
|
|
||||||
// attributes
|
// attributes
|
||||||
Block *statement;
|
Block *statement;
|
||||||
SourceLocation finallyToken;
|
SourceLocation finallyToken;
|
||||||
@@ -1941,6 +1955,12 @@ public:
|
|||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return identifierToken; }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{ return next ? next->lastSourceLocation() : identifierToken; }
|
||||||
|
|
||||||
inline FormalParameterList *finish ()
|
inline FormalParameterList *finish ()
|
||||||
{
|
{
|
||||||
FormalParameterList *front = next;
|
FormalParameterList *front = next;
|
||||||
@@ -1955,34 +1975,13 @@ public:
|
|||||||
SourceLocation identifierToken;
|
SourceLocation identifierToken;
|
||||||
};
|
};
|
||||||
|
|
||||||
class QML_PARSER_EXPORT FunctionBody: public Node
|
class QML_PARSER_EXPORT SourceElement: public Node
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
QMLJS_DECLARE_AST_NODE(FunctionBody)
|
QMLJS_DECLARE_AST_NODE(SourceElement)
|
||||||
|
|
||||||
FunctionBody(SourceElements *elts):
|
inline SourceElement()
|
||||||
elements (elts)
|
|
||||||
{ kind = K; }
|
{ kind = K; }
|
||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
|
||||||
|
|
||||||
// attributes
|
|
||||||
SourceElements *elements;
|
|
||||||
};
|
|
||||||
|
|
||||||
class QML_PARSER_EXPORT Program: public Node
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
QMLJS_DECLARE_AST_NODE(Program)
|
|
||||||
|
|
||||||
Program(SourceElements *elts):
|
|
||||||
elements (elts)
|
|
||||||
{ kind = K; }
|
|
||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
|
||||||
|
|
||||||
// attributes
|
|
||||||
SourceElements *elements;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class QML_PARSER_EXPORT SourceElements: public Node
|
class QML_PARSER_EXPORT SourceElements: public Node
|
||||||
@@ -2004,6 +2003,12 @@ public:
|
|||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return element->firstSourceLocation(); }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{ return next ? next->lastSourceLocation() : element->lastSourceLocation(); }
|
||||||
|
|
||||||
inline SourceElements *finish ()
|
inline SourceElements *finish ()
|
||||||
{
|
{
|
||||||
SourceElements *front = next;
|
SourceElements *front = next;
|
||||||
@@ -2016,13 +2021,46 @@ public:
|
|||||||
SourceElements *next;
|
SourceElements *next;
|
||||||
};
|
};
|
||||||
|
|
||||||
class QML_PARSER_EXPORT SourceElement: public Node
|
class QML_PARSER_EXPORT FunctionBody: public Node
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
QMLJS_DECLARE_AST_NODE(SourceElement)
|
QMLJS_DECLARE_AST_NODE(FunctionBody)
|
||||||
|
|
||||||
inline SourceElement()
|
FunctionBody(SourceElements *elts):
|
||||||
|
elements (elts)
|
||||||
{ kind = K; }
|
{ kind = K; }
|
||||||
|
|
||||||
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return elements ? elements->firstSourceLocation() : SourceLocation(); }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{ return elements ? elements->lastSourceLocation() : SourceLocation(); }
|
||||||
|
|
||||||
|
// attributes
|
||||||
|
SourceElements *elements;
|
||||||
|
};
|
||||||
|
|
||||||
|
class QML_PARSER_EXPORT Program: public Node
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
QMLJS_DECLARE_AST_NODE(Program)
|
||||||
|
|
||||||
|
Program(SourceElements *elts):
|
||||||
|
elements (elts)
|
||||||
|
{ kind = K; }
|
||||||
|
|
||||||
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return elements ? elements->firstSourceLocation() : SourceLocation(); }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{ return elements ? elements->lastSourceLocation() : SourceLocation(); }
|
||||||
|
|
||||||
|
// attributes
|
||||||
|
SourceElements *elements;
|
||||||
};
|
};
|
||||||
|
|
||||||
class QML_PARSER_EXPORT FunctionSourceElement: public SourceElement
|
class QML_PARSER_EXPORT FunctionSourceElement: public SourceElement
|
||||||
@@ -2036,6 +2074,12 @@ public:
|
|||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return declaration->firstSourceLocation(); }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{ return declaration->lastSourceLocation(); }
|
||||||
|
|
||||||
// attributes
|
// attributes
|
||||||
FunctionDeclaration *declaration;
|
FunctionDeclaration *declaration;
|
||||||
};
|
};
|
||||||
@@ -2051,6 +2095,12 @@ public:
|
|||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return statement->firstSourceLocation(); }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{ return statement->lastSourceLocation(); }
|
||||||
|
|
||||||
// attributes
|
// attributes
|
||||||
Statement *statement;
|
Statement *statement;
|
||||||
};
|
};
|
||||||
@@ -2076,22 +2126,6 @@ public:
|
|||||||
SourceLocation semicolonToken;
|
SourceLocation semicolonToken;
|
||||||
};
|
};
|
||||||
|
|
||||||
class QML_PARSER_EXPORT UiProgram: public Node
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
QMLJS_DECLARE_AST_NODE(UiProgram)
|
|
||||||
|
|
||||||
UiProgram(UiImportList *imports, UiObjectMemberList *members)
|
|
||||||
: imports(imports), members(members)
|
|
||||||
{ kind = K; }
|
|
||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
|
||||||
|
|
||||||
// attributes
|
|
||||||
UiImportList *imports;
|
|
||||||
UiObjectMemberList *members;
|
|
||||||
};
|
|
||||||
|
|
||||||
class QML_PARSER_EXPORT UiQualifiedId: public Node
|
class QML_PARSER_EXPORT UiQualifiedId: public Node
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -2118,6 +2152,12 @@ public:
|
|||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return identifierToken; }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{ return next ? next->lastSourceLocation() : identifierToken; }
|
||||||
|
|
||||||
// attributes
|
// attributes
|
||||||
UiQualifiedId *next;
|
UiQualifiedId *next;
|
||||||
QStringRef name;
|
QStringRef name;
|
||||||
@@ -2137,14 +2177,14 @@ public:
|
|||||||
: importUri(uri)
|
: importUri(uri)
|
||||||
{ kind = K; }
|
{ kind = K; }
|
||||||
|
|
||||||
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
virtual SourceLocation firstSourceLocation() const
|
virtual SourceLocation firstSourceLocation() const
|
||||||
{ return importToken; }
|
{ return importToken; }
|
||||||
|
|
||||||
virtual SourceLocation lastSourceLocation() const
|
virtual SourceLocation lastSourceLocation() const
|
||||||
{ return semicolonToken; }
|
{ return semicolonToken; }
|
||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
|
||||||
|
|
||||||
// attributes
|
// attributes
|
||||||
QStringRef fileName;
|
QStringRef fileName;
|
||||||
UiQualifiedId *importUri;
|
UiQualifiedId *importUri;
|
||||||
@@ -2175,21 +2215,6 @@ public:
|
|||||||
previous->next = this;
|
previous->next = this;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual SourceLocation firstSourceLocation() const
|
|
||||||
{
|
|
||||||
if (import) return import->firstSourceLocation();
|
|
||||||
else return SourceLocation();
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual SourceLocation lastSourceLocation() const
|
|
||||||
{
|
|
||||||
for (const UiImportList *it = this; it; it = it->next)
|
|
||||||
if (!it->next && it->import)
|
|
||||||
return it->import->lastSourceLocation();
|
|
||||||
|
|
||||||
return SourceLocation();
|
|
||||||
}
|
|
||||||
|
|
||||||
UiImportList *finish()
|
UiImportList *finish()
|
||||||
{
|
{
|
||||||
UiImportList *head = next;
|
UiImportList *head = next;
|
||||||
@@ -2199,6 +2224,12 @@ public:
|
|||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return import->firstSourceLocation(); }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{ return next ? next->lastSourceLocation() : import->lastSourceLocation(); }
|
||||||
|
|
||||||
// attributes
|
// attributes
|
||||||
UiImport *import;
|
UiImport *import;
|
||||||
UiImportList *next;
|
UiImportList *next;
|
||||||
@@ -2232,6 +2263,12 @@ public:
|
|||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return member->firstSourceLocation(); }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{ return next ? next->lastSourceLocation() : member->lastSourceLocation(); }
|
||||||
|
|
||||||
UiObjectMemberList *finish()
|
UiObjectMemberList *finish()
|
||||||
{
|
{
|
||||||
UiObjectMemberList *head = next;
|
UiObjectMemberList *head = next;
|
||||||
@@ -2244,6 +2281,40 @@ public:
|
|||||||
UiObjectMember *member;
|
UiObjectMember *member;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class QML_PARSER_EXPORT UiProgram: public Node
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
QMLJS_DECLARE_AST_NODE(UiProgram)
|
||||||
|
|
||||||
|
UiProgram(UiImportList *imports, UiObjectMemberList *members)
|
||||||
|
: imports(imports), members(members)
|
||||||
|
{ kind = K; }
|
||||||
|
|
||||||
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{
|
||||||
|
if (imports)
|
||||||
|
return imports->firstSourceLocation();
|
||||||
|
else if (members)
|
||||||
|
return members->firstSourceLocation();
|
||||||
|
return SourceLocation();
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{
|
||||||
|
if (members)
|
||||||
|
return members->lastSourceLocation();
|
||||||
|
else if (imports)
|
||||||
|
return imports->lastSourceLocation();
|
||||||
|
return SourceLocation();
|
||||||
|
}
|
||||||
|
|
||||||
|
// attributes
|
||||||
|
UiImportList *imports;
|
||||||
|
UiObjectMemberList *members;
|
||||||
|
};
|
||||||
|
|
||||||
class QML_PARSER_EXPORT UiArrayMemberList: public Node
|
class QML_PARSER_EXPORT UiArrayMemberList: public Node
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -2263,6 +2334,12 @@ public:
|
|||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return member->firstSourceLocation(); }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{ return next ? next->lastSourceLocation() : member->lastSourceLocation(); }
|
||||||
|
|
||||||
UiArrayMemberList *finish()
|
UiArrayMemberList *finish()
|
||||||
{
|
{
|
||||||
UiArrayMemberList *head = next;
|
UiArrayMemberList *head = next;
|
||||||
@@ -2287,6 +2364,12 @@ public:
|
|||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return lbraceToken; }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{ return rbraceToken; }
|
||||||
|
|
||||||
// attributes
|
// attributes
|
||||||
SourceLocation lbraceToken;
|
SourceLocation lbraceToken;
|
||||||
UiObjectMemberList *members;
|
UiObjectMemberList *members;
|
||||||
@@ -2312,6 +2395,12 @@ public:
|
|||||||
|
|
||||||
virtual void accept0(Visitor *) {}
|
virtual void accept0(Visitor *) {}
|
||||||
|
|
||||||
|
virtual SourceLocation firstSourceLocation() const
|
||||||
|
{ return propertyTypeToken; }
|
||||||
|
|
||||||
|
virtual SourceLocation lastSourceLocation() const
|
||||||
|
{ return next ? next->lastSourceLocation() : identifierToken; }
|
||||||
|
|
||||||
inline UiParameterList *finish ()
|
inline UiParameterList *finish ()
|
||||||
{
|
{
|
||||||
UiParameterList *front = next;
|
UiParameterList *front = next;
|
||||||
@@ -2324,6 +2413,7 @@ public:
|
|||||||
QStringRef name;
|
QStringRef name;
|
||||||
UiParameterList *next;
|
UiParameterList *next;
|
||||||
SourceLocation commaToken;
|
SourceLocation commaToken;
|
||||||
|
SourceLocation propertyTypeToken;
|
||||||
SourceLocation identifierToken;
|
SourceLocation identifierToken;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -2343,6 +2433,8 @@ public:
|
|||||||
: type(Property), memberType(memberType), name(name), statement(statement), binding(0), isDefaultMember(false), isReadonlyMember(false), parameters(0)
|
: type(Property), memberType(memberType), name(name), statement(statement), binding(0), isDefaultMember(false), isReadonlyMember(false), parameters(0)
|
||||||
{ kind = K; }
|
{ kind = K; }
|
||||||
|
|
||||||
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
virtual SourceLocation firstSourceLocation() const
|
virtual SourceLocation firstSourceLocation() const
|
||||||
{
|
{
|
||||||
if (defaultToken.isValid())
|
if (defaultToken.isValid())
|
||||||
@@ -2363,8 +2455,6 @@ public:
|
|||||||
return semicolonToken;
|
return semicolonToken;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
|
||||||
|
|
||||||
// attributes
|
// attributes
|
||||||
enum { Signal, Property } type;
|
enum { Signal, Property } type;
|
||||||
QStringRef typeModifier;
|
QStringRef typeModifier;
|
||||||
@@ -2395,14 +2485,14 @@ public:
|
|||||||
: qualifiedTypeNameId(qualifiedTypeNameId), initializer(initializer)
|
: qualifiedTypeNameId(qualifiedTypeNameId), initializer(initializer)
|
||||||
{ kind = K; }
|
{ kind = K; }
|
||||||
|
|
||||||
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
virtual SourceLocation firstSourceLocation() const
|
virtual SourceLocation firstSourceLocation() const
|
||||||
{ return qualifiedTypeNameId->identifierToken; }
|
{ return qualifiedTypeNameId->identifierToken; }
|
||||||
|
|
||||||
virtual SourceLocation lastSourceLocation() const
|
virtual SourceLocation lastSourceLocation() const
|
||||||
{ return initializer->rbraceToken; }
|
{ return initializer->rbraceToken; }
|
||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
|
||||||
|
|
||||||
// attributes
|
// attributes
|
||||||
UiQualifiedId *qualifiedTypeNameId;
|
UiQualifiedId *qualifiedTypeNameId;
|
||||||
UiObjectInitializer *initializer;
|
UiObjectInitializer *initializer;
|
||||||
@@ -2437,9 +2527,9 @@ public:
|
|||||||
return SourceLocation();
|
return SourceLocation();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
|
||||||
// attributes
|
// attributes
|
||||||
Node *sourceElement;
|
Node *sourceElement;
|
||||||
};
|
};
|
||||||
@@ -2471,6 +2561,7 @@ public:
|
|||||||
|
|
||||||
virtual void accept0(Visitor *visitor);
|
virtual void accept0(Visitor *visitor);
|
||||||
|
|
||||||
|
|
||||||
// attributes
|
// attributes
|
||||||
UiQualifiedId *qualifiedId;
|
UiQualifiedId *qualifiedId;
|
||||||
UiQualifiedId *qualifiedTypeNameId;
|
UiQualifiedId *qualifiedTypeNameId;
|
||||||
|
|||||||
@@ -169,9 +169,6 @@ class UiObjectMember;
|
|||||||
class UiObjectMemberList;
|
class UiObjectMemberList;
|
||||||
class UiArrayMemberList;
|
class UiArrayMemberList;
|
||||||
class UiQualifiedId;
|
class UiQualifiedId;
|
||||||
class UiFormalList;
|
|
||||||
class UiFormal;
|
|
||||||
class UiSignature;
|
|
||||||
|
|
||||||
} } // namespace AST
|
} } // namespace AST
|
||||||
|
|
||||||
|
|||||||
@@ -74,9 +74,6 @@ public:
|
|||||||
virtual bool visit(UiObjectMemberList *) { return true; }
|
virtual bool visit(UiObjectMemberList *) { return true; }
|
||||||
virtual bool visit(UiArrayMemberList *) { return true; }
|
virtual bool visit(UiArrayMemberList *) { return true; }
|
||||||
virtual bool visit(UiQualifiedId *) { return true; }
|
virtual bool visit(UiQualifiedId *) { return true; }
|
||||||
virtual bool visit(UiSignature *) { return true; }
|
|
||||||
virtual bool visit(UiFormalList *) { return true; }
|
|
||||||
virtual bool visit(UiFormal *) { return true; }
|
|
||||||
|
|
||||||
virtual void endVisit(UiProgram *) {}
|
virtual void endVisit(UiProgram *) {}
|
||||||
virtual void endVisit(UiImportList *) {}
|
virtual void endVisit(UiImportList *) {}
|
||||||
@@ -91,9 +88,6 @@ public:
|
|||||||
virtual void endVisit(UiObjectMemberList *) {}
|
virtual void endVisit(UiObjectMemberList *) {}
|
||||||
virtual void endVisit(UiArrayMemberList *) {}
|
virtual void endVisit(UiArrayMemberList *) {}
|
||||||
virtual void endVisit(UiQualifiedId *) {}
|
virtual void endVisit(UiQualifiedId *) {}
|
||||||
virtual void endVisit(UiSignature *) {}
|
|
||||||
virtual void endVisit(UiFormalList *) {}
|
|
||||||
virtual void endVisit(UiFormal *) {}
|
|
||||||
|
|
||||||
// QmlJS
|
// QmlJS
|
||||||
virtual bool visit(ThisExpression *) { return true; }
|
virtual bool visit(ThisExpression *) { return true; }
|
||||||
|
|||||||
@@ -49,7 +49,12 @@
|
|||||||
#else // !QT_CREATOR
|
#else // !QT_CREATOR
|
||||||
# define QT_QML_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
|
# define QT_QML_BEGIN_NAMESPACE QT_BEGIN_NAMESPACE
|
||||||
# define QT_QML_END_NAMESPACE QT_END_NAMESPACE
|
# define QT_QML_END_NAMESPACE QT_END_NAMESPACE
|
||||||
# define QML_PARSER_EXPORT Q_AUTOTEST_EXPORT
|
# if defined(QT_BUILD_QMLDEVTOOLS_LIB) || defined(QT_QMLDEVTOOLS_LIB)
|
||||||
|
// QmlDevTools is a static library
|
||||||
|
# define QML_PARSER_EXPORT
|
||||||
|
# else
|
||||||
|
# define QML_PARSER_EXPORT Q_AUTOTEST_EXPORT
|
||||||
|
# endif
|
||||||
#endif // QT_CREATOR
|
#endif // QT_CREATOR
|
||||||
|
|
||||||
#endif // QMLJSGLOBAL_P_H
|
#endif // QMLJSGLOBAL_P_H
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -157,15 +157,15 @@ public:
|
|||||||
T_XOR = 79,
|
T_XOR = 79,
|
||||||
T_XOR_EQ = 80,
|
T_XOR_EQ = 80,
|
||||||
|
|
||||||
ACCEPT_STATE = 640,
|
ACCEPT_STATE = 644,
|
||||||
RULE_COUNT = 345,
|
RULE_COUNT = 349,
|
||||||
STATE_COUNT = 641,
|
STATE_COUNT = 645,
|
||||||
TERMINAL_COUNT = 102,
|
TERMINAL_COUNT = 102,
|
||||||
NON_TERMINAL_COUNT = 107,
|
NON_TERMINAL_COUNT = 107,
|
||||||
|
|
||||||
GOTO_INDEX_OFFSET = 641,
|
GOTO_INDEX_OFFSET = 645,
|
||||||
GOTO_INFO_OFFSET = 2818,
|
GOTO_INFO_OFFSET = 2807,
|
||||||
GOTO_CHECK_OFFSET = 2818
|
GOTO_CHECK_OFFSET = 2807
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char *const spell [];
|
static const char *const spell [];
|
||||||
|
|||||||
@@ -97,13 +97,18 @@ Lexer::Lexer(Engine *engine)
|
|||||||
, _restrictedKeyword(false)
|
, _restrictedKeyword(false)
|
||||||
, _terminator(false)
|
, _terminator(false)
|
||||||
, _followsClosingBrace(false)
|
, _followsClosingBrace(false)
|
||||||
, _delimited(false)
|
, _delimited(true)
|
||||||
, _qmlMode(true)
|
, _qmlMode(true)
|
||||||
{
|
{
|
||||||
if (engine)
|
if (engine)
|
||||||
engine->setLexer(this);
|
engine->setLexer(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Lexer::qmlMode() const
|
||||||
|
{
|
||||||
|
return _qmlMode;
|
||||||
|
}
|
||||||
|
|
||||||
QString Lexer::code() const
|
QString Lexer::code() const
|
||||||
{
|
{
|
||||||
return _code;
|
return _code;
|
||||||
@@ -147,7 +152,7 @@ void Lexer::setCode(const QString &code, int lineno, bool qmlMode)
|
|||||||
_restrictedKeyword = false;
|
_restrictedKeyword = false;
|
||||||
_terminator = false;
|
_terminator = false;
|
||||||
_followsClosingBrace = false;
|
_followsClosingBrace = false;
|
||||||
_delimited = false;
|
_delimited = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Lexer::scanChar()
|
void Lexer::scanChar()
|
||||||
@@ -176,6 +181,7 @@ int Lexer::lex()
|
|||||||
switch (_tokenKind) {
|
switch (_tokenKind) {
|
||||||
case T_LBRACE:
|
case T_LBRACE:
|
||||||
case T_SEMICOLON:
|
case T_SEMICOLON:
|
||||||
|
case T_COLON:
|
||||||
_delimited = true;
|
_delimited = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
@@ -136,6 +136,8 @@ public:
|
|||||||
public:
|
public:
|
||||||
Lexer(Engine *engine);
|
Lexer(Engine *engine);
|
||||||
|
|
||||||
|
bool qmlMode() const;
|
||||||
|
|
||||||
QString code() const;
|
QString code() const;
|
||||||
void setCode(const QString &code, int lineno, bool qmlMode = true);
|
void setCode(const QString &code, int lineno, bool qmlMode = true);
|
||||||
|
|
||||||
@@ -174,12 +176,13 @@ public:
|
|||||||
BalancedParentheses
|
BalancedParentheses
|
||||||
};
|
};
|
||||||
|
|
||||||
|
protected:
|
||||||
|
int classify(const QChar *s, int n, bool qmlMode);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
inline void scanChar();
|
inline void scanChar();
|
||||||
int scanToken();
|
int scanToken();
|
||||||
|
|
||||||
int classify(const QChar *s, int n, bool qmlMode);
|
|
||||||
|
|
||||||
bool isLineTerminator() const;
|
bool isLineTerminator() const;
|
||||||
static bool isIdentLetter(QChar c);
|
static bool isIdentLetter(QChar c);
|
||||||
static bool isDecimalDigit(ushort c);
|
static bool isDecimalDigit(ushort c);
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -108,9 +108,6 @@ public:
|
|||||||
AST::UiObjectMemberList *UiObjectMemberList;
|
AST::UiObjectMemberList *UiObjectMemberList;
|
||||||
AST::UiArrayMemberList *UiArrayMemberList;
|
AST::UiArrayMemberList *UiArrayMemberList;
|
||||||
AST::UiQualifiedId *UiQualifiedId;
|
AST::UiQualifiedId *UiQualifiedId;
|
||||||
AST::UiSignature *UiSignature;
|
|
||||||
AST::UiFormalList *UiFormalList;
|
|
||||||
AST::UiFormal *UiFormal;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@@ -231,9 +228,9 @@ protected:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define J_SCRIPT_REGEXPLITERAL_RULE1 76
|
#define J_SCRIPT_REGEXPLITERAL_RULE1 79
|
||||||
|
|
||||||
#define J_SCRIPT_REGEXPLITERAL_RULE2 77
|
#define J_SCRIPT_REGEXPLITERAL_RULE2 80
|
||||||
|
|
||||||
QT_QML_END_NAMESPACE
|
QT_QML_END_NAMESPACE
|
||||||
|
|
||||||
|
|||||||
@@ -212,21 +212,6 @@ bool Evaluate::visit(AST::UiQualifiedId *ast)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Evaluate::visit(AST::UiSignature *)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Evaluate::visit(AST::UiFormalList *)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Evaluate::visit(AST::UiFormal *)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool Evaluate::visit(AST::ThisExpression *)
|
bool Evaluate::visit(AST::ThisExpression *)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -79,9 +79,6 @@ protected:
|
|||||||
virtual bool visit(AST::UiObjectMemberList *ast);
|
virtual bool visit(AST::UiObjectMemberList *ast);
|
||||||
virtual bool visit(AST::UiArrayMemberList *ast);
|
virtual bool visit(AST::UiArrayMemberList *ast);
|
||||||
virtual bool visit(AST::UiQualifiedId *ast);
|
virtual bool visit(AST::UiQualifiedId *ast);
|
||||||
virtual bool visit(AST::UiSignature *ast);
|
|
||||||
virtual bool visit(AST::UiFormalList *ast);
|
|
||||||
virtual bool visit(AST::UiFormal *ast);
|
|
||||||
|
|
||||||
// QmlJS
|
// QmlJS
|
||||||
virtual bool visit(AST::ThisExpression *ast);
|
virtual bool visit(AST::ThisExpression *ast);
|
||||||
|
|||||||
@@ -238,9 +238,6 @@ protected: // visiting methods:
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual bool visit(UiFormal *ast) { terminal(ast->identifierToken); terminal(ast->asToken); terminal(ast->aliasToken); return false; }
|
|
||||||
virtual bool visit(UiSignature *ast) { terminal(ast->lparenToken); nonterminal(ast->formals); terminal(ast->rparenToken); return false; }
|
|
||||||
|
|
||||||
virtual bool visit(StringLiteral *ast) { terminal(ast->literalToken); return false; }
|
virtual bool visit(StringLiteral *ast) { terminal(ast->literalToken); return false; }
|
||||||
virtual bool visit(NumericLiteral *ast) { terminal(ast->literalToken); return false; }
|
virtual bool visit(NumericLiteral *ast) { terminal(ast->literalToken); return false; }
|
||||||
virtual bool visit(TrueLiteral *ast) { terminal(ast->trueToken); return false; }
|
virtual bool visit(TrueLiteral *ast) { terminal(ast->trueToken); return false; }
|
||||||
|
|||||||
Reference in New Issue
Block a user