summaryrefslogtreecommitdiffstats
path: root/src/tools/qdoc
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@theqtcompany.com>2015-03-16 10:31:07 +0100
committerSimon Hausmann <simon.hausmann@theqtcompany.com>2015-03-16 10:31:07 +0100
commit198606f6dbca95ba3a170fff387327d8271018cd (patch)
tree79e8c632f5277fc7f0ae30ae7fb1e1c41745c815 /src/tools/qdoc
parent77c0c1ca6505eb66bd75b3766f9a498574822bd1 (diff)
parent0d5ffd67a4748bcbf19dc3a4b9a36ae6314e58a6 (diff)
Merge remote-tracking branch 'origin/5.5' into dev
Conflicts: src/plugins/platforms/xcb/qxcbnativeinterface.cpp src/plugins/platforms/xcb/qxcbnativeinterface.h Change-Id: I31b38ba439b9341d51a01c0fd54bea33f7410076
Diffstat (limited to 'src/tools/qdoc')
-rw-r--r--src/tools/qdoc/codechunk.h1
-rw-r--r--src/tools/qdoc/config.cpp6
-rw-r--r--src/tools/qdoc/doc.cpp5
-rw-r--r--src/tools/qdoc/htmlgenerator.cpp37
-rw-r--r--src/tools/qdoc/jscodemarker.cpp5
-rw-r--r--src/tools/qdoc/node.cpp7
-rw-r--r--src/tools/qdoc/node.h5
-rw-r--r--src/tools/qdoc/qmlcodemarker.cpp25
-rw-r--r--src/tools/qdoc/qmlparser/qqmljsast_p.h574
-rw-r--r--src/tools/qdoc/qmlparser/qqmljsastfwd_p.h2
-rw-r--r--src/tools/qdoc/qmlparser/qqmljsengine_p.cpp8
-rw-r--r--src/tools/qdoc/qmlparser/qqmljsengine_p.h5
-rw-r--r--src/tools/qdoc/qmlparser/qqmljsglobal_p.h15
-rw-r--r--src/tools/qdoc/qmlparser/qqmljslexer.cpp162
-rw-r--r--src/tools/qdoc/qmlparser/qqmljslexer_p.h11
-rw-r--r--src/tools/qdoc/qmlparser/qqmljsmemorypool_p.h26
-rw-r--r--src/tools/qdoc/qmlparser/qqmljsparser.cpp19
-rw-r--r--src/tools/qdoc/qmlvisitor.cpp199
-rw-r--r--src/tools/qdoc/tree.cpp6
19 files changed, 753 insertions, 365 deletions
diff --git a/src/tools/qdoc/codechunk.h b/src/tools/qdoc/codechunk.h
index ed898bcdc7..259012df90 100644
--- a/src/tools/qdoc/codechunk.h
+++ b/src/tools/qdoc/codechunk.h
@@ -76,6 +76,7 @@ public:
void appendHotspot();
bool isEmpty() const { return s.isEmpty(); }
+ void clear() { s.clear(); }
QString toString() const;
QStringList toPath() const;
QString left() const { return s.left(hotspot == -1 ? s.length() : hotspot); }
diff --git a/src/tools/qdoc/config.cpp b/src/tools/qdoc/config.cpp
index e3b2f0325d..13add73322 100644
--- a/src/tools/qdoc/config.cpp
+++ b/src/tools/qdoc/config.cpp
@@ -396,7 +396,7 @@ QString Config::getString(const QString& var) const
while (i >= 0) {
const ConfigVar& cv = configVars[i];
if (!cv.location_.isEmpty())
- (Location&) lastLocation_ = cv.location_;
+ const_cast<Config *>(this)->lastLocation_ = cv.location_;
if (!cv.values_.isEmpty()) {
if (!cv.plus_)
value.clear();
@@ -443,7 +443,7 @@ QStringList Config::getStringList(const QString& var) const
int i = configVars.size() - 1;
while (i >= 0) {
if (!configVars[i].location_.isEmpty())
- (Location&) lastLocation_ = configVars[i].location_;
+ const_cast<Config *>(this)->lastLocation_ = configVars[i].location_;
if (configVars[i].plus_)
values.append(configVars[i].values_);
else
@@ -478,7 +478,7 @@ QStringList Config::getCanonicalPathList(const QString& var, bool validate) cons
while (i >= 0) {
const ConfigVar& cv = configVars[i];
if (!cv.location_.isEmpty())
- (Location&) lastLocation_ = cv.location_;
+ const_cast<Config *>(this)->lastLocation_ = cv.location_;
if (!cv.plus_)
t.clear();
const QString d = cv.currentPath_;
diff --git a/src/tools/qdoc/doc.cpp b/src/tools/qdoc/doc.cpp
index 7965ea898f..e911eed28b 100644
--- a/src/tools/qdoc/doc.cpp
+++ b/src/tools/qdoc/doc.cpp
@@ -49,6 +49,7 @@
#include <ctype.h>
#include <limits.h>
#include <qdebug.h>
+#include "generator.h"
QT_BEGIN_NAMESPACE
@@ -3319,9 +3320,7 @@ CodeMarker *Doc::quoteFromFile(const Location &location,
QString dirPath = QFileInfo(filePath).path();
CodeMarker *marker = CodeMarker::markerForFileName(fileName);
- quoter.quoteFromFile(userFriendlyFilePath,
- code,
- marker->markedUpCode(code, 0, location));
+ quoter.quoteFromFile(userFriendlyFilePath, code, marker->markedUpCode(code, 0, location));
return marker;
}
diff --git a/src/tools/qdoc/htmlgenerator.cpp b/src/tools/qdoc/htmlgenerator.cpp
index 7518b20fa3..00a292b17f 100644
--- a/src/tools/qdoc/htmlgenerator.cpp
+++ b/src/tools/qdoc/htmlgenerator.cpp
@@ -788,63 +788,63 @@ int HtmlGenerator::generateAtom(const Atom *atom, const Node *relative, CodeMark
NodeMultiMap::const_iterator n = nsmap.constBegin();
while (n != nsmap.constEnd()) {
- const Node* node = n.value();
+ Node* node = n.value();
switch (node->type()) {
case Node::QmlType:
- sections[QmlClass].appendMember((Node*)node);
+ sections[QmlClass].appendMember(node);
break;
case Node::Namespace:
- sections[Namespace].appendMember((Node*)node);
+ sections[Namespace].appendMember(node);
break;
case Node::Class:
- sections[Class].appendMember((Node*)node);
+ sections[Class].appendMember(node);
break;
case Node::Enum:
- sections[Enum].appendMember((Node*)node);
+ sections[Enum].appendMember(node);
break;
case Node::Typedef:
- sections[Typedef].appendMember((Node*)node);
+ sections[Typedef].appendMember(node);
break;
case Node::Function: {
const FunctionNode* fn = static_cast<const FunctionNode*>(node);
if (fn->isMacro())
- sections[Macro].appendMember((Node*)node);
+ sections[Macro].appendMember(node);
else {
Node* p = fn->parent();
if (p) {
if (p->type() == Node::Class)
- sections[MemberFunction].appendMember((Node*)node);
+ sections[MemberFunction].appendMember(node);
else if (p->type() == Node::Namespace) {
if (p->name().isEmpty())
- sections[GlobalFunction].appendMember((Node*)node);
+ sections[GlobalFunction].appendMember(node);
else
- sections[NamespaceFunction].appendMember((Node*)node);
+ sections[NamespaceFunction].appendMember(node);
}
else
- sections[GlobalFunction].appendMember((Node*)node);
+ sections[GlobalFunction].appendMember(node);
}
else
- sections[GlobalFunction].appendMember((Node*)node);
+ sections[GlobalFunction].appendMember(node);
}
break;
}
case Node::Property:
- sections[Property].appendMember((Node*)node);
+ sections[Property].appendMember(node);
break;
case Node::Variable:
- sections[Variable].appendMember((Node*)node);
+ sections[Variable].appendMember(node);
break;
case Node::QmlProperty:
- sections[QmlProperty].appendMember((Node*)node);
+ sections[QmlProperty].appendMember(node);
break;
case Node::QmlSignal:
- sections[QmlSignal].appendMember((Node*)node);
+ sections[QmlSignal].appendMember(node);
break;
case Node::QmlSignalHandler:
- sections[QmlSignalHandler].appendMember((Node*)node);
+ sections[QmlSignalHandler].appendMember(node);
break;
case Node::QmlMethod:
- sections[QmlMethod].appendMember((Node*)node);
+ sections[QmlMethod].appendMember(node);
break;
default:
break;
@@ -3349,6 +3349,7 @@ void HtmlGenerator::generateSectionInheritedList(const Section& section, const N
}
}
+// generateSynopsis(qmn,relative,marker,CodeMarker::Detailed,false);
void HtmlGenerator::generateSynopsis(const Node *node,
const Node *relative,
CodeMarker *marker,
diff --git a/src/tools/qdoc/jscodemarker.cpp b/src/tools/qdoc/jscodemarker.cpp
index 2a98b7372d..2538b46433 100644
--- a/src/tools/qdoc/jscodemarker.cpp
+++ b/src/tools/qdoc/jscodemarker.cpp
@@ -46,6 +46,7 @@
#include "qmlmarkupvisitor.h"
#include "text.h"
#include "tree.h"
+#include "generator.h"
QT_BEGIN_NAMESPACE
@@ -128,12 +129,12 @@ QString JsCodeMarker::addMarkUp(const QString &code,
QQmlJS::AST::Node::accept(ast, &visitor);
output = visitor.markedUpCode();
} else {
- location.warning(tr("Unable to parse JavaScript: \"%1\" at line %2, column %3").arg(
+ location.warning(location.fileName() +
+ tr("Unable to parse JavaScript: \"%1\" at line %2, column %3").arg(
parser.errorMessage()).arg(parser.errorLineNumber()).arg(
parser.errorColumnNumber()));
output = protect(code);
}
-
return output;
}
diff --git a/src/tools/qdoc/node.cpp b/src/tools/qdoc/node.cpp
index 25792a7c35..a6999d3856 100644
--- a/src/tools/qdoc/node.cpp
+++ b/src/tools/qdoc/node.cpp
@@ -807,7 +807,7 @@ FunctionNode *InnerNode::findFunctionNode(const QString& name) const
that the function has the same name and signature as the
\a clone node.
*/
-FunctionNode *InnerNode::findFunctionNode(const FunctionNode *clone)
+FunctionNode *InnerNode::findFunctionNode(const FunctionNode *clone) const
{
QMap<QString,Node*>::ConstIterator c = primaryFunctionMap.constFind(clone->name());
if (c != primaryFunctionMap.constEnd()) {
@@ -857,7 +857,7 @@ QStringList InnerNode::secondaryKeys()
/*!
*/
-void InnerNode::setOverload(const FunctionNode *func, bool overlode)
+void InnerNode::setOverload(FunctionNode *func, bool overlode)
{
Node *node = (Node *) func;
Node *&primary = primaryFunctionMap[func->name()];
@@ -1017,7 +1017,7 @@ const EnumNode *InnerNode::findEnumNodeForValue(const QString &enumValue) const
*/
int InnerNode::overloadNumber(const FunctionNode *func) const
{
- Node *node = (Node *) func;
+ Node *node = const_cast<FunctionNode *>(func);
if (primaryFunctionMap[func->name()] == node) {
return 1;
}
@@ -1863,6 +1863,7 @@ void FunctionNode::setReimp(bool r)
}
/*!
+ Append \a parameter to the parameter list.
*/
void FunctionNode::addParameter(const Parameter& parameter)
{
diff --git a/src/tools/qdoc/node.h b/src/tools/qdoc/node.h
index 73b705dd0f..654004e425 100644
--- a/src/tools/qdoc/node.h
+++ b/src/tools/qdoc/node.h
@@ -376,10 +376,10 @@ public:
Node* findChildNode(const QString& name, Type type);
virtual void findChildren(const QString& name, NodeList& nodes) const Q_DECL_OVERRIDE;
FunctionNode* findFunctionNode(const QString& name) const;
- FunctionNode* findFunctionNode(const FunctionNode* clone);
+ FunctionNode* findFunctionNode(const FunctionNode* clone) const;
void addInclude(const QString &include);
void setIncludes(const QStringList &includes);
- void setOverload(const FunctionNode* func, bool overlode);
+ void setOverload(FunctionNode* func, bool overlode);
void normalizeOverloads();
void makeUndocumentedChildrenInternal();
void deleteChildren();
@@ -904,6 +904,7 @@ public:
}
int overloadNumber() const;
const QList<Parameter>& parameters() const { return params; }
+ void clearParams() { params.clear(); }
QStringList parameterNames() const;
QString rawParameters(bool names = false, bool values = false) const;
const FunctionNode* reimplementedFrom() const { return rf; }
diff --git a/src/tools/qdoc/qmlcodemarker.cpp b/src/tools/qdoc/qmlcodemarker.cpp
index f8071c154e..86fc79be66 100644
--- a/src/tools/qdoc/qmlcodemarker.cpp
+++ b/src/tools/qdoc/qmlcodemarker.cpp
@@ -47,6 +47,7 @@
#include "qmlmarkupvisitor.h"
#include "text.h"
#include "tree.h"
+#include "generator.h"
QT_BEGIN_NAMESPACE
@@ -205,8 +206,8 @@ static void replaceWithSpace(QString &str, int idx, int n)
src/declarative/qml/qqmlscriptparser.cpp then modified to
return a list of removed pragmas.
- Searches for ".pragma <value>" declarations within \a script.
- Currently supported pragmas are: library
+ Searches for ".pragma <value>" or ".import <stuff>" declarations
+ in \a script. Currently supported pragmas are: library
*/
QList<QQmlJS::AST::SourceLocation> QmlCodeMarker::extractPragmas(QString &script)
{
@@ -229,13 +230,22 @@ QList<QQmlJS::AST::SourceLocation> QmlCodeMarker::extractPragmas(QString &script
token = l.lex();
- if (token != QQmlJSGrammar::T_IDENTIFIER ||
- l.tokenStartLine() != startLine ||
- script.mid(l.tokenOffset(), l.tokenLength()) != pragma)
+ if (token != QQmlJSGrammar::T_PRAGMA && token != QQmlJSGrammar::T_IMPORT)
return removed;
-
+ int endOffset = 0;
+ while (startLine == l.tokenStartLine()) {
+ endOffset = l.tokenLength() + l.tokenOffset();
+ token = l.lex();
+ }
+ replaceWithSpace(script, startOffset, endOffset - startOffset);
+ removed.append(QQmlJS::AST::SourceLocation(startOffset,
+ endOffset - startOffset,
+ startLine,
+ startColumn));
+#if 0
token = l.lex();
-
+ if (Generator::debugging())
+ qDebug() << " third token";
if (token != QQmlJSGrammar::T_IDENTIFIER ||
l.tokenStartLine() != startLine)
return removed;
@@ -255,6 +265,7 @@ QList<QQmlJS::AST::SourceLocation> QmlCodeMarker::extractPragmas(QString &script
startLine, startColumn));
} else
return removed;
+#endif
}
return removed;
}
diff --git a/src/tools/qdoc/qmlparser/qqmljsast_p.h b/src/tools/qdoc/qmlparser/qqmljsast_p.h
index 9dbf4bb514..fa6b5d2488 100644
--- a/src/tools/qdoc/qmlparser/qqmljsast_p.h
+++ b/src/tools/qdoc/qmlparser/qqmljsast_p.h
@@ -247,7 +247,7 @@ class QML_PARSER_EXPORT ExpressionNode: public Node
public:
ExpressionNode() {}
- virtual ExpressionNode *expressionCast() Q_DECL_OVERRIDE;
+ virtual ExpressionNode *expressionCast();
};
class QML_PARSER_EXPORT Statement: public Node
@@ -255,7 +255,7 @@ class QML_PARSER_EXPORT Statement: public Node
public:
Statement() {}
- virtual Statement *statementCast() Q_DECL_OVERRIDE;
+ virtual Statement *statementCast();
};
class QML_PARSER_EXPORT NestedExpression: public ExpressionNode
@@ -267,12 +267,12 @@ public:
: expression(expression)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return lparenToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return rparenToken; }
// attributes
@@ -288,12 +288,12 @@ public:
ThisExpression() { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return thisToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return thisToken; }
// attributes
@@ -308,12 +308,12 @@ public:
IdentifierExpression(const QStringRef &n):
name (n) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return identifierToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return identifierToken; }
// attributes
@@ -328,12 +328,12 @@ public:
NullExpression() { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return nullToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return nullToken; }
// attributes
@@ -347,12 +347,12 @@ public:
TrueLiteral() { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return trueToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return trueToken; }
// attributes
@@ -366,12 +366,12 @@ public:
FalseLiteral() { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return falseToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return falseToken; }
// attributes
@@ -386,12 +386,12 @@ public:
NumericLiteral(double v):
value(v) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return literalToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return literalToken; }
// attributes:
@@ -407,12 +407,12 @@ public:
StringLiteral(const QStringRef &v):
value (v) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return literalToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return literalToken; }
// attributes:
@@ -428,12 +428,12 @@ public:
RegExpLiteral(const QStringRef &p, int f):
pattern (p), flags (f) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return literalToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return literalToken; }
// attributes:
@@ -459,12 +459,12 @@ public:
elements (elts), elision (e)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return lbracketToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return rbracketToken; }
// attributes
@@ -486,12 +486,12 @@ public:
ObjectLiteral(PropertyAssignmentList *plist):
properties (plist) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return lbraceToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return rbraceToken; }
// attributes
@@ -515,12 +515,12 @@ public:
previous->next = this;
}
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return commaToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return next ? next->lastSourceLocation() : commaToken; }
inline Elision *finish ()
@@ -559,16 +559,16 @@ public:
return front;
}
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{
if (elision)
return elision->firstSourceLocation();
return expression->firstSourceLocation();
}
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{
if (next)
return next->lastSourceLocation();
@@ -589,12 +589,14 @@ public:
PropertyName() { kind = K; }
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return propertyNameToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return propertyNameToken; }
+ virtual QString asString() const = 0;
+
// attributes
SourceLocation propertyNameToken;
};
@@ -602,7 +604,11 @@ public:
class QML_PARSER_EXPORT PropertyAssignment: public Node
{
public:
- PropertyAssignment() {}
+ PropertyAssignment(PropertyName *n)
+ : name(n)
+ {}
+// attributes
+ PropertyName *name;
};
class QML_PARSER_EXPORT PropertyAssignmentList: public Node
@@ -630,12 +636,12 @@ public:
return front;
}
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return assignment->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return next ? next->lastSourceLocation() : assignment->lastSourceLocation(); }
// attributes
@@ -650,19 +656,18 @@ public:
QQMLJS_DECLARE_AST_NODE(PropertyNameAndValue)
PropertyNameAndValue(PropertyName *n, ExpressionNode *v)
- : name(n), value(v)
+ : PropertyAssignment(n), value(v)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return name->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return value->lastSourceLocation(); }
// attributes
- PropertyName *name;
SourceLocation colonToken;
ExpressionNode *value;
SourceLocation commaToken;
@@ -679,25 +684,24 @@ public:
};
PropertyGetterSetter(PropertyName *n, FunctionBody *b)
- : type(Getter), name(n), formals(0), functionBody (b)
+ : PropertyAssignment(n), type(Getter), formals(0), functionBody (b)
{ kind = K; }
PropertyGetterSetter(PropertyName *n, FormalParameterList *f, FunctionBody *b)
- : type(Setter), name(n), formals(f), functionBody (b)
+ : PropertyAssignment(n), type(Setter), formals(f), functionBody (b)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return getSetToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return rbraceToken; }
// attributes
Type type;
SourceLocation getSetToken;
- PropertyName *name;
SourceLocation lparenToken;
FormalParameterList *formals;
SourceLocation rparenToken;
@@ -714,7 +718,9 @@ public:
IdentifierPropertyName(const QStringRef &n):
id (n) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
+
+ virtual QString asString() const { return id.toString(); }
// attributes
QStringRef id;
@@ -728,7 +734,9 @@ public:
StringLiteralPropertyName(const QStringRef &n):
id (n) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
+
+ virtual QString asString() const { return id.toString(); }
// attributes
QStringRef id;
@@ -742,7 +750,9 @@ public:
NumericLiteralPropertyName(double n):
id (n) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
+
+ virtual QString asString() const { return QString::number(id, 'g', 16); }
// attributes
double id;
@@ -757,12 +767,12 @@ public:
base (b), expression (e)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return base->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return rbracketToken; }
// attributes
@@ -781,12 +791,12 @@ public:
base (b), name (n)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return base->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return identifierToken; }
// attributes
@@ -805,12 +815,12 @@ public:
base (b), arguments (a)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return newToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return rparenToken; }
// attributes
@@ -829,12 +839,12 @@ public:
NewExpression(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return newToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return expression->lastSourceLocation(); }
// attributes
@@ -851,12 +861,12 @@ public:
base (b), arguments (a)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return base->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return rparenToken; }
// attributes
@@ -883,12 +893,12 @@ public:
previous->next = this;
}
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return expression->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{
if (next)
return next->lastSourceLocation();
@@ -916,12 +926,12 @@ public:
PostIncrementExpression(ExpressionNode *b):
base (b) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return base->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return incrementToken; }
// attributes
@@ -937,12 +947,12 @@ public:
PostDecrementExpression(ExpressionNode *b):
base (b) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return base->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return decrementToken; }
// attributes
@@ -958,12 +968,12 @@ public:
DeleteExpression(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return deleteToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return expression->lastSourceLocation(); }
// attributes
@@ -979,12 +989,12 @@ public:
VoidExpression(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return voidToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return expression->lastSourceLocation(); }
// attributes
@@ -1000,12 +1010,12 @@ public:
TypeOfExpression(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return typeofToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return expression->lastSourceLocation(); }
// attributes
@@ -1021,12 +1031,12 @@ public:
PreIncrementExpression(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return incrementToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return expression->lastSourceLocation(); }
// attributes
@@ -1042,12 +1052,12 @@ public:
PreDecrementExpression(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return decrementToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return expression->lastSourceLocation(); }
// attributes
@@ -1063,12 +1073,12 @@ public:
UnaryPlusExpression(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return plusToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return expression->lastSourceLocation(); }
// attributes
@@ -1084,12 +1094,12 @@ public:
UnaryMinusExpression(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return minusToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return expression->lastSourceLocation(); }
// attributes
@@ -1105,12 +1115,12 @@ public:
TildeExpression(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return tildeToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return expression->lastSourceLocation(); }
// attributes
@@ -1126,12 +1136,12 @@ public:
NotExpression(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return notToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return expression->lastSourceLocation(); }
// attributes
@@ -1148,14 +1158,14 @@ public:
left (l), op (o), right (r)
{ kind = K; }
- virtual BinaryExpression *binaryExpressionCast() Q_DECL_OVERRIDE;
+ virtual BinaryExpression *binaryExpressionCast();
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return left->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return right->lastSourceLocation(); }
// attributes
@@ -1174,12 +1184,12 @@ public:
expression (e), ok (t), ko (f)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return expression->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return ko->lastSourceLocation(); }
// attributes
@@ -1198,12 +1208,12 @@ public:
Expression(ExpressionNode *l, ExpressionNode *r):
left (l), right (r) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return left->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return right->lastSourceLocation(); }
// attributes
@@ -1220,12 +1230,12 @@ public:
Block(StatementList *slist):
statements (slist) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return lbraceToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return rbraceToken; }
// attributes
@@ -1251,12 +1261,12 @@ public:
previous->next = this;
}
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return statement->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return next ? next->lastSourceLocation() : statement->lastSourceLocation(); }
inline StatementList *finish ()
@@ -1280,12 +1290,12 @@ public:
declarations (vlist)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return declarationKindToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return semicolonToken; }
// attributes
@@ -1303,12 +1313,12 @@ public:
name (n), expression (e), readOnly(false)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return identifierToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return expression ? expression->lastSourceLocation() : identifierToken; }
// attributes
@@ -1335,12 +1345,12 @@ public:
previous->next = this;
}
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return declaration->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{
if (next)
return next->lastSourceLocation();
@@ -1372,12 +1382,12 @@ public:
EmptyStatement() { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return semicolonToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return semicolonToken; }
// attributes
@@ -1392,12 +1402,12 @@ public:
ExpressionStatement(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return expression->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return semicolonToken; }
// attributes
@@ -1414,12 +1424,12 @@ public:
expression (e), ok (t), ko (f)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return ifToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{
if (ko)
return ko->lastSourceLocation();
@@ -1446,12 +1456,12 @@ public:
statement (stmt), expression (e)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return doToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return semicolonToken; }
// attributes
@@ -1473,12 +1483,12 @@ public:
expression (e), statement (stmt)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return whileToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return statement->lastSourceLocation(); }
// attributes
@@ -1498,12 +1508,12 @@ public:
initialiser (i), condition (c), expression (e), statement (stmt)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return forToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return statement->lastSourceLocation(); }
// attributes
@@ -1527,12 +1537,12 @@ public:
declarations (vlist), condition (c), expression (e), statement (stmt)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return forToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return statement->lastSourceLocation(); }
// attributes
@@ -1557,12 +1567,12 @@ public:
initialiser (i), expression (e), statement (stmt)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return forToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return statement->lastSourceLocation(); }
// attributes
@@ -1584,12 +1594,12 @@ public:
declaration (v), expression (e), statement (stmt)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return forToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return statement->lastSourceLocation(); }
// attributes
@@ -1611,12 +1621,12 @@ public:
ContinueStatement(const QStringRef &l = QStringRef()):
label (l) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return continueToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return semicolonToken; }
// attributes
@@ -1634,12 +1644,12 @@ public:
BreakStatement(const QStringRef &l):
label (l) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return breakToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return semicolonToken; }
// attributes
@@ -1657,12 +1667,12 @@ public:
ReturnStatement(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return returnToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return semicolonToken; }
// attributes
@@ -1680,12 +1690,12 @@ public:
expression (e), statement (stmt)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return withToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return statement->lastSourceLocation(); }
// attributes
@@ -1705,12 +1715,12 @@ public:
clauses (c), defaultClause (d), moreClauses (r)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return lbraceToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return rbraceToken; }
// attributes
@@ -1730,12 +1740,12 @@ public:
expression (e), block (b)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return switchToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return block->rbraceToken; }
// attributes
@@ -1755,12 +1765,12 @@ public:
expression (e), statements (slist)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return caseToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return statements ? statements->lastSourceLocation() : colonToken; }
// attributes
@@ -1787,12 +1797,12 @@ public:
previous->next = this;
}
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return clause->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return next ? next->lastSourceLocation() : clause->lastSourceLocation(); }
inline CaseClauses *finish ()
@@ -1816,12 +1826,12 @@ public:
statements (slist)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return defaultToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return statements ? statements->lastSourceLocation() : colonToken; }
// attributes
@@ -1839,12 +1849,12 @@ public:
label (l), statement (stmt)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return identifierToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return statement->lastSourceLocation(); }
// attributes
@@ -1862,12 +1872,12 @@ public:
ThrowStatement(ExpressionNode *e):
expression (e) { kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return throwToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return semicolonToken; }
// attributes
@@ -1885,12 +1895,12 @@ public:
name (n), statement (stmt)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return catchToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return statement->lastSourceLocation(); }
// attributes
@@ -1911,12 +1921,12 @@ public:
statement (stmt)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return finallyToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return statement ? statement->lastSourceLocation() : finallyToken; }
// attributes
@@ -1941,12 +1951,12 @@ public:
statement (stmt), catchExpression (c), finallyExpression (0)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return tryToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{
if (finallyExpression)
return finallyExpression->statement->rbraceToken;
@@ -1972,12 +1982,12 @@ public:
name (n), formals (f), body (b)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return functionToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return rbraceToken; }
// attributes
@@ -2001,7 +2011,7 @@ public:
FunctionExpression(n, f, b)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
};
class QML_PARSER_EXPORT FormalParameterList: public Node
@@ -2021,12 +2031,12 @@ public:
previous->next = this;
}
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return identifierToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return next ? next->lastSourceLocation() : identifierToken; }
inline FormalParameterList *finish ()
@@ -2069,12 +2079,12 @@ public:
previous->next = this;
}
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return element->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return next ? next->lastSourceLocation() : element->lastSourceLocation(); }
inline SourceElements *finish ()
@@ -2098,12 +2108,12 @@ public:
elements (elts)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return elements ? elements->firstSourceLocation() : SourceLocation(); }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return elements ? elements->lastSourceLocation() : SourceLocation(); }
// attributes
@@ -2119,12 +2129,12 @@ public:
elements (elts)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return elements ? elements->firstSourceLocation() : SourceLocation(); }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return elements ? elements->lastSourceLocation() : SourceLocation(); }
// attributes
@@ -2140,12 +2150,12 @@ public:
declaration (f)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return declaration->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return declaration->lastSourceLocation(); }
// attributes
@@ -2161,12 +2171,12 @@ public:
statement (stmt)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return statement->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return statement->lastSourceLocation(); }
// attributes
@@ -2181,12 +2191,12 @@ public:
DebuggerStatement()
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return debuggerToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return semicolonToken; }
// attributes
@@ -2218,12 +2228,12 @@ public:
return head;
}
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return identifierToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return next ? next->lastSourceLocation() : identifierToken; }
// attributes
@@ -2245,12 +2255,12 @@ public:
: importUri(uri)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return importToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return semicolonToken; }
// attributes
@@ -2268,10 +2278,10 @@ public:
class QML_PARSER_EXPORT UiObjectMember: public Node
{
public:
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE = 0;
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE = 0;
+ virtual SourceLocation firstSourceLocation() const = 0;
+ virtual SourceLocation lastSourceLocation() const = 0;
- virtual UiObjectMember *uiObjectMemberCast() Q_DECL_OVERRIDE;
+ virtual UiObjectMember *uiObjectMemberCast();
};
class QML_PARSER_EXPORT UiObjectMemberList: public Node
@@ -2291,12 +2301,12 @@ public:
previous->next = this;
}
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return member->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return next ? next->lastSourceLocation() : member->lastSourceLocation(); }
UiObjectMemberList *finish()
@@ -2335,12 +2345,12 @@ public:
return head;
}
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return identifierToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return next ? next->lastSourceLocation() : identifierToken; }
// attributes
@@ -2358,12 +2368,12 @@ public:
: pragmaType(type)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return pragmaToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return semicolonToken; }
// attributes
@@ -2408,12 +2418,12 @@ public:
return head;
}
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return headerItem->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return next ? next->lastSourceLocation() : headerItem->lastSourceLocation(); }
// attributes
@@ -2430,9 +2440,9 @@ public:
: headers(headers), members(members)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{
if (headers)
return headers->firstSourceLocation();
@@ -2441,7 +2451,7 @@ public:
return SourceLocation();
}
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{
if (members)
return members->lastSourceLocation();
@@ -2472,12 +2482,12 @@ public:
previous->next = this;
}
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return member->firstSourceLocation(); }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return next ? next->lastSourceLocation() : member->lastSourceLocation(); }
UiArrayMemberList *finish()
@@ -2502,12 +2512,12 @@ public:
: members(members)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return lbraceToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return rbraceToken; }
// attributes
@@ -2533,12 +2543,12 @@ public:
previous->next = this;
}
- virtual void accept0(Visitor *) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return propertyTypeToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return next ? next->lastSourceLocation() : identifierToken; }
inline UiParameterList *finish ()
@@ -2573,9 +2583,9 @@ public:
: type(Property), memberType(memberType), name(name), statement(statement), binding(0), isDefaultMember(false), isReadonlyMember(false), parameters(0)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{
if (defaultToken.isValid())
return defaultToken;
@@ -2585,7 +2595,7 @@ public:
return propertyToken;
}
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{
if (binding)
return binding->lastSourceLocation();
@@ -2625,12 +2635,12 @@ public:
: qualifiedTypeNameId(qualifiedTypeNameId), initializer(initializer)
{ kind = K; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return qualifiedTypeNameId->identifierToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return initializer->rbraceToken; }
// attributes
@@ -2647,7 +2657,7 @@ public:
: sourceElement(sourceElement)
{ kind = K; }
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{
if (FunctionDeclaration *funDecl = cast<FunctionDeclaration *>(sourceElement))
return funDecl->firstSourceLocation();
@@ -2657,7 +2667,7 @@ public:
return SourceLocation();
}
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{
if (FunctionDeclaration *funDecl = cast<FunctionDeclaration *>(sourceElement))
return funDecl->lastSourceLocation();
@@ -2667,7 +2677,7 @@ public:
return SourceLocation();
}
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
// attributes
@@ -2688,7 +2698,7 @@ public:
hasOnToken(false)
{ kind = K; }
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{
if (hasOnToken && qualifiedTypeNameId)
return qualifiedTypeNameId->identifierToken;
@@ -2696,10 +2706,10 @@ public:
return qualifiedId->identifierToken;
}
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return initializer->rbraceToken; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
// attributes
@@ -2721,13 +2731,13 @@ public:
statement(statement)
{ kind = K; }
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return qualifiedId->identifierToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return statement->lastSourceLocation(); }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
// attributes
UiQualifiedId *qualifiedId;
@@ -2746,13 +2756,13 @@ public:
members(members)
{ kind = K; }
- virtual SourceLocation firstSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation firstSourceLocation() const
{ return qualifiedId->identifierToken; }
- virtual SourceLocation lastSourceLocation() const Q_DECL_OVERRIDE
+ virtual SourceLocation lastSourceLocation() const
{ return rbracketToken; }
- virtual void accept0(Visitor *visitor) Q_DECL_OVERRIDE;
+ virtual void accept0(Visitor *visitor);
// attributes
UiQualifiedId *qualifiedId;
diff --git a/src/tools/qdoc/qmlparser/qqmljsastfwd_p.h b/src/tools/qdoc/qmlparser/qqmljsastfwd_p.h
index c4cb59293d..eae4125ab2 100644
--- a/src/tools/qdoc/qmlparser/qqmljsastfwd_p.h
+++ b/src/tools/qdoc/qmlparser/qqmljsastfwd_p.h
@@ -56,7 +56,7 @@ namespace QQmlJS { namespace AST {
class SourceLocation
{
public:
- SourceLocation(quint32 offset = 0, quint32 length = 0, quint32 line = 0, quint32 column = 0)
+ explicit SourceLocation(quint32 offset = 0, quint32 length = 0, quint32 line = 0, quint32 column = 0)
: offset(offset), length(length),
startLine(line), startColumn(column)
{ }
diff --git a/src/tools/qdoc/qmlparser/qqmljsengine_p.cpp b/src/tools/qdoc/qmlparser/qqmljsengine_p.cpp
index faf05f71f1..1c0a70a372 100644
--- a/src/tools/qdoc/qmlparser/qqmljsengine_p.cpp
+++ b/src/tools/qdoc/qmlparser/qqmljsengine_p.cpp
@@ -114,7 +114,7 @@ double integerFromString(const QString &str, int radix)
Engine::Engine()
- : _lexer(0)
+ : _lexer(0), _directives(0)
{ }
Engine::~Engine()
@@ -135,6 +135,12 @@ Lexer *Engine::lexer() const
void Engine::setLexer(Lexer *lexer)
{ _lexer = lexer; }
+Directives *Engine::directives() const
+{ return _directives; }
+
+void Engine::setDirectives(Directives *directives)
+{ _directives = directives; }
+
MemoryPool *Engine::pool()
{ return &_pool; }
diff --git a/src/tools/qdoc/qmlparser/qqmljsengine_p.h b/src/tools/qdoc/qmlparser/qqmljsengine_p.h
index 210797ffcd..fb65d7f028 100644
--- a/src/tools/qdoc/qmlparser/qqmljsengine_p.h
+++ b/src/tools/qdoc/qmlparser/qqmljsengine_p.h
@@ -57,6 +57,7 @@ QT_QML_BEGIN_NAMESPACE
namespace QQmlJS {
class Lexer;
+class Directives;
class MemoryPool;
class QML_PARSER_EXPORT DiagnosticMessage
@@ -84,6 +85,7 @@ public:
class QML_PARSER_EXPORT Engine
{
Lexer *_lexer;
+ Directives *_directives;
MemoryPool _pool;
QList<AST::SourceLocation> _comments;
QString _extraCode;
@@ -102,6 +104,9 @@ public:
Lexer *lexer() const;
void setLexer(Lexer *lexer);
+ Directives *directives() const;
+ void setDirectives(Directives *directives);
+
MemoryPool *pool();
inline QStringRef midRef(int position, int size) { return _code.midRef(position, size); }
diff --git a/src/tools/qdoc/qmlparser/qqmljsglobal_p.h b/src/tools/qdoc/qmlparser/qqmljsglobal_p.h
index c9b5b4c5b4..fe2cbe7d1d 100644
--- a/src/tools/qdoc/qmlparser/qqmljsglobal_p.h
+++ b/src/tools/qdoc/qmlparser/qqmljsglobal_p.h
@@ -33,17 +33,6 @@
#ifndef QQMLJSGLOBAL_P_H
#define QQMLJSGLOBAL_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 <QtCore/qglobal.h>
#ifdef QT_CREATOR
@@ -65,9 +54,9 @@
// QmlDevTools is a static library
# define QML_PARSER_EXPORT
# elif defined(QT_BUILD_QML_LIB)
-# define QML_PARSER_EXPORT Q_AUTOTEST_EXPORT
+# define QML_PARSER_EXPORT Q_DECL_EXPORT
# else
-# define QML_PARSER_EXPORT
+# define QML_PARSER_EXPORT Q_DECL_IMPORT
# endif
#endif // QT_CREATOR
diff --git a/src/tools/qdoc/qmlparser/qqmljslexer.cpp b/src/tools/qdoc/qmlparser/qqmljslexer.cpp
index 69dcb15794..62748ef10d 100644
--- a/src/tools/qdoc/qmlparser/qqmljslexer.cpp
+++ b/src/tools/qdoc/qmlparser/qqmljslexer.cpp
@@ -887,8 +887,7 @@ again:
int Lexer::scanNumber(QChar ch)
{
if (ch != QLatin1Char('0')) {
- QByteArray buf;
- buf.reserve(64);
+ QVarLengthArray<char, 64> buf;
buf += ch.toLatin1();
QChar n = _char;
@@ -1225,12 +1224,60 @@ bool Lexer::canInsertAutomaticSemicolon(int token) const
|| _followsClosingBrace;
}
-bool Lexer::scanDirectives(Directives *directives)
+static const int uriTokens[] = {
+ QQmlJSGrammar::T_IDENTIFIER,
+ QQmlJSGrammar::T_PROPERTY,
+ QQmlJSGrammar::T_SIGNAL,
+ QQmlJSGrammar::T_READONLY,
+ QQmlJSGrammar::T_ON,
+ QQmlJSGrammar::T_BREAK,
+ QQmlJSGrammar::T_CASE,
+ QQmlJSGrammar::T_CATCH,
+ QQmlJSGrammar::T_CONTINUE,
+ QQmlJSGrammar::T_DEFAULT,
+ QQmlJSGrammar::T_DELETE,
+ QQmlJSGrammar::T_DO,
+ QQmlJSGrammar::T_ELSE,
+ QQmlJSGrammar::T_FALSE,
+ QQmlJSGrammar::T_FINALLY,
+ QQmlJSGrammar::T_FOR,
+ QQmlJSGrammar::T_FUNCTION,
+ QQmlJSGrammar::T_IF,
+ QQmlJSGrammar::T_IN,
+ QQmlJSGrammar::T_INSTANCEOF,
+ QQmlJSGrammar::T_NEW,
+ QQmlJSGrammar::T_NULL,
+ QQmlJSGrammar::T_RETURN,
+ QQmlJSGrammar::T_SWITCH,
+ QQmlJSGrammar::T_THIS,
+ QQmlJSGrammar::T_THROW,
+ QQmlJSGrammar::T_TRUE,
+ QQmlJSGrammar::T_TRY,
+ QQmlJSGrammar::T_TYPEOF,
+ QQmlJSGrammar::T_VAR,
+ QQmlJSGrammar::T_VOID,
+ QQmlJSGrammar::T_WHILE,
+ QQmlJSGrammar::T_CONST,
+ QQmlJSGrammar::T_DEBUGGER,
+ QQmlJSGrammar::T_RESERVED_WORD,
+ QQmlJSGrammar::T_WITH,
+
+ QQmlJSGrammar::EOF_SYMBOL
+};
+static inline bool isUriToken(int token)
{
- if (_qmlMode) {
- // the directives are a Javascript-only extension.
- return false;
+ const int *current = uriTokens;
+ while (*current != QQmlJSGrammar::EOF_SYMBOL) {
+ if (*current == token)
+ return true;
+ ++current;
}
+ return false;
+}
+
+bool Lexer::scanDirectives(Directives *directives, DiagnosticMessage *error)
+{
+ Q_ASSERT(!_qmlMode);
lex(); // fetch the first token
@@ -1238,24 +1285,33 @@ bool Lexer::scanDirectives(Directives *directives)
return true;
do {
- lex(); // skip T_DOT
-
const int lineNumber = tokenStartLine();
+ const int column = tokenStartColumn();
+
+ lex(); // skip T_DOT
if (! (_tokenKind == T_IDENTIFIER || _tokenKind == T_RESERVED_WORD))
- return false; // expected a valid QML/JS directive
+ return true; // expected a valid QML/JS directive
const QString directiveName = tokenText();
if (! (directiveName == QLatin1String("pragma") ||
- directiveName == QLatin1String("import")))
+ directiveName == QLatin1String("import"))) {
+ error->message = QCoreApplication::translate("QQmlParser", "Syntax error");
+ error->loc.startLine = tokenStartLine();
+ error->loc.startColumn = tokenStartColumn();
return false; // not a valid directive name
+ }
// it must be a pragma or an import directive.
if (directiveName == QLatin1String("pragma")) {
// .pragma library
- if (! (lex() == T_IDENTIFIER && tokenText() == QLatin1String("library")))
+ if (! (lex() == T_IDENTIFIER && tokenText() == QLatin1String("library"))) {
+ error->message = QCoreApplication::translate("QQmlParser", "Syntax error");
+ error->loc.startLine = tokenStartLine();
+ error->loc.startColumn = tokenStartColumn();
return false; // expected `library
+ }
// we found a .pragma library directive
directives->pragmaLibrary();
@@ -1274,22 +1330,53 @@ bool Lexer::scanDirectives(Directives *directives)
fileImport = true;
pathOrUri = tokenText();
+ if (!pathOrUri.endsWith(QLatin1String("js"))) {
+ error->message = QCoreApplication::translate("QQmlParser","Imported file must be a script");
+ error->loc.startLine = tokenStartLine();
+ error->loc.startColumn = tokenStartColumn();
+ return false;
+ }
+
} else if (_tokenKind == T_IDENTIFIER) {
// .import T_IDENTIFIER (. T_IDENTIFIER)* T_NUMERIC_LITERAL as T_IDENTIFIER
- pathOrUri = tokenText();
+ while (true) {
+ if (!isUriToken(_tokenKind)) {
+ error->message = QCoreApplication::translate("QQmlParser","Invalid module URI");
+ error->loc.startLine = tokenStartLine();
+ error->loc.startColumn = tokenStartColumn();
+ return false;
+ }
- lex(); // skip the first T_IDENTIFIER
- for (; _tokenKind == T_DOT; lex()) {
- if (lex() != T_IDENTIFIER)
+ pathOrUri.append(tokenText());
+
+ lex();
+ if (tokenStartLine() != lineNumber) {
+ error->message = QCoreApplication::translate("QQmlParser","Invalid module URI");
+ error->loc.startLine = tokenStartLine();
+ error->loc.startColumn = tokenStartColumn();
return false;
+ }
+ if (_tokenKind != QQmlJSGrammar::T_DOT)
+ break;
+
+ pathOrUri.append(QLatin1Char('.'));
- pathOrUri += QLatin1Char('.');
- pathOrUri += tokenText();
+ lex();
+ if (tokenStartLine() != lineNumber) {
+ error->message = QCoreApplication::translate("QQmlParser","Invalid module URI");
+ error->loc.startLine = tokenStartLine();
+ error->loc.startColumn = tokenStartColumn();
+ return false;
+ }
}
- if (_tokenKind != T_NUMERIC_LITERAL)
+ if (_tokenKind != T_NUMERIC_LITERAL) {
+ error->message = QCoreApplication::translate("QQmlParser","Module import requires a version");
+ error->loc.startLine = tokenStartLine();
+ error->loc.startColumn = tokenStartColumn();
return false; // expected the module version number
+ }
version = tokenText();
}
@@ -1297,22 +1384,51 @@ bool Lexer::scanDirectives(Directives *directives)
//
// recognize the mandatory `as' followed by the module name
//
- if (! (lex() == T_IDENTIFIER && tokenText() == QLatin1String("as")))
+ if (! (lex() == T_IDENTIFIER && tokenText() == QLatin1String("as") && tokenStartLine() == lineNumber)) {
+ if (fileImport)
+ error->message = QCoreApplication::translate("QQmlParser", "File import requires a qualifier");
+ else
+ error->message = QCoreApplication::translate("QQmlParser", "Module import requires a qualifier");
+ if (tokenStartLine() != lineNumber) {
+ error->loc.startLine = lineNumber;
+ error->loc.startColumn = column;
+ } else {
+ error->loc.startLine = tokenStartLine();
+ error->loc.startColumn = tokenStartColumn();
+ }
return false; // expected `as'
+ }
- if (lex() != T_IDENTIFIER)
+ if (lex() != T_IDENTIFIER || tokenStartLine() != lineNumber) {
+ if (fileImport)
+ error->message = QCoreApplication::translate("QQmlParser", "File import requires a qualifier");
+ else
+ error->message = QCoreApplication::translate("QQmlParser", "Module import requires a qualifier");
+ error->loc.startLine = tokenStartLine();
+ error->loc.startColumn = tokenStartColumn();
return false; // expected module name
+ }
const QString module = tokenText();
+ if (!module.at(0).isUpper()) {
+ error->message = QCoreApplication::translate("QQmlParser","Invalid import qualifier");
+ error->loc.startLine = tokenStartLine();
+ error->loc.startColumn = tokenStartColumn();
+ return false;
+ }
if (fileImport)
- directives->importFile(pathOrUri, module);
+ directives->importFile(pathOrUri, module, lineNumber, column);
else
- directives->importModule(pathOrUri, version, module);
+ directives->importModule(pathOrUri, version, module, lineNumber, column);
}
- if (tokenStartLine() != lineNumber)
+ if (tokenStartLine() != lineNumber) {
+ error->message = QCoreApplication::translate("QQmlParser", "Syntax error");
+ error->loc.startLine = tokenStartLine();
+ error->loc.startColumn = tokenStartColumn();
return false; // the directives cannot span over multiple lines
+ }
// fetch the first token after the .pragma/.import directive
lex();
diff --git a/src/tools/qdoc/qmlparser/qqmljslexer_p.h b/src/tools/qdoc/qmlparser/qqmljslexer_p.h
index 20f4b42b8d..427affe4b9 100644
--- a/src/tools/qdoc/qmlparser/qqmljslexer_p.h
+++ b/src/tools/qdoc/qmlparser/qqmljslexer_p.h
@@ -55,6 +55,7 @@ QT_QML_BEGIN_NAMESPACE
namespace QQmlJS {
class Engine;
+class DiagnosticMessage;
class QML_PARSER_EXPORT Directives {
public:
@@ -64,17 +65,21 @@ public:
{
}
- virtual void importFile(const QString &jsfile, const QString &module)
+ virtual void importFile(const QString &jsfile, const QString &module, int line, int column)
{
Q_UNUSED(jsfile);
Q_UNUSED(module);
+ Q_UNUSED(line);
+ Q_UNUSED(column);
}
- virtual void importModule(const QString &uri, const QString &version, const QString &module)
+ virtual void importModule(const QString &uri, const QString &version, const QString &module, int line, int column)
{
Q_UNUSED(uri);
Q_UNUSED(version);
Q_UNUSED(module);
+ Q_UNUSED(line);
+ Q_UNUSED(column);
}
};
@@ -146,7 +151,7 @@ public:
int lex();
bool scanRegExp(RegExpBodyPrefix prefix = NoPrefix);
- bool scanDirectives(Directives *directives);
+ bool scanDirectives(Directives *directives, DiagnosticMessage *error);
int regExpFlags() const { return _patternFlags; }
QString regExpPattern() const { return _tokenText; }
diff --git a/src/tools/qdoc/qmlparser/qqmljsmemorypool_p.h b/src/tools/qdoc/qmlparser/qqmljsmemorypool_p.h
index f8bb70c54c..16927251c7 100644
--- a/src/tools/qdoc/qmlparser/qqmljsmemorypool_p.h
+++ b/src/tools/qdoc/qmlparser/qqmljsmemorypool_p.h
@@ -57,6 +57,8 @@ QT_QML_BEGIN_NAMESPACE
namespace QQmlJS {
+class Managed;
+
class QML_PARSER_EXPORT MemoryPool : public QSharedData
{
MemoryPool(const MemoryPool &other);
@@ -100,6 +102,30 @@ public:
_ptr = _end = 0;
}
+ template <typename _Tp> _Tp *New() { return new (this->allocate(sizeof(_Tp))) _Tp(); }
+
+ template <typename PoolContentType, typename Visitor>
+ void visitManagedPool(Visitor &visitor)
+ {
+ for (int i = 0; i <= _blockCount; ++i) {
+ char *p = _blocks[i];
+ char *end = p + BLOCK_SIZE;
+ if (i == _blockCount) {
+ Q_ASSERT(_ptr <= end);
+ end = _ptr;
+ }
+
+ Q_ASSERT(p <= end);
+
+ const qptrdiff increment = (sizeof(PoolContentType) + 7) & ~7;
+
+ while (p + increment <= end) {
+ visitor(reinterpret_cast<PoolContentType*>(p));
+ p += increment;
+ }
+ }
+ }
+
private:
void *allocate_helper(size_t size)
{
diff --git a/src/tools/qdoc/qmlparser/qqmljsparser.cpp b/src/tools/qdoc/qmlparser/qqmljsparser.cpp
index 44279260d7..520c377034 100644
--- a/src/tools/qdoc/qmlparser/qqmljsparser.cpp
+++ b/src/tools/qdoc/qmlparser/qqmljsparser.cpp
@@ -161,7 +161,24 @@ bool Parser::parse(int startToken)
token_buffer[0].token = startToken;
first_token = &token_buffer[0];
- last_token = &token_buffer[1];
+ if (startToken == T_FEED_JS_PROGRAM && !lexer->qmlMode()) {
+ Directives ignoreDirectives;
+ Directives *directives = driver->directives();
+ if (!directives)
+ directives = &ignoreDirectives;
+ DiagnosticMessage error;
+ if (!lexer->scanDirectives(directives, &error)) {
+ diagnostic_messages.append(error);
+ return false;
+ }
+ token_buffer[1].token = lexer->tokenKind();
+ token_buffer[1].dval = lexer->tokenValue();
+ token_buffer[1].loc = location(lexer);
+ token_buffer[1].spell = lexer->tokenSpell();
+ last_token = &token_buffer[2];
+ } else {
+ last_token = &token_buffer[1];
+ }
tos = -1;
program = 0;
diff --git a/src/tools/qdoc/qmlvisitor.cpp b/src/tools/qdoc/qmlvisitor.cpp
index 6179e80085..190c9f0444 100644
--- a/src/tools/qdoc/qmlvisitor.cpp
+++ b/src/tools/qdoc/qmlvisitor.cpp
@@ -42,6 +42,7 @@
#include "codeparser.h"
#include "qmlvisitor.h"
#include "qdocdatabase.h"
+#include "tokenizer.h"
QT_BEGIN_NAMESPACE
@@ -146,6 +147,29 @@ QQmlJS::AST::SourceLocation QmlDocVisitor::precedingComment(quint32 offset) cons
return QQmlJS::AST::SourceLocation();
}
+class QmlSignatureParser
+{
+ public:
+ QmlSignatureParser(FunctionNode* func, const QString& signature, const Location& loc);
+ void readToken() { tok_ = tokenizer_->getToken(); }
+ QString lexeme() { return tokenizer_->lexeme(); }
+ QString previousLexeme() { return tokenizer_->previousLexeme(); }
+
+ bool match(int target);
+ bool matchDataType(CodeChunk* dataType, QString* var);
+ bool matchParameter();
+ bool matchFunctionDecl();
+
+ private:
+ QString signature_;
+ QStringList names_;
+ QString funcName_;
+ Tokenizer* tokenizer_;
+ int tok_;
+ FunctionNode* func_;
+ const Location& location_;
+};
+
/*!
Finds the nearest unused qdoc comment above the QML entity
represented by the \a node and processes the qdoc commands
@@ -216,6 +240,13 @@ bool QmlDocVisitor::applyDocumentation(QQmlJS::AST::SourceLocation location, Nod
else
qDebug() << " FAILED TO PARSE QML OR JS PROPERTY:" << topic << args;
}
+ else if ((topic == COMMAND_QMLMETHOD) || (topic == COMMAND_QMLATTACHEDMETHOD) ||
+ (topic == COMMAND_JSMETHOD) || (topic == COMMAND_JSATTACHEDMETHOD)) {
+ if (node->isFunction()) {
+ FunctionNode* fn = static_cast<FunctionNode*>(node);
+ QmlSignatureParser qsp(fn, args, doc.location());
+ }
+ }
}
}
for (int i=0; i<nodes.size(); ++i)
@@ -232,6 +263,174 @@ bool QmlDocVisitor::applyDocumentation(QQmlJS::AST::SourceLocation location, Nod
return false;
}
+QmlSignatureParser::QmlSignatureParser(FunctionNode* func, const QString& signature, const Location& loc)
+ : signature_(signature), func_(func), location_(loc)
+{
+ QByteArray latin1 = signature.toLatin1();
+ Tokenizer stringTokenizer(location_, latin1);
+ stringTokenizer.setParsingFnOrMacro(true);
+ tokenizer_ = &stringTokenizer;
+ readToken();
+ matchFunctionDecl();
+}
+
+/*!
+ If the current token matches \a target, read the next
+ token and return true. Otherwise, don't read the next
+ token, and return false.
+ */
+bool QmlSignatureParser::match(int target)
+{
+ if (tok_ == target) {
+ readToken();
+ return true;
+ }
+ return false;
+}
+
+/*!
+ Parse a QML data type into \a dataType and an optional
+ variable name into \a var.
+ */
+bool QmlSignatureParser::matchDataType(CodeChunk* dataType, QString* var)
+{
+ /*
+ This code is really hard to follow... sorry. The loop is there to match
+ Alpha::Beta::Gamma::...::Omega.
+ */
+ for (;;) {
+ bool virgin = true;
+
+ if (tok_ != Tok_Ident) {
+ while (match(Tok_signed) ||
+ match(Tok_unsigned) ||
+ match(Tok_short) ||
+ match(Tok_long) ||
+ match(Tok_int64)) {
+ dataType->append(previousLexeme());
+ virgin = false;
+ }
+ }
+
+ if (virgin) {
+ if (match(Tok_Ident)) {
+ dataType->append(previousLexeme());
+ }
+ else if (match(Tok_void) ||
+ match(Tok_int) ||
+ match(Tok_char) ||
+ match(Tok_double) ||
+ match(Tok_Ellipsis))
+ dataType->append(previousLexeme());
+ else
+ return false;
+ }
+ else if (match(Tok_int) ||
+ match(Tok_char) ||
+ match(Tok_double)) {
+ dataType->append(previousLexeme());
+ }
+
+ if (match(Tok_Gulbrandsen))
+ dataType->append(previousLexeme());
+ else
+ break;
+ }
+
+ while (match(Tok_Ampersand) ||
+ match(Tok_Aster) ||
+ match(Tok_const) ||
+ match(Tok_Caret))
+ dataType->append(previousLexeme());
+
+ /*
+ The usual case: Look for an optional identifier, then for
+ some array brackets.
+ */
+ dataType->appendHotspot();
+
+ if ((var != 0) && match(Tok_Ident))
+ *var = previousLexeme();
+
+ if (tok_ == Tok_LeftBracket) {
+ int bracketDepth0 = tokenizer_->bracketDepth();
+ while ((tokenizer_->bracketDepth() >= bracketDepth0 && tok_ != Tok_Eoi) ||
+ tok_ == Tok_RightBracket) {
+ dataType->append(lexeme());
+ readToken();
+ }
+ }
+ return true;
+}
+
+bool QmlSignatureParser::matchParameter()
+{
+ QString name;
+ CodeChunk dataType;
+ CodeChunk defaultValue;
+
+ bool result = matchDataType(&dataType, &name);
+ if (name.isEmpty()) {
+ name = dataType.toString();
+ dataType.clear();
+ }
+
+ if (!result)
+ return false;
+ if (match(Tok_Equal)) {
+ int parenDepth0 = tokenizer_->parenDepth();
+ while (tokenizer_->parenDepth() >= parenDepth0 &&
+ (tok_ != Tok_Comma ||
+ tokenizer_->parenDepth() > parenDepth0) &&
+ tok_ != Tok_Eoi) {
+ defaultValue.append(lexeme());
+ readToken();
+ }
+ }
+ func_->addParameter(Parameter(dataType.toString(), "", name, defaultValue.toString()));
+ return true;
+}
+
+bool QmlSignatureParser::matchFunctionDecl()
+{
+ CodeChunk returnType;
+
+ int firstBlank = signature_.indexOf(QChar(' '));
+ int leftParen = signature_.indexOf(QChar('('));
+ if ((firstBlank > 0) && (leftParen - firstBlank) > 1) {
+ if (!matchDataType(&returnType, 0))
+ return false;
+ }
+
+ while (match(Tok_Ident)) {
+ names_.append(previousLexeme());
+ if (!match(Tok_Gulbrandsen)) {
+ funcName_ = previousLexeme();
+ names_.pop_back();
+ break;
+ }
+ }
+
+ if (tok_ != Tok_LeftParen)
+ return false;
+
+ readToken();
+
+ func_->setLocation(location_);
+ func_->setReturnType(returnType.toString());
+
+ if (tok_ != Tok_RightParen) {
+ func_->clearParams();
+ do {
+ if (!matchParameter())
+ return false;
+ } while (match(Tok_Comma));
+ }
+ if (!match(Tok_RightParen))
+ return false;
+ return true;
+}
+
/*!
A QML property argument has the form...
diff --git a/src/tools/qdoc/tree.cpp b/src/tools/qdoc/tree.cpp
index 6393ad4e6f..d36003c665 100644
--- a/src/tools/qdoc/tree.cpp
+++ b/src/tools/qdoc/tree.cpp
@@ -178,7 +178,7 @@ FunctionNode* Tree::findFunctionNode(const QStringList& parentPath, const Functi
parent = findNode(parentPath, 0, 0, Node::DontCare);
if (parent == 0 || !parent->isInnerNode())
return 0;
- return ((InnerNode*)parent)->findFunctionNode(clone);
+ return ((const InnerNode*)parent)->findFunctionNode(clone);
}
@@ -249,9 +249,9 @@ const FunctionNode* Tree::findFunctionNode(const QStringList& path,
const Node* next;
if (i == path.size() - 1)
- next = ((InnerNode*) node)->findFunctionNode(path.at(i));
+ next = ((const InnerNode*) node)->findFunctionNode(path.at(i));
else
- next = ((InnerNode*) node)->findChildNode(path.at(i), genus);
+ next = ((const InnerNode*) node)->findChildNode(path.at(i), genus);
if (!next && node->isClass() && (findFlags & SearchBaseClasses)) {
NodeList baseClasses = allBaseClasses(static_cast<const ClassNode*>(node));