diff options
author | Lars Knoll <lars.knoll@qt.io> | 2018-06-06 15:32:16 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2018-06-15 12:55:36 +0000 |
commit | 1ca3602f1c4492c1d723f53ae651e4306c9a45c4 (patch) | |
tree | 6e1d6e28f2a7b63a03df8fd85b269c41b2754e5c /src/qdoc | |
parent | 22265a4b0da495f88d407bb970573433f1a7f8f5 (diff) |
Compile qdoc with new JS parser
It compiles this way, but might not generate output that
is fully correct in all cases.
Task-number: QTBUG-67974
Change-Id: Ib4017a9b6b890295fa982753c766946bcadd3652
Reviewed-by: Martin Smith <martin.smith@qt.io>
Diffstat (limited to 'src/qdoc')
-rw-r--r-- | src/qdoc/qdoc.pro | 1 | ||||
-rw-r--r-- | src/qdoc/qmlmarkupvisitor.cpp | 64 | ||||
-rw-r--r-- | src/qdoc/qmlmarkupvisitor.h | 13 | ||||
-rw-r--r-- | src/qdoc/qmlvisitor.cpp | 2 |
4 files changed, 21 insertions, 59 deletions
diff --git a/src/qdoc/qdoc.pro b/src/qdoc/qdoc.pro index c88074a66..cdfda190f 100644 --- a/src/qdoc/qdoc.pro +++ b/src/qdoc/qdoc.pro @@ -10,7 +10,6 @@ qtHaveModule(qmldevtools-private) { } else { DEFINES += QT_NO_DECLARATIVE } -DEFINES += QT_NO_DECLARATIVE LIBS += $$CLANG_LIBS !contains(QMAKE_DEFAULT_INCDIRS, $$CLANG_INCLUDEPATH): INCLUDEPATH += $$CLANG_INCLUDEPATH diff --git a/src/qdoc/qmlmarkupvisitor.cpp b/src/qdoc/qmlmarkupvisitor.cpp index cde70e973..7fd6e7c28 100644 --- a/src/qdoc/qmlmarkupvisitor.cpp +++ b/src/qdoc/qmlmarkupvisitor.cpp @@ -362,7 +362,7 @@ bool QmlMarkupVisitor::visit(QQmlJS::AST::RegExpLiteral *literal) return true; } -bool QmlMarkupVisitor::visit(QQmlJS::AST::ArrayLiteral *literal) +bool QmlMarkupVisitor::visit(QQmlJS::AST::ArrayPattern *literal) { addVerbatim(literal->lbracketToken); QQmlJS::AST::Node::accept(literal->elements, this); @@ -370,22 +370,22 @@ bool QmlMarkupVisitor::visit(QQmlJS::AST::ArrayLiteral *literal) return false; } -bool QmlMarkupVisitor::visit(QQmlJS::AST::ObjectLiteral *literal) +bool QmlMarkupVisitor::visit(QQmlJS::AST::ObjectPattern *literal) { addVerbatim(literal->lbraceToken); return true; } -void QmlMarkupVisitor::endVisit(QQmlJS::AST::ObjectLiteral *literal) +void QmlMarkupVisitor::endVisit(QQmlJS::AST::ObjectPattern *literal) { addVerbatim(literal->rbraceToken); } -bool QmlMarkupVisitor::visit(QQmlJS::AST::ElementList *list) +bool QmlMarkupVisitor::visit(QQmlJS::AST::PatternElementList *list) { - for (QQmlJS::AST::ElementList *it = list; it; it = it->next) { - QQmlJS::AST::Node::accept(it->expression, this); + for (QQmlJS::AST::PatternElementList *it = list; it; it = it->next) { + QQmlJS::AST::Node::accept(it->element, this); //addVerbatim(it->commaToken); } QQmlJS::AST::Node::accept(list->elision, this); @@ -398,12 +398,12 @@ bool QmlMarkupVisitor::visit(QQmlJS::AST::Elision *elision) return true; } -bool QmlMarkupVisitor::visit(QQmlJS::AST::PropertyNameAndValue *list) +bool QmlMarkupVisitor::visit(QQmlJS::AST::PatternProperty *list) { QQmlJS::AST::Node::accept(list->name, this); addVerbatim(list->colonToken, list->colonToken); - QQmlJS::AST::Node::accept(list->value, this); - addVerbatim(list->commaToken, list->commaToken); + QQmlJS::AST::Node::accept(list->initializer, this); + //addVerbatim(list->commaToken, list->commaToken); return false; } @@ -553,7 +553,7 @@ bool QmlMarkupVisitor::visit(QQmlJS::AST::VariableStatement *statement) { addVerbatim(statement->declarationKindToken); QQmlJS::AST::Node::accept(statement->declarations, this); - addVerbatim(statement->semicolonToken); + //addVerbatim(statement->semicolonToken); return false; } @@ -566,13 +566,6 @@ bool QmlMarkupVisitor::visit(QQmlJS::AST::VariableDeclarationList *list) return false; } -bool QmlMarkupVisitor::visit(QQmlJS::AST::VariableDeclaration *declaration) -{ - addMarkedUpToken(declaration->identifierToken, QLatin1String("name")); - QQmlJS::AST::Node::accept(declaration->expression, this); - return false; -} - bool QmlMarkupVisitor::visit(QQmlJS::AST::EmptyStatement *statement) { addVerbatim(statement->semicolonToken); @@ -636,40 +629,12 @@ bool QmlMarkupVisitor::visit(QQmlJS::AST::ForStatement *statement) return false; } -bool QmlMarkupVisitor::visit(QQmlJS::AST::LocalForStatement *statement) -{ - addMarkedUpToken(statement->forToken, QLatin1String("keyword")); - addVerbatim(statement->lparenToken); - addMarkedUpToken(statement->varToken, QLatin1String("keyword")); - QQmlJS::AST::Node::accept(statement->declarations, this); - addVerbatim(statement->firstSemicolonToken); - QQmlJS::AST::Node::accept(statement->condition, this); - addVerbatim(statement->secondSemicolonToken); - QQmlJS::AST::Node::accept(statement->expression, this); - addVerbatim(statement->rparenToken); - QQmlJS::AST::Node::accept(statement->statement, this); - return false; -} - bool QmlMarkupVisitor::visit(QQmlJS::AST::ForEachStatement *statement) { addMarkedUpToken(statement->forToken, QLatin1String("keyword")); addVerbatim(statement->lparenToken); - QQmlJS::AST::Node::accept(statement->initialiser, this); - addVerbatim(statement->inToken); - QQmlJS::AST::Node::accept(statement->expression, this); - addVerbatim(statement->rparenToken); - QQmlJS::AST::Node::accept(statement->statement, this); - return false; -} - -bool QmlMarkupVisitor::visit(QQmlJS::AST::LocalForEachStatement *statement) -{ - addMarkedUpToken(statement->forToken, QLatin1String("keyword")); - addVerbatim(statement->lparenToken); - addMarkedUpToken(statement->varToken, QLatin1String("keyword")); - QQmlJS::AST::Node::accept(statement->declaration, this); - addVerbatim(statement->inToken); + QQmlJS::AST::Node::accept(statement->lhs, this); + addVerbatim(statement->inOfToken); QQmlJS::AST::Node::accept(statement->expression, this); addVerbatim(statement->rparenToken); QQmlJS::AST::Node::accept(statement->statement, this); @@ -817,8 +782,9 @@ bool QmlMarkupVisitor::visit(QQmlJS::AST::FunctionDeclaration *declaration) bool QmlMarkupVisitor::visit(QQmlJS::AST::FormalParameterList *list) { - addVerbatim(list->commaToken); - addMarkedUpToken(list->identifierToken, QLatin1String("name")); +// addVerbatim(list->commaToken); + QQmlJS::AST::Node::accept(list->element, this); + //addMarkedUpToken(list->identifierToken, QLatin1String("name")); return false; } diff --git a/src/qdoc/qmlmarkupvisitor.h b/src/qdoc/qmlmarkupvisitor.h index ee61bf0be..e01bf0e5d 100644 --- a/src/qdoc/qmlmarkupvisitor.h +++ b/src/qdoc/qmlmarkupvisitor.h @@ -79,14 +79,14 @@ public: bool visit(QQmlJS::AST::NumericLiteral *) override; bool visit(QQmlJS::AST::StringLiteral *) override; bool visit(QQmlJS::AST::RegExpLiteral *) override; - bool visit(QQmlJS::AST::ArrayLiteral *) override; + bool visit(QQmlJS::AST::ArrayPattern *) override; - bool visit(QQmlJS::AST::ObjectLiteral *) override; - void endVisit(QQmlJS::AST::ObjectLiteral *) override; + bool visit(QQmlJS::AST::ObjectPattern *) override; + void endVisit(QQmlJS::AST::ObjectPattern *) override; - bool visit(QQmlJS::AST::ElementList *) override; + bool visit(QQmlJS::AST::PatternElementList *) override; bool visit(QQmlJS::AST::Elision *) override; - bool visit(QQmlJS::AST::PropertyNameAndValue *) override; + bool visit(QQmlJS::AST::PatternProperty *) override; bool visit(QQmlJS::AST::ArrayMemberExpression *) override; bool visit(QQmlJS::AST::FieldMemberExpression *) override; bool visit(QQmlJS::AST::NewMemberExpression *) override; @@ -112,16 +112,13 @@ public: bool visit(QQmlJS::AST::VariableStatement *) override; bool visit(QQmlJS::AST::VariableDeclarationList *) override; - bool visit(QQmlJS::AST::VariableDeclaration *) override; bool visit(QQmlJS::AST::EmptyStatement *) override; bool visit(QQmlJS::AST::ExpressionStatement *) override; bool visit(QQmlJS::AST::IfStatement *) override; bool visit(QQmlJS::AST::DoWhileStatement *) override; bool visit(QQmlJS::AST::WhileStatement *) override; bool visit(QQmlJS::AST::ForStatement *) override; - bool visit(QQmlJS::AST::LocalForStatement *) override; bool visit(QQmlJS::AST::ForEachStatement *) override; - bool visit(QQmlJS::AST::LocalForEachStatement *) override; bool visit(QQmlJS::AST::ContinueStatement *) override; bool visit(QQmlJS::AST::BreakStatement *) override; bool visit(QQmlJS::AST::ReturnStatement *) override; diff --git a/src/qdoc/qmlvisitor.cpp b/src/qdoc/qmlvisitor.cpp index 9ebf422cf..17391ca20 100644 --- a/src/qdoc/qmlvisitor.cpp +++ b/src/qdoc/qmlvisitor.cpp @@ -781,7 +781,7 @@ bool QmlDocVisitor::visit(QQmlJS::AST::FunctionDeclaration* fd) if (formals) { QQmlJS::AST::FormalParameterList* fpl = formals; do { - parameters.append(Parameter(QString(), QString(), fpl->name.toString())); + parameters.append(Parameter(QString(), QString(), fpl->element->bindingIdentifier)); fpl = fpl->next; } while (fpl && fpl != formals); qmlMethod->setParameters(parameters); |