diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2020-02-17 01:01:00 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2020-02-17 10:21:59 +0100 |
commit | 3e758800b4daf8fbc870a2ff5d54fce9d4402ce8 (patch) | |
tree | ba237b9da1c7dfd08bf13e71c5dbd6b3c2e77633 /src/qml/parser | |
parent | 925a0e499a5dbdb180fd9969a79abf96006ce4fd (diff) | |
parent | 55546991e24ca6799709cbe0171b9ab87216c35f (diff) |
Merge remote-tracking branch 'origin/5.15' into dev
Conflicts:
src/imports/qtqml/plugin.cpp
src/qml/qml/qqml.h
src/qml/qml/qqmlmetatype.cpp
src/qml/qml/qqmlmetatype_p.h
src/qml/qml/qqmltypeloader.cpp
src/qml/types/qqmlbind.cpp
src/quick/items/qquickitemsmodule.cpp
tests/auto/qml/qqmlecmascript/tst_qqmlecmascript.cpp
Change-Id: I52548938a582cb6510271ed4bc3a9aa0c3c11df6
Diffstat (limited to 'src/qml/parser')
-rw-r--r-- | src/qml/parser/qqmljs.g | 20 | ||||
-rw-r--r-- | src/qml/parser/qqmljsast.cpp | 257 | ||||
-rw-r--r-- | src/qml/parser/qqmljsast_p.h | 311 | ||||
-rw-r--r-- | src/qml/parser/qqmljsastfwd_p.h | 4 | ||||
-rw-r--r-- | src/qml/parser/qqmljsastvisitor.cpp | 6 | ||||
-rw-r--r-- | src/qml/parser/qqmljsastvisitor_p.h | 805 |
6 files changed, 925 insertions, 478 deletions
diff --git a/src/qml/parser/qqmljs.g b/src/qml/parser/qqmljs.g index ce715b0b9c..a246dfba7a 100644 --- a/src/qml/parser/qqmljs.g +++ b/src/qml/parser/qqmljs.g @@ -326,6 +326,8 @@ public: AST::UiQualifiedId *UiQualifiedId; AST::UiEnumMemberList *UiEnumMemberList; AST::UiVersionSpecifier *UiVersionSpecifier; + AST::UiAnnotation *UiAnnotation; + AST::UiAnnotationList *UiAnnotationList; }; public: @@ -967,24 +969,30 @@ UiAnnotationObjectDefinition: UiSimpleQualifiedId UiObjectInitializer; return false; } - AST::UiObjectDefinition *node = new (pool) AST::UiObjectDefinition(sym(1).UiQualifiedId, sym(2).UiObjectInitializer); + AST::UiAnnotation *node = new (pool) AST::UiAnnotation(sym(1).UiQualifiedId, sym(2).UiObjectInitializer); sym(1).Node = node; } break; ./ UiAnnotation: T_AT UiAnnotationObjectDefinition; +/. +case $rule_number: { + sym(1).Node = sym(2).Node; +} break; +./ + UiAnnotationList: UiAnnotation; /. case $rule_number: { - sym(1).Node = new (pool) AST::UiArrayMemberList(sym(1).UiObjectMember); + sym(1).Node = new (pool) AST::UiAnnotationList(sym(1).UiAnnotation); } break; ./ UiAnnotationList: UiAnnotationList UiAnnotation; /. case $rule_number: { - AST::UiArrayMemberList *node = new (pool) AST::UiArrayMemberList(sym(1).UiArrayMemberList, sym(3).UiObjectMember); + AST::UiAnnotationList *node = new (pool) AST::UiAnnotationList(sym(1).UiAnnotationList, sym(2).UiAnnotation); sym(1).Node = node; } break; ./ @@ -992,7 +1000,9 @@ UiAnnotationList: UiAnnotationList UiAnnotation; UiAnnotatedObject: UiAnnotationList UiObjectDefinition; /. case $rule_number: { - sym(1).Node = sym(2).Node; + AST::UiObjectDefinition *node = sym(2).UiObjectDefinition; + node->annotations = sym(1).UiAnnotationList->finish(); + sym(1).Node = node; } break; ./ @@ -1060,6 +1070,8 @@ UiObjectDefinition: UiQualifiedId UiObjectInitializer; UiAnnotatedObjectMember: UiAnnotationList UiObjectMember; /. case $rule_number: { + AST::UiObjectMember *node = sym(2).UiObjectMember; + node->annotations = sym(1).UiAnnotationList->finish(); sym(1).Node = sym(2).Node; } break; ./ diff --git a/src/qml/parser/qqmljsast.cpp b/src/qml/parser/qqmljsast.cpp index 416916c547..2a34c5a66c 100644 --- a/src/qml/parser/qqmljsast.cpp +++ b/src/qml/parser/qqmljsast.cpp @@ -167,7 +167,7 @@ UiObjectMember *UiObjectMember::uiObjectMemberCast() return this; } -void NestedExpression::accept0(Visitor *visitor) +void NestedExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(expression, visitor); @@ -185,7 +185,7 @@ ClassExpression *NestedExpression::asClassDefinition() return expression->asClassDefinition(); } -void ThisExpression::accept0(Visitor *visitor) +void ThisExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { } @@ -193,7 +193,7 @@ void ThisExpression::accept0(Visitor *visitor) visitor->endVisit(this); } -void IdentifierExpression::accept0(Visitor *visitor) +void IdentifierExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { } @@ -201,7 +201,7 @@ void IdentifierExpression::accept0(Visitor *visitor) visitor->endVisit(this); } -void NullExpression::accept0(Visitor *visitor) +void NullExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { } @@ -209,7 +209,7 @@ void NullExpression::accept0(Visitor *visitor) visitor->endVisit(this); } -void TrueLiteral::accept0(Visitor *visitor) +void TrueLiteral::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { } @@ -217,7 +217,7 @@ void TrueLiteral::accept0(Visitor *visitor) visitor->endVisit(this); } -void FalseLiteral::accept0(Visitor *visitor) +void FalseLiteral::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { } @@ -225,7 +225,7 @@ void FalseLiteral::accept0(Visitor *visitor) visitor->endVisit(this); } -void SuperLiteral::accept0(Visitor *visitor) +void SuperLiteral::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { } @@ -234,7 +234,7 @@ void SuperLiteral::accept0(Visitor *visitor) } -void StringLiteral::accept0(Visitor *visitor) +void StringLiteral::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { } @@ -242,7 +242,7 @@ void StringLiteral::accept0(Visitor *visitor) visitor->endVisit(this); } -void TemplateLiteral::accept0(Visitor *visitor) +void TemplateLiteral::accept0(BaseVisitor *visitor) { bool accepted = true; for (TemplateLiteral *it = this; it && accepted; it = it->next) { @@ -251,7 +251,7 @@ void TemplateLiteral::accept0(Visitor *visitor) } } -void NumericLiteral::accept0(Visitor *visitor) +void NumericLiteral::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { } @@ -259,7 +259,7 @@ void NumericLiteral::accept0(Visitor *visitor) visitor->endVisit(this); } -void RegExpLiteral::accept0(Visitor *visitor) +void RegExpLiteral::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { } @@ -267,7 +267,7 @@ void RegExpLiteral::accept0(Visitor *visitor) visitor->endVisit(this); } -void ArrayPattern::accept0(Visitor *visitor) +void ArrayPattern::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) accept(elements, visitor); @@ -287,7 +287,7 @@ bool ArrayPattern::isValidArrayLiteral(SourceLocation *errorLocation) const { return true; } -void ObjectPattern::accept0(Visitor *visitor) +void ObjectPattern::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(properties, visitor); @@ -462,7 +462,7 @@ bool PatternProperty::convertLiteralToAssignmentPattern(MemoryPool *pool, Source } -void Elision::accept0(Visitor *visitor) +void Elision::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { // ### @@ -471,7 +471,7 @@ void Elision::accept0(Visitor *visitor) visitor->endVisit(this); } -void IdentifierPropertyName::accept0(Visitor *visitor) +void IdentifierPropertyName::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { } @@ -479,7 +479,7 @@ void IdentifierPropertyName::accept0(Visitor *visitor) visitor->endVisit(this); } -void StringLiteralPropertyName::accept0(Visitor *visitor) +void StringLiteralPropertyName::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { } @@ -487,7 +487,7 @@ void StringLiteralPropertyName::accept0(Visitor *visitor) visitor->endVisit(this); } -void NumericLiteralPropertyName::accept0(Visitor *visitor) +void NumericLiteralPropertyName::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { } @@ -517,7 +517,7 @@ QString NumericLiteralPropertyName::asString()const return locale.toString(id, 'g', 16); } -void ArrayMemberExpression::accept0(Visitor *visitor) +void ArrayMemberExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(base, visitor); @@ -527,7 +527,7 @@ void ArrayMemberExpression::accept0(Visitor *visitor) visitor->endVisit(this); } -void FieldMemberExpression::accept0(Visitor *visitor) +void FieldMemberExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(base, visitor); @@ -536,7 +536,7 @@ void FieldMemberExpression::accept0(Visitor *visitor) visitor->endVisit(this); } -void NewMemberExpression::accept0(Visitor *visitor) +void NewMemberExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(base, visitor); @@ -546,7 +546,7 @@ void NewMemberExpression::accept0(Visitor *visitor) visitor->endVisit(this); } -void NewExpression::accept0(Visitor *visitor) +void NewExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(expression, visitor); @@ -555,7 +555,7 @@ void NewExpression::accept0(Visitor *visitor) visitor->endVisit(this); } -void CallExpression::accept0(Visitor *visitor) +void CallExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(base, visitor); @@ -565,7 +565,7 @@ void CallExpression::accept0(Visitor *visitor) visitor->endVisit(this); } -void ArgumentList::accept0(Visitor *visitor) +void ArgumentList::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { for (ArgumentList *it = this; it; it = it->next) { @@ -576,7 +576,7 @@ void ArgumentList::accept0(Visitor *visitor) visitor->endVisit(this); } -void PostIncrementExpression::accept0(Visitor *visitor) +void PostIncrementExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(base, visitor); @@ -585,7 +585,7 @@ void PostIncrementExpression::accept0(Visitor *visitor) visitor->endVisit(this); } -void PostDecrementExpression::accept0(Visitor *visitor) +void PostDecrementExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(base, visitor); @@ -594,7 +594,7 @@ void PostDecrementExpression::accept0(Visitor *visitor) visitor->endVisit(this); } -void DeleteExpression::accept0(Visitor *visitor) +void DeleteExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(expression, visitor); @@ -603,7 +603,7 @@ void DeleteExpression::accept0(Visitor *visitor) visitor->endVisit(this); } -void VoidExpression::accept0(Visitor *visitor) +void VoidExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(expression, visitor); @@ -612,7 +612,7 @@ void VoidExpression::accept0(Visitor *visitor) visitor->endVisit(this); } -void TypeOfExpression::accept0(Visitor *visitor) +void TypeOfExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(expression, visitor); @@ -621,7 +621,7 @@ void TypeOfExpression::accept0(Visitor *visitor) visitor->endVisit(this); } -void PreIncrementExpression::accept0(Visitor *visitor) +void PreIncrementExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(expression, visitor); @@ -630,7 +630,7 @@ void PreIncrementExpression::accept0(Visitor *visitor) visitor->endVisit(this); } -void PreDecrementExpression::accept0(Visitor *visitor) +void PreDecrementExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(expression, visitor); @@ -639,7 +639,7 @@ void PreDecrementExpression::accept0(Visitor *visitor) visitor->endVisit(this); } -void UnaryPlusExpression::accept0(Visitor *visitor) +void UnaryPlusExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(expression, visitor); @@ -648,7 +648,7 @@ void UnaryPlusExpression::accept0(Visitor *visitor) visitor->endVisit(this); } -void UnaryMinusExpression::accept0(Visitor *visitor) +void UnaryMinusExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(expression, visitor); @@ -657,7 +657,7 @@ void UnaryMinusExpression::accept0(Visitor *visitor) visitor->endVisit(this); } -void TildeExpression::accept0(Visitor *visitor) +void TildeExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(expression, visitor); @@ -666,7 +666,7 @@ void TildeExpression::accept0(Visitor *visitor) visitor->endVisit(this); } -void NotExpression::accept0(Visitor *visitor) +void NotExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(expression, visitor); @@ -675,7 +675,7 @@ void NotExpression::accept0(Visitor *visitor) visitor->endVisit(this); } -void BinaryExpression::accept0(Visitor *visitor) +void BinaryExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(left, visitor); @@ -685,7 +685,7 @@ void BinaryExpression::accept0(Visitor *visitor) visitor->endVisit(this); } -void ConditionalExpression::accept0(Visitor *visitor) +void ConditionalExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(expression, visitor); @@ -696,7 +696,7 @@ void ConditionalExpression::accept0(Visitor *visitor) visitor->endVisit(this); } -void Expression::accept0(Visitor *visitor) +void Expression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(left, visitor); @@ -706,7 +706,7 @@ void Expression::accept0(Visitor *visitor) visitor->endVisit(this); } -void Block::accept0(Visitor *visitor) +void Block::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(statements, visitor); @@ -715,7 +715,7 @@ void Block::accept0(Visitor *visitor) visitor->endVisit(this); } -void StatementList::accept0(Visitor *visitor) +void StatementList::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { for (StatementList *it = this; it; it = it->next) { @@ -726,7 +726,7 @@ void StatementList::accept0(Visitor *visitor) visitor->endVisit(this); } -void VariableStatement::accept0(Visitor *visitor) +void VariableStatement::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(declarations, visitor); @@ -735,7 +735,7 @@ void VariableStatement::accept0(Visitor *visitor) visitor->endVisit(this); } -void VariableDeclarationList::accept0(Visitor *visitor) +void VariableDeclarationList::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { for (VariableDeclarationList *it = this; it; it = it->next) { @@ -746,7 +746,7 @@ void VariableDeclarationList::accept0(Visitor *visitor) visitor->endVisit(this); } -void EmptyStatement::accept0(Visitor *visitor) +void EmptyStatement::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { } @@ -754,7 +754,7 @@ void EmptyStatement::accept0(Visitor *visitor) visitor->endVisit(this); } -void ExpressionStatement::accept0(Visitor *visitor) +void ExpressionStatement::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(expression, visitor); @@ -763,7 +763,7 @@ void ExpressionStatement::accept0(Visitor *visitor) visitor->endVisit(this); } -void IfStatement::accept0(Visitor *visitor) +void IfStatement::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(expression, visitor); @@ -774,7 +774,7 @@ void IfStatement::accept0(Visitor *visitor) visitor->endVisit(this); } -void DoWhileStatement::accept0(Visitor *visitor) +void DoWhileStatement::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(statement, visitor); @@ -784,7 +784,7 @@ void DoWhileStatement::accept0(Visitor *visitor) visitor->endVisit(this); } -void WhileStatement::accept0(Visitor *visitor) +void WhileStatement::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(expression, visitor); @@ -794,7 +794,7 @@ void WhileStatement::accept0(Visitor *visitor) visitor->endVisit(this); } -void ForStatement::accept0(Visitor *visitor) +void ForStatement::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(initialiser, visitor); @@ -807,7 +807,7 @@ void ForStatement::accept0(Visitor *visitor) visitor->endVisit(this); } -void ForEachStatement::accept0(Visitor *visitor) +void ForEachStatement::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(lhs, visitor); @@ -818,7 +818,7 @@ void ForEachStatement::accept0(Visitor *visitor) visitor->endVisit(this); } -void ContinueStatement::accept0(Visitor *visitor) +void ContinueStatement::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { } @@ -826,7 +826,7 @@ void ContinueStatement::accept0(Visitor *visitor) visitor->endVisit(this); } -void BreakStatement::accept0(Visitor *visitor) +void BreakStatement::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { } @@ -834,7 +834,7 @@ void BreakStatement::accept0(Visitor *visitor) visitor->endVisit(this); } -void ReturnStatement::accept0(Visitor *visitor) +void ReturnStatement::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(expression, visitor); @@ -843,7 +843,7 @@ void ReturnStatement::accept0(Visitor *visitor) visitor->endVisit(this); } -void YieldExpression::accept0(Visitor *visitor) +void YieldExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(expression, visitor); @@ -853,7 +853,7 @@ void YieldExpression::accept0(Visitor *visitor) } -void WithStatement::accept0(Visitor *visitor) +void WithStatement::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(expression, visitor); @@ -863,7 +863,7 @@ void WithStatement::accept0(Visitor *visitor) visitor->endVisit(this); } -void SwitchStatement::accept0(Visitor *visitor) +void SwitchStatement::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(expression, visitor); @@ -873,7 +873,7 @@ void SwitchStatement::accept0(Visitor *visitor) visitor->endVisit(this); } -void CaseBlock::accept0(Visitor *visitor) +void CaseBlock::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(clauses, visitor); @@ -884,7 +884,7 @@ void CaseBlock::accept0(Visitor *visitor) visitor->endVisit(this); } -void CaseClauses::accept0(Visitor *visitor) +void CaseClauses::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { for (CaseClauses *it = this; it; it = it->next) { @@ -895,7 +895,7 @@ void CaseClauses::accept0(Visitor *visitor) visitor->endVisit(this); } -void CaseClause::accept0(Visitor *visitor) +void CaseClause::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(expression, visitor); @@ -905,7 +905,7 @@ void CaseClause::accept0(Visitor *visitor) visitor->endVisit(this); } -void DefaultClause::accept0(Visitor *visitor) +void DefaultClause::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(statements, visitor); @@ -914,7 +914,7 @@ void DefaultClause::accept0(Visitor *visitor) visitor->endVisit(this); } -void LabelledStatement::accept0(Visitor *visitor) +void LabelledStatement::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(statement, visitor); @@ -923,7 +923,7 @@ void LabelledStatement::accept0(Visitor *visitor) visitor->endVisit(this); } -void ThrowStatement::accept0(Visitor *visitor) +void ThrowStatement::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(expression, visitor); @@ -932,7 +932,7 @@ void ThrowStatement::accept0(Visitor *visitor) visitor->endVisit(this); } -void TryStatement::accept0(Visitor *visitor) +void TryStatement::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(statement, visitor); @@ -943,7 +943,7 @@ void TryStatement::accept0(Visitor *visitor) visitor->endVisit(this); } -void Catch::accept0(Visitor *visitor) +void Catch::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(patternElement, visitor); @@ -953,7 +953,7 @@ void Catch::accept0(Visitor *visitor) visitor->endVisit(this); } -void Finally::accept0(Visitor *visitor) +void Finally::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(statement, visitor); @@ -962,7 +962,7 @@ void Finally::accept0(Visitor *visitor) visitor->endVisit(this); } -void FunctionDeclaration::accept0(Visitor *visitor) +void FunctionDeclaration::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(formals, visitor); @@ -973,7 +973,7 @@ void FunctionDeclaration::accept0(Visitor *visitor) visitor->endVisit(this); } -void FunctionExpression::accept0(Visitor *visitor) +void FunctionExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(formals, visitor); @@ -1018,7 +1018,7 @@ BoundNames FormalParameterList::boundNames() const return names; } -void FormalParameterList::accept0(Visitor *visitor) +void FormalParameterList::accept0(BaseVisitor *visitor) { bool accepted = true; for (FormalParameterList *it = this; it && accepted; it = it->next) { @@ -1043,7 +1043,7 @@ FormalParameterList *FormalParameterList::finish(QQmlJS::MemoryPool *pool) return front; } -void Program::accept0(Visitor *visitor) +void Program::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(statements, visitor); @@ -1052,7 +1052,7 @@ void Program::accept0(Visitor *visitor) visitor->endVisit(this); } -void ImportSpecifier::accept0(Visitor *visitor) +void ImportSpecifier::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { @@ -1060,7 +1060,7 @@ void ImportSpecifier::accept0(Visitor *visitor) visitor->endVisit(this); } -void ImportsList::accept0(Visitor *visitor) +void ImportsList::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { for (ImportsList *it = this; it; it = it->next) { @@ -1071,7 +1071,7 @@ void ImportsList::accept0(Visitor *visitor) visitor->endVisit(this); } -void NamedImports::accept0(Visitor *visitor) +void NamedImports::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(importsList, visitor); @@ -1080,7 +1080,7 @@ void NamedImports::accept0(Visitor *visitor) visitor->endVisit(this); } -void FromClause::accept0(Visitor *visitor) +void FromClause::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { } @@ -1088,7 +1088,7 @@ void FromClause::accept0(Visitor *visitor) visitor->endVisit(this); } -void NameSpaceImport::accept0(Visitor *visitor) +void NameSpaceImport::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { } @@ -1096,7 +1096,7 @@ void NameSpaceImport::accept0(Visitor *visitor) visitor->endVisit(this); } -void ImportClause::accept0(Visitor *visitor) +void ImportClause::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(nameSpaceImport, visitor); @@ -1106,7 +1106,7 @@ void ImportClause::accept0(Visitor *visitor) visitor->endVisit(this); } -void ImportDeclaration::accept0(Visitor *visitor) +void ImportDeclaration::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(importClause, visitor); @@ -1116,7 +1116,7 @@ void ImportDeclaration::accept0(Visitor *visitor) visitor->endVisit(this); } -void ExportSpecifier::accept0(Visitor *visitor) +void ExportSpecifier::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { @@ -1125,7 +1125,7 @@ void ExportSpecifier::accept0(Visitor *visitor) visitor->endVisit(this); } -void ExportsList::accept0(Visitor *visitor) +void ExportsList::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { for (ExportsList *it = this; it; it = it->next) { @@ -1136,7 +1136,7 @@ void ExportsList::accept0(Visitor *visitor) visitor->endVisit(this); } -void ExportClause::accept0(Visitor *visitor) +void ExportClause::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(exportsList, visitor); @@ -1145,7 +1145,7 @@ void ExportClause::accept0(Visitor *visitor) visitor->endVisit(this); } -void ExportDeclaration::accept0(Visitor *visitor) +void ExportDeclaration::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(fromClause, visitor); @@ -1156,7 +1156,7 @@ void ExportDeclaration::accept0(Visitor *visitor) visitor->endVisit(this); } -void ESModule::accept0(Visitor *visitor) +void ESModule::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(body, visitor); @@ -1165,7 +1165,7 @@ void ESModule::accept0(Visitor *visitor) visitor->endVisit(this); } -void DebuggerStatement::accept0(Visitor *visitor) +void DebuggerStatement::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { } @@ -1173,7 +1173,7 @@ void DebuggerStatement::accept0(Visitor *visitor) visitor->endVisit(this); } -void UiProgram::accept0(Visitor *visitor) +void UiProgram::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(headers, visitor); @@ -1183,19 +1183,23 @@ void UiProgram::accept0(Visitor *visitor) visitor->endVisit(this); } -void UiPublicMember::accept0(Visitor *visitor) +void UiPublicMember::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { + // accept(annotations, visitor); // accept manually in visit if interested + // accept(memberType, visitor); // accept manually in visit if interested accept(statement, visitor); accept(binding, visitor); + // accept(parameters, visitor); // accept manually in visit if interested } visitor->endVisit(this); } -void UiObjectDefinition::accept0(Visitor *visitor) +void UiObjectDefinition::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { + // accept(annotations, visitor); // accept manually in visit if interested accept(qualifiedTypeNameId, visitor); accept(initializer, visitor); } @@ -1203,7 +1207,7 @@ void UiObjectDefinition::accept0(Visitor *visitor) visitor->endVisit(this); } -void UiObjectInitializer::accept0(Visitor *visitor) +void UiObjectInitializer::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(members, visitor); @@ -1212,16 +1216,18 @@ void UiObjectInitializer::accept0(Visitor *visitor) visitor->endVisit(this); } -void UiParameterList::accept0(Visitor *visitor) +void UiParameterList::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { + // accept(type, visitor); // accept manually in visit if interested } visitor->endVisit(this); } -void UiObjectBinding::accept0(Visitor *visitor) +void UiObjectBinding::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { + // accept(annotations, visitor); // accept manually in visit if interested accept(qualifiedId, visitor); accept(qualifiedTypeNameId, visitor); accept(initializer, visitor); @@ -1230,9 +1236,10 @@ void UiObjectBinding::accept0(Visitor *visitor) visitor->endVisit(this); } -void UiScriptBinding::accept0(Visitor *visitor) +void UiScriptBinding::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { + // accept(annotations, visitor); // accept manually in visit if interested accept(qualifiedId, visitor); accept(statement, visitor); } @@ -1240,9 +1247,10 @@ void UiScriptBinding::accept0(Visitor *visitor) visitor->endVisit(this); } -void UiArrayBinding::accept0(Visitor *visitor) +void UiArrayBinding::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { + // accept(annotations, visitor); // accept manually in visit if interested accept(qualifiedId, visitor); accept(members, visitor); } @@ -1250,7 +1258,7 @@ void UiArrayBinding::accept0(Visitor *visitor) visitor->endVisit(this); } -void UiObjectMemberList::accept0(Visitor *visitor) +void UiObjectMemberList::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { for (UiObjectMemberList *it = this; it; it = it->next) @@ -1260,7 +1268,7 @@ void UiObjectMemberList::accept0(Visitor *visitor) visitor->endVisit(this); } -void UiArrayMemberList::accept0(Visitor *visitor) +void UiArrayMemberList::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { for (UiArrayMemberList *it = this; it; it = it->next) @@ -1270,15 +1278,16 @@ void UiArrayMemberList::accept0(Visitor *visitor) visitor->endVisit(this); } -void UiQualifiedId::accept0(Visitor *visitor) +void UiQualifiedId::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { + // accept(next, visitor) // accept manually in visit if interested } visitor->endVisit(this); } -void Type::accept0(Visitor *visitor) +void Type::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(typeId, visitor); @@ -1288,7 +1297,7 @@ void Type::accept0(Visitor *visitor) visitor->endVisit(this); } -void TypeArgumentList::accept0(Visitor *visitor) +void TypeArgumentList::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { for (TypeArgumentList *it = this; it; it = it->next) @@ -1298,7 +1307,7 @@ void TypeArgumentList::accept0(Visitor *visitor) visitor->endVisit(this); } -void TypeAnnotation::accept0(Visitor *visitor) +void TypeAnnotation::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(type, visitor); @@ -1307,16 +1316,17 @@ void TypeAnnotation::accept0(Visitor *visitor) visitor->endVisit(this); } -void UiImport::accept0(Visitor *visitor) +void UiImport::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(importUri, visitor); + // accept(version, visitor); // accept manually in visit if interested } visitor->endVisit(this); } -void UiPragma::accept0(Visitor *visitor) +void UiPragma::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { } @@ -1324,7 +1334,7 @@ void UiPragma::accept0(Visitor *visitor) visitor->endVisit(this); } -void UiHeaderItemList::accept0(Visitor *visitor) +void UiHeaderItemList::accept0(BaseVisitor *visitor) { bool accepted = true; for (UiHeaderItemList *it = this; it && accepted; it = it->next) { @@ -1337,25 +1347,27 @@ void UiHeaderItemList::accept0(Visitor *visitor) } -void UiSourceElement::accept0(Visitor *visitor) +void UiSourceElement::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { + // accept(annotations, visitor); // accept manually in visit if interested accept(sourceElement, visitor); } visitor->endVisit(this); } -void UiEnumDeclaration::accept0(Visitor *visitor) +void UiEnumDeclaration::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { + // accept(annotations, visitor); // accept manually in visit if interested accept(members, visitor); } visitor->endVisit(this); } -void UiEnumMemberList::accept0(Visitor *visitor) +void UiEnumMemberList::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { } @@ -1363,7 +1375,7 @@ void UiEnumMemberList::accept0(Visitor *visitor) visitor->endVisit(this); } -void TaggedTemplate::accept0(Visitor *visitor) +void TaggedTemplate::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(base, visitor); @@ -1373,7 +1385,7 @@ void TaggedTemplate::accept0(Visitor *visitor) visitor->endVisit(this); } -void PatternElement::accept0(Visitor *visitor) +void PatternElement::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(bindingTarget, visitor); @@ -1396,7 +1408,7 @@ void PatternElement::boundNames(BoundNames *names) } } -void PatternElementList::accept0(Visitor *visitor) +void PatternElementList::accept0(BaseVisitor *visitor) { bool accepted = true; for (PatternElementList *it = this; it && accepted; it = it->next) { @@ -1417,7 +1429,7 @@ void PatternElementList::boundNames(BoundNames *names) } } -void PatternProperty::accept0(Visitor *visitor) +void PatternProperty::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(name, visitor); @@ -1434,7 +1446,7 @@ void PatternProperty::boundNames(BoundNames *names) PatternElement::boundNames(names); } -void PatternPropertyList::accept0(Visitor *visitor) +void PatternPropertyList::accept0(BaseVisitor *visitor) { bool accepted = true; for (PatternPropertyList *it = this; it && accepted; it = it->next) { @@ -1451,7 +1463,7 @@ void PatternPropertyList::boundNames(BoundNames *names) it->property->boundNames(names); } -void ComputedPropertyName::accept0(Visitor *visitor) +void ComputedPropertyName::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(expression, visitor); @@ -1460,7 +1472,7 @@ void ComputedPropertyName::accept0(Visitor *visitor) visitor->endVisit(this); } -void ClassExpression::accept0(Visitor *visitor) +void ClassExpression::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(heritage, visitor); @@ -1475,7 +1487,7 @@ ClassExpression *ClassExpression::asClassDefinition() return this; } -void ClassDeclaration::accept0(Visitor *visitor) +void ClassDeclaration::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { accept(heritage, visitor); @@ -1485,7 +1497,7 @@ void ClassDeclaration::accept0(Visitor *visitor) visitor->endVisit(this); } -void ClassElementList::accept0(Visitor *visitor) +void ClassElementList::accept0(BaseVisitor *visitor) { bool accepted = true; for (ClassElementList *it = this; it && accepted; it = it->next) { @@ -1514,7 +1526,7 @@ LeftHandSideExpression *LeftHandSideExpression::leftHandSideExpressionCast() return this; } -void UiVersionSpecifier::accept0(Visitor *visitor) +void UiVersionSpecifier::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { } @@ -1545,16 +1557,17 @@ void Type::toString(QString *out) const }; } -void UiInlineComponent::accept0(Visitor *visitor) +void UiInlineComponent::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { + // accept(annotations, visitor); // accept manually in visit if interested accept(component, visitor); } visitor->endVisit(this); } -void UiRequired::accept0(Visitor *visitor) +void UiRequired::accept0(BaseVisitor *visitor) { if (visitor->visit(this)) { } @@ -1562,6 +1575,26 @@ void UiRequired::accept0(Visitor *visitor) visitor->endVisit(this); } +void UiAnnotationList::accept0(BaseVisitor *visitor) +{ + if (visitor->visit(this)) { + for (UiAnnotationList *it = this; it; it = it->next) + accept(it->annotation, visitor); + } + + visitor->endVisit(this); +} + +void UiAnnotation::accept0(BaseVisitor *visitor) +{ + if (visitor->visit(this)) { + accept(qualifiedTypeNameId, visitor); + accept(initializer, visitor); + } + + visitor->endVisit(this); +} + } } // namespace QQmlJS::AST QT_END_NAMESPACE diff --git a/src/qml/parser/qqmljsast_p.h b/src/qml/parser/qqmljsast_p.h index 446704be91..b92a635228 100644 --- a/src/qml/parser/qqmljsast_p.h +++ b/src/qml/parser/qqmljsast_p.h @@ -260,7 +260,9 @@ public: Kind_UiEnumDeclaration, Kind_UiEnumMemberList, Kind_UiVersionSpecifier, - Kind_UiRequired + Kind_UiRequired, + Kind_UiAnnotation, + Kind_UiAnnotationList }; inline Node() {} @@ -282,9 +284,9 @@ public: bool ignoreRecursionDepth() const; - inline void accept(Visitor *visitor) + inline void accept(BaseVisitor *visitor) { - Visitor::RecursionDepthCheck recursionCheck(visitor); + BaseVisitor::RecursionDepthCheck recursionCheck(visitor); // Stack overflow is uncommon, ignoreRecursionDepth() only returns true if // QV4_CRASH_ON_STACKOVERFLOW is set, and ignoreRecursionDepth() needs to be out of line. @@ -298,19 +300,19 @@ public: } } - inline static void accept(Node *node, Visitor *visitor) + inline static void accept(Node *node, BaseVisitor *visitor) { if (node) node->accept(visitor); } // ### Remove when we can. This is part of the qmldevtools library, though. - inline static void acceptChild(Node *node, Visitor *visitor) + inline static void acceptChild(Node *node, BaseVisitor *visitor) { return accept(node, visitor); } - virtual void accept0(Visitor *visitor) = 0; + virtual void accept0(BaseVisitor *visitor) = 0; virtual SourceLocation firstSourceLocation() const = 0; virtual SourceLocation lastSourceLocation() const = 0; @@ -351,7 +353,7 @@ public: return head; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return identifierToken; } @@ -375,7 +377,7 @@ public: , typeArguments(typeArguments) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return typeId->firstSourceLocation(); } @@ -410,7 +412,7 @@ public: previous->next = this; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return typeId->firstSourceLocation(); } @@ -439,7 +441,7 @@ public: : type(type) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return colonToken; } @@ -484,7 +486,7 @@ public: : expression(expression) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return lparenToken; } @@ -509,7 +511,7 @@ public: ThisExpression() { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return thisToken; } @@ -529,7 +531,7 @@ public: IdentifierExpression(const QStringRef &n): name (n) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return identifierToken; } @@ -549,7 +551,7 @@ public: NullExpression() { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return nullToken; } @@ -568,7 +570,7 @@ public: TrueLiteral() { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return trueToken; } @@ -587,7 +589,7 @@ public: FalseLiteral() { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return falseToken; } @@ -606,7 +608,7 @@ public: SuperLiteral() { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return superToken; } @@ -627,7 +629,7 @@ public: NumericLiteral(double v): value(v) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return literalToken; } @@ -650,7 +652,7 @@ public: kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return majorToken; } @@ -673,7 +675,7 @@ public: StringLiteral(const QStringRef &v): value (v) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return literalToken; } @@ -704,7 +706,7 @@ public: return (last->expression ? last->expression->lastSourceLocation() : last->literalToken); } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; QStringRef value; QStringRef rawValue; @@ -721,7 +723,7 @@ public: RegExpLiteral(const QStringRef &p, int f): pattern (p), flags (f) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return literalToken; } @@ -756,7 +758,7 @@ public: : elements(elts) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return lbracketToken; } @@ -787,7 +789,7 @@ public: : properties(plist) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return lbraceToken; } @@ -818,7 +820,7 @@ public: previous->next = this; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return commaToken; } @@ -924,7 +926,7 @@ public: kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; virtual bool convertLiteralToAssignmentPattern(MemoryPool *pool, SourceLocation *errorLocation, QString *errorMessage); SourceLocation firstSourceLocation() const override @@ -977,7 +979,7 @@ public: return front; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; void boundNames(BoundNames *names); @@ -1012,7 +1014,7 @@ public: : PatternElement(pattern, i), name(name) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return name->firstSourceLocation(); } @@ -1048,7 +1050,7 @@ public: previous->next = this; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; void boundNames(BoundNames *names); @@ -1077,7 +1079,7 @@ public: IdentifierPropertyName(const QStringRef &n): id (n) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; QString asString() const override { return id.toString(); } @@ -1093,7 +1095,7 @@ public: StringLiteralPropertyName(const QStringRef &n): id (n) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; QString asString() const override { return id.toString(); } @@ -1109,7 +1111,7 @@ public: NumericLiteralPropertyName(double n): id (n) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; QString asString() const override; @@ -1126,7 +1128,7 @@ public: : expression(expression) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; QString asString() const override { return QString(); } @@ -1150,7 +1152,7 @@ public: base (b), expression (e) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return base->firstSourceLocation(); } @@ -1174,7 +1176,7 @@ public: base (b), name (n) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return base->firstSourceLocation(); } @@ -1198,7 +1200,7 @@ public: : base (b), templateLiteral(t) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return base->firstSourceLocation(); } @@ -1220,7 +1222,7 @@ public: base (b), arguments (a) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return newToken; } @@ -1244,7 +1246,7 @@ public: NewExpression(ExpressionNode *e): expression (e) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return newToken; } @@ -1266,7 +1268,7 @@ public: base (b), arguments (a) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return base->firstSourceLocation(); } @@ -1298,7 +1300,7 @@ public: previous->next = this; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return expression->firstSourceLocation(); } @@ -1332,7 +1334,7 @@ public: PostIncrementExpression(ExpressionNode *b): base (b) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return base->firstSourceLocation(); } @@ -1353,7 +1355,7 @@ public: PostDecrementExpression(ExpressionNode *b): base (b) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return base->firstSourceLocation(); } @@ -1374,7 +1376,7 @@ public: DeleteExpression(ExpressionNode *e): expression (e) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return deleteToken; } @@ -1395,7 +1397,7 @@ public: VoidExpression(ExpressionNode *e): expression (e) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return voidToken; } @@ -1416,7 +1418,7 @@ public: TypeOfExpression(ExpressionNode *e): expression (e) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return typeofToken; } @@ -1437,7 +1439,7 @@ public: PreIncrementExpression(ExpressionNode *e): expression (e) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return incrementToken; } @@ -1458,7 +1460,7 @@ public: PreDecrementExpression(ExpressionNode *e): expression (e) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return decrementToken; } @@ -1479,7 +1481,7 @@ public: UnaryPlusExpression(ExpressionNode *e): expression (e) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return plusToken; } @@ -1500,7 +1502,7 @@ public: UnaryMinusExpression(ExpressionNode *e): expression (e) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return minusToken; } @@ -1521,7 +1523,7 @@ public: TildeExpression(ExpressionNode *e): expression (e) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return tildeToken; } @@ -1542,7 +1544,7 @@ public: NotExpression(ExpressionNode *e): expression (e) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return notToken; } @@ -1566,7 +1568,7 @@ public: BinaryExpression *binaryExpressionCast() override; - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return left->firstSourceLocation(); } @@ -1590,7 +1592,7 @@ public: expression (e), ok (t), ko (f) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return expression->firstSourceLocation(); } @@ -1614,7 +1616,7 @@ public: Expression(ExpressionNode *l, ExpressionNode *r): left (l), right (r) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return left->firstSourceLocation(); } @@ -1636,7 +1638,7 @@ public: Block(StatementList *slist): statements (slist) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return lbraceToken; } @@ -1666,7 +1668,7 @@ public: return n; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return statement->firstSourceLocation(); } @@ -1705,7 +1707,7 @@ public: previous->next = this; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return declaration->firstSourceLocation(); } @@ -1743,7 +1745,7 @@ public: declarations (vlist) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return declarationKindToken; } @@ -1763,7 +1765,7 @@ public: EmptyStatement() { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return semicolonToken; } @@ -1783,7 +1785,7 @@ public: ExpressionStatement(ExpressionNode *e): expression (e) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return expression->firstSourceLocation(); } @@ -1805,7 +1807,7 @@ public: expression (e), ok (t), ko (f) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return ifToken; } @@ -1837,7 +1839,7 @@ public: statement (stmt), expression (e) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return doToken; } @@ -1864,7 +1866,7 @@ public: expression (e), statement (stmt) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return whileToken; } @@ -1894,7 +1896,7 @@ public: { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return forToken; } @@ -1932,7 +1934,7 @@ public: : lhs(v), expression(e), statement(stmt) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return forToken; } @@ -1963,7 +1965,7 @@ public: ContinueStatement(const QStringRef &l = QStringRef()): label (l) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return continueToken; } @@ -1986,7 +1988,7 @@ public: BreakStatement(const QStringRef &l): label (l) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return breakToken; } @@ -2009,7 +2011,7 @@ public: ReturnStatement(ExpressionNode *e): expression (e) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return returnToken; } @@ -2031,7 +2033,7 @@ public: YieldExpression(ExpressionNode *e = nullptr): expression (e) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return yieldToken; } @@ -2054,7 +2056,7 @@ public: expression (e), statement (stmt) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return withToken; } @@ -2079,7 +2081,7 @@ public: clauses (c), defaultClause (d), moreClauses (r) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return lbraceToken; } @@ -2104,7 +2106,7 @@ public: expression (e), block (b) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return switchToken; } @@ -2129,7 +2131,7 @@ public: expression (e), statements (slist) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return caseToken; } @@ -2161,7 +2163,7 @@ public: previous->next = this; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return clause->firstSourceLocation(); } @@ -2192,7 +2194,7 @@ public: statements (slist) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return defaultToken; } @@ -2215,7 +2217,7 @@ public: label (l), statement (stmt) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return identifierToken; } @@ -2238,7 +2240,7 @@ public: ThrowStatement(ExpressionNode *e): expression (e) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return throwToken; } @@ -2261,7 +2263,7 @@ public: : patternElement(p), statement(stmt) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return catchToken; } @@ -2287,7 +2289,7 @@ public: statement (stmt) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return finallyToken; } @@ -2317,7 +2319,7 @@ public: statement (stmt), catchExpression (c), finallyExpression (nullptr) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return tryToken; } @@ -2349,7 +2351,7 @@ public: typeAnnotation(typeAnnotation) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return functionToken; } @@ -2383,7 +2385,7 @@ public: FunctionExpression(n, f, b, typeAnnotation) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; }; class QML_PARSER_EXPORT FormalParameterList: public Node @@ -2454,7 +2456,7 @@ public: BoundNames boundNames() const; - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return element->firstSourceLocation(); } @@ -2480,7 +2482,7 @@ public: : name(n), heritage(heritage), elements(elements) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return classToken; } @@ -2509,7 +2511,7 @@ public: : ClassExpression(n, heritage, elements) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; }; @@ -2531,7 +2533,7 @@ public: return n; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return property->firstSourceLocation(); } @@ -2559,7 +2561,7 @@ public: : statements(statements) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return statements ? statements->firstSourceLocation() : SourceLocation(); } @@ -2588,7 +2590,7 @@ public: kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return identifier.isNull() ? importedBindingToken : identifierToken; } @@ -2633,7 +2635,7 @@ public: return head; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return importSpecifierToken; } @@ -2665,7 +2667,7 @@ public: kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return leftBraceToken; } @@ -2689,7 +2691,7 @@ public: kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; virtual SourceLocation firstSourceLocation() const override { return starToken; } @@ -2739,7 +2741,7 @@ public: kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; virtual SourceLocation firstSourceLocation() const override { return importedDefaultBinding.isNull() ? (nameSpaceImport ? nameSpaceImport->firstSourceLocation() : namedImports->firstSourceLocation()) : importedDefaultBindingToken; } @@ -2764,7 +2766,7 @@ public: kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return fromToken; } @@ -2795,7 +2797,7 @@ public: kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return importToken; } @@ -2828,7 +2830,7 @@ public: kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return identifierToken; } @@ -2873,7 +2875,7 @@ public: return head; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return exportSpecifier->firstSourceLocation(); } @@ -2901,7 +2903,7 @@ public: kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return leftBraceToken; } @@ -2945,7 +2947,7 @@ public: kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return exportToken; } @@ -2972,7 +2974,7 @@ public: kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return body ? body->firstSourceLocation() : SourceLocation(); } @@ -2992,7 +2994,7 @@ public: DebuggerStatement() { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return debuggerToken; } @@ -3018,7 +3020,7 @@ public: : importUri(uri) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return importToken; } @@ -3045,6 +3047,9 @@ public: SourceLocation lastSourceLocation() const override = 0; UiObjectMember *uiObjectMemberCast() override; + +// attributes + UiAnnotationList *annotations = nullptr; }; class QML_PARSER_EXPORT UiObjectMemberList: public Node @@ -3064,7 +3069,7 @@ public: previous->next = this; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return member->firstSourceLocation(); } @@ -3093,7 +3098,7 @@ public: : name(name) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return pragmaToken; } @@ -3116,7 +3121,7 @@ public: :name(name) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return requiredToken; } @@ -3165,7 +3170,7 @@ public: return head; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return headerItem->firstSourceLocation(); } @@ -3187,7 +3192,7 @@ public: : headers(headers), members(members) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { @@ -3229,7 +3234,7 @@ public: previous->next = this; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return member->firstSourceLocation(); } @@ -3259,7 +3264,7 @@ public: : members(members) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return lbraceToken; } @@ -3290,7 +3295,7 @@ public: previous->next = this; } - void accept0(Visitor *) override; + void accept0(BaseVisitor *) override; SourceLocation firstSourceLocation() const override { return colonToken.isValid() ? identifierToken : propertyTypeToken; } @@ -3334,7 +3339,7 @@ public: : type(Property), memberType(memberType), name(name), statement(statement), binding(nullptr), isDefaultMember(false), isReadonlyMember(false), parameters(nullptr) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { @@ -3391,7 +3396,7 @@ public: : qualifiedTypeNameId(qualifiedTypeNameId), initializer(initializer) { kind = K; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; SourceLocation firstSourceLocation() const override { return qualifiedTypeNameId->identifierToken; } @@ -3413,17 +3418,18 @@ public: : name(inlineComponentName), component(inlineComponent) { kind = K; } - QStringRef name; - UiObjectDefinition* component; - SourceLocation componentToken; - SourceLocation lastSourceLocation() const override {return component->lastSourceLocation();} SourceLocation firstSourceLocation() const override {return componentToken;} - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; + + // attributes + QStringRef name; + UiObjectDefinition* component; + SourceLocation componentToken; }; class QML_PARSER_EXPORT UiSourceElement: public UiObjectMember @@ -3455,7 +3461,7 @@ public: return SourceLocation(); } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; // attributes @@ -3487,7 +3493,7 @@ public: SourceLocation lastSourceLocation() const override { return initializer->rbraceToken; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; // attributes @@ -3515,7 +3521,7 @@ public: SourceLocation lastSourceLocation() const override { return statement->lastSourceLocation(); } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; // attributes UiQualifiedId *qualifiedId; @@ -3540,7 +3546,7 @@ public: SourceLocation lastSourceLocation() const override { return rbracketToken; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; // attributes UiQualifiedId *qualifiedId; @@ -3584,7 +3590,7 @@ public: return last->valueToken.isValid() ? last->valueToken : last->memberToken; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; UiEnumMemberList *finish() { @@ -3618,7 +3624,7 @@ public: SourceLocation lastSourceLocation() const override { return rbraceToken; } - void accept0(Visitor *visitor) override; + void accept0(BaseVisitor *visitor) override; // attributes SourceLocation enumToken; @@ -3627,8 +3633,67 @@ public: UiEnumMemberList *members; }; -} } // namespace AST +class QML_PARSER_EXPORT UiAnnotation: public Node +{ +public: + QQMLJS_DECLARE_AST_NODE(UiAnnotation) + UiAnnotation(UiQualifiedId *qualifiedTypeNameId, + UiObjectInitializer *initializer) + : qualifiedTypeNameId(qualifiedTypeNameId), initializer(initializer) + { kind = K; } + + void accept0(BaseVisitor *visitor) override; + + SourceLocation firstSourceLocation() const override + { return qualifiedTypeNameId->identifierToken; } + + SourceLocation lastSourceLocation() const override + { return initializer->rbraceToken; } + +// attributes + UiQualifiedId *qualifiedTypeNameId; + UiObjectInitializer *initializer; +}; + +class QML_PARSER_EXPORT UiAnnotationList: public Node +{ +public: + QQMLJS_DECLARE_AST_NODE(UiAnnotationList) + + UiAnnotationList(UiAnnotation *annotation) + : next(this), annotation(annotation) + { kind = K; } + + UiAnnotationList(UiAnnotationList *previous, UiAnnotation *annotation) + : annotation(annotation) + { + kind = K; + next = previous->next; + previous->next = this; + } + + void accept0(BaseVisitor *visitor) override; + + SourceLocation firstSourceLocation() const override + { return annotation->firstSourceLocation(); } + + SourceLocation lastSourceLocation() const override + { return lastListElement(this)->annotation->lastSourceLocation(); } + + UiAnnotationList *finish() + { + UiAnnotationList *head = next; + next = nullptr; + return head; + } + +// attributes + UiAnnotationList *next; + UiAnnotation *annotation; +}; + +} } // namespace AST QT_END_NAMESPACE diff --git a/src/qml/parser/qqmljsastfwd_p.h b/src/qml/parser/qqmljsastfwd_p.h index fe260e2bb5..8df0be7590 100644 --- a/src/qml/parser/qqmljsastfwd_p.h +++ b/src/qml/parser/qqmljsastfwd_p.h @@ -60,6 +60,7 @@ QT_BEGIN_NAMESPACE namespace QQmlJS { namespace AST { +class BaseVisitor; class Visitor; class Node; class ExpressionNode; @@ -151,7 +152,6 @@ class NamedImport; class ImportClause; class FromClause; class ImportDeclaration; -class ModuleItem; class ESModule; class DebuggerStatement; class NestedExpression; @@ -184,6 +184,8 @@ class UiEnumDeclaration; class UiEnumMemberList; class UiVersionSpecifier; class UiRequired; +class UiAnnotation; +class UiAnnotationList; } // namespace AST } // namespace QQmlJS diff --git a/src/qml/parser/qqmljsastvisitor.cpp b/src/qml/parser/qqmljsastvisitor.cpp index 5ecac36423..7388eccebb 100644 --- a/src/qml/parser/qqmljsastvisitor.cpp +++ b/src/qml/parser/qqmljsastvisitor.cpp @@ -43,11 +43,13 @@ QT_BEGIN_NAMESPACE namespace QQmlJS { namespace AST { -Visitor::Visitor(quint16 parentRecursionDepth) : m_recursionDepth(parentRecursionDepth) +Visitor::Visitor(quint16 parentRecursionDepth) : BaseVisitor(parentRecursionDepth) { } -Visitor::~Visitor() +BaseVisitor::BaseVisitor(quint16 parentRecursionDepth) : m_recursionDepth(parentRecursionDepth) {} + +BaseVisitor::~BaseVisitor() { } diff --git a/src/qml/parser/qqmljsastvisitor_p.h b/src/qml/parser/qqmljsastvisitor_p.h index fcc48da1d3..8fbdb97ee2 100644 --- a/src/qml/parser/qqmljsastvisitor_p.h +++ b/src/qml/parser/qqmljsastvisitor_p.h @@ -58,7 +58,7 @@ QT_BEGIN_NAMESPACE namespace QQmlJS { namespace AST { -class QML_PARSER_EXPORT Visitor +class QML_PARSER_EXPORT BaseVisitor { public: class RecursionDepthCheck @@ -68,7 +68,7 @@ public: RecursionDepthCheck(RecursionDepthCheck &&) = delete; RecursionDepthCheck &operator=(RecursionDepthCheck &&) = delete; - RecursionDepthCheck(Visitor *visitor) : m_visitor(visitor) + RecursionDepthCheck(BaseVisitor *visitor) : m_visitor(visitor) { ++(m_visitor->m_recursionDepth); } @@ -84,338 +84,338 @@ public: private: static const quint16 s_recursionLimit = 4096; - Visitor *m_visitor; + BaseVisitor *m_visitor; }; - Visitor(quint16 parentRecursionDepth = 0); - virtual ~Visitor(); + BaseVisitor(quint16 parentRecursionDepth = 0); + virtual ~BaseVisitor(); - virtual bool preVisit(Node *) { return true; } - virtual void postVisit(Node *) {} + virtual bool preVisit(Node *) = 0; + virtual void postVisit(Node *) = 0; // Ui - virtual bool visit(UiProgram *) { return true; } - virtual bool visit(UiHeaderItemList *) { return true; } - virtual bool visit(UiPragma *) { return true; } - virtual bool visit(UiImport *) { return true; } - virtual bool visit(UiPublicMember *) { return true; } - virtual bool visit(UiSourceElement *) { return true; } - virtual bool visit(UiObjectDefinition *) { return true; } - virtual bool visit(UiObjectInitializer *) { return true; } - virtual bool visit(UiObjectBinding *) { return true; } - virtual bool visit(UiScriptBinding *) { return true; } - virtual bool visit(UiArrayBinding *) { return true; } - virtual bool visit(UiParameterList *) { return true; } - virtual bool visit(UiObjectMemberList *) { return true; } - virtual bool visit(UiArrayMemberList *) { return true; } - virtual bool visit(UiQualifiedId *) { return true; } - virtual bool visit(UiEnumDeclaration *) { return true; } - virtual bool visit(UiEnumMemberList *) { return true; } - virtual bool visit(UiVersionSpecifier *) { return true; } - virtual bool visit(UiInlineComponent *) { return true; } - - virtual void endVisit(UiProgram *) {} - virtual void endVisit(UiImport *) {} - virtual void endVisit(UiHeaderItemList *) {} - virtual void endVisit(UiPragma *) {} - virtual void endVisit(UiPublicMember *) {} - virtual void endVisit(UiSourceElement *) {} - virtual void endVisit(UiObjectDefinition *) {} - virtual void endVisit(UiObjectInitializer *) {} - virtual void endVisit(UiObjectBinding *) {} - virtual void endVisit(UiScriptBinding *) {} - virtual void endVisit(UiArrayBinding *) {} - virtual void endVisit(UiParameterList *) {} - virtual void endVisit(UiObjectMemberList *) {} - virtual void endVisit(UiArrayMemberList *) {} - virtual void endVisit(UiQualifiedId *) {} - virtual void endVisit(UiEnumDeclaration *) {} - virtual void endVisit(UiEnumMemberList *) { } - virtual void endVisit(UiVersionSpecifier *) {} - virtual void endVisit(UiInlineComponent *) {} + virtual bool visit(UiProgram *) = 0; + virtual bool visit(UiHeaderItemList *) = 0; + virtual bool visit(UiPragma *) = 0; + virtual bool visit(UiImport *) = 0; + virtual bool visit(UiPublicMember *) = 0; + virtual bool visit(UiSourceElement *) = 0; + virtual bool visit(UiObjectDefinition *) = 0; + virtual bool visit(UiObjectInitializer *) = 0; + virtual bool visit(UiObjectBinding *) = 0; + virtual bool visit(UiScriptBinding *) = 0; + virtual bool visit(UiArrayBinding *) = 0; + virtual bool visit(UiParameterList *) = 0; + virtual bool visit(UiObjectMemberList *) = 0; + virtual bool visit(UiArrayMemberList *) = 0; + virtual bool visit(UiQualifiedId *) = 0; + virtual bool visit(UiEnumDeclaration *) = 0; + virtual bool visit(UiEnumMemberList *) = 0; + virtual bool visit(UiVersionSpecifier *) = 0; + virtual bool visit(UiInlineComponent *) = 0; + virtual bool visit(UiAnnotation *) = 0; + virtual bool visit(UiAnnotationList *) = 0; + virtual bool visit(UiRequired *) = 0; + + virtual void endVisit(UiProgram *) = 0; + virtual void endVisit(UiImport *) = 0; + virtual void endVisit(UiHeaderItemList *) = 0; + virtual void endVisit(UiPragma *) = 0; + virtual void endVisit(UiPublicMember *) = 0; + virtual void endVisit(UiSourceElement *) = 0; + virtual void endVisit(UiObjectDefinition *) = 0; + virtual void endVisit(UiObjectInitializer *) = 0; + virtual void endVisit(UiObjectBinding *) = 0; + virtual void endVisit(UiScriptBinding *) = 0; + virtual void endVisit(UiArrayBinding *) = 0; + virtual void endVisit(UiParameterList *) = 0; + virtual void endVisit(UiObjectMemberList *) = 0; + virtual void endVisit(UiArrayMemberList *) = 0; + virtual void endVisit(UiQualifiedId *) = 0; + virtual void endVisit(UiEnumDeclaration *) = 0; + virtual void endVisit(UiEnumMemberList *) = 0; + virtual void endVisit(UiVersionSpecifier *) = 0; + virtual void endVisit(UiInlineComponent *) = 0; + virtual void endVisit(UiAnnotation *) = 0; + virtual void endVisit(UiAnnotationList *) = 0; + virtual void endVisit(UiRequired *) = 0; // QQmlJS - virtual bool visit(ThisExpression *) { return true; } - virtual void endVisit(ThisExpression *) {} - - virtual bool visit(IdentifierExpression *) { return true; } - virtual void endVisit(IdentifierExpression *) {} + virtual bool visit(ThisExpression *) = 0; + virtual void endVisit(ThisExpression *) = 0; - virtual bool visit(NullExpression *) { return true; } - virtual void endVisit(NullExpression *) {} + virtual bool visit(IdentifierExpression *) = 0; + virtual void endVisit(IdentifierExpression *) = 0; - virtual bool visit(TrueLiteral *) { return true; } - virtual void endVisit(TrueLiteral *) {} + virtual bool visit(NullExpression *) = 0; + virtual void endVisit(NullExpression *) = 0; - virtual bool visit(FalseLiteral *) { return true; } - virtual void endVisit(FalseLiteral *) {} + virtual bool visit(TrueLiteral *) = 0; + virtual void endVisit(TrueLiteral *) = 0; - virtual bool visit(SuperLiteral *) { return true; } - virtual void endVisit(SuperLiteral *) {} + virtual bool visit(FalseLiteral *) = 0; + virtual void endVisit(FalseLiteral *) = 0; - virtual bool visit(StringLiteral *) { return true; } - virtual void endVisit(StringLiteral *) {} + virtual bool visit(SuperLiteral *) = 0; + virtual void endVisit(SuperLiteral *) = 0; - virtual bool visit(TemplateLiteral *) { return true; } - virtual void endVisit(TemplateLiteral *) {} + virtual bool visit(StringLiteral *) = 0; + virtual void endVisit(StringLiteral *) = 0; - virtual bool visit(NumericLiteral *) { return true; } - virtual void endVisit(NumericLiteral *) {} + virtual bool visit(TemplateLiteral *) = 0; + virtual void endVisit(TemplateLiteral *) = 0; - virtual bool visit(RegExpLiteral *) { return true; } - virtual void endVisit(RegExpLiteral *) {} + virtual bool visit(NumericLiteral *) = 0; + virtual void endVisit(NumericLiteral *) = 0; - virtual bool visit(ArrayPattern *) { return true; } - virtual void endVisit(ArrayPattern *) {} + virtual bool visit(RegExpLiteral *) = 0; + virtual void endVisit(RegExpLiteral *) = 0; - virtual bool visit(ObjectPattern *) { return true; } - virtual void endVisit(ObjectPattern *) {} + virtual bool visit(ArrayPattern *) = 0; + virtual void endVisit(ArrayPattern *) = 0; - virtual bool visit(PatternElementList *) { return true; } - virtual void endVisit(PatternElementList *) {} + virtual bool visit(ObjectPattern *) = 0; + virtual void endVisit(ObjectPattern *) = 0; - virtual bool visit(PatternPropertyList *) { return true; } - virtual void endVisit(PatternPropertyList *) {} + virtual bool visit(PatternElementList *) = 0; + virtual void endVisit(PatternElementList *) = 0; - virtual bool visit(PatternElement *) { return true; } - virtual void endVisit(PatternElement *) {} + virtual bool visit(PatternPropertyList *) = 0; + virtual void endVisit(PatternPropertyList *) = 0; - virtual bool visit(PatternProperty *) { return true; } - virtual void endVisit(PatternProperty *) {} + virtual bool visit(PatternElement *) = 0; + virtual void endVisit(PatternElement *) = 0; - virtual bool visit(Elision *) { return true; } - virtual void endVisit(Elision *) {} + virtual bool visit(PatternProperty *) = 0; + virtual void endVisit(PatternProperty *) = 0; - virtual bool visit(NestedExpression *) { return true; } - virtual void endVisit(NestedExpression *) {} + virtual bool visit(Elision *) = 0; + virtual void endVisit(Elision *) = 0; - virtual bool visit(IdentifierPropertyName *) { return true; } - virtual void endVisit(IdentifierPropertyName *) {} + virtual bool visit(NestedExpression *) = 0; + virtual void endVisit(NestedExpression *) = 0; - virtual bool visit(StringLiteralPropertyName *) { return true; } - virtual void endVisit(StringLiteralPropertyName *) {} + virtual bool visit(IdentifierPropertyName *) = 0; + virtual void endVisit(IdentifierPropertyName *) = 0; - virtual bool visit(NumericLiteralPropertyName *) { return true; } - virtual void endVisit(NumericLiteralPropertyName *) {} + virtual bool visit(StringLiteralPropertyName *) = 0; + virtual void endVisit(StringLiteralPropertyName *) = 0; - virtual bool visit(ComputedPropertyName *) { return true; } - virtual void endVisit(ComputedPropertyName *) {} + virtual bool visit(NumericLiteralPropertyName *) = 0; + virtual void endVisit(NumericLiteralPropertyName *) = 0; - virtual bool visit(ArrayMemberExpression *) { return true; } - virtual void endVisit(ArrayMemberExpression *) {} + virtual bool visit(ComputedPropertyName *) = 0; + virtual void endVisit(ComputedPropertyName *) = 0; - virtual bool visit(FieldMemberExpression *) { return true; } - virtual void endVisit(FieldMemberExpression *) {} + virtual bool visit(ArrayMemberExpression *) = 0; + virtual void endVisit(ArrayMemberExpression *) = 0; - virtual bool visit(TaggedTemplate *) { return true; } - virtual void endVisit(TaggedTemplate *) {} + virtual bool visit(FieldMemberExpression *) = 0; + virtual void endVisit(FieldMemberExpression *) = 0; - virtual bool visit(NewMemberExpression *) { return true; } - virtual void endVisit(NewMemberExpression *) {} + virtual bool visit(TaggedTemplate *) = 0; + virtual void endVisit(TaggedTemplate *) = 0; - virtual bool visit(NewExpression *) { return true; } - virtual void endVisit(NewExpression *) {} + virtual bool visit(NewMemberExpression *) = 0; + virtual void endVisit(NewMemberExpression *) = 0; - virtual bool visit(CallExpression *) { return true; } - virtual void endVisit(CallExpression *) {} + virtual bool visit(NewExpression *) = 0; + virtual void endVisit(NewExpression *) = 0; - virtual bool visit(ArgumentList *) { return true; } - virtual void endVisit(ArgumentList *) {} + virtual bool visit(CallExpression *) = 0; + virtual void endVisit(CallExpression *) = 0; - virtual bool visit(PostIncrementExpression *) { return true; } - virtual void endVisit(PostIncrementExpression *) {} + virtual bool visit(ArgumentList *) = 0; + virtual void endVisit(ArgumentList *) = 0; - virtual bool visit(PostDecrementExpression *) { return true; } - virtual void endVisit(PostDecrementExpression *) {} + virtual bool visit(PostIncrementExpression *) = 0; + virtual void endVisit(PostIncrementExpression *) = 0; - virtual bool visit(DeleteExpression *) { return true; } - virtual void endVisit(DeleteExpression *) {} + virtual bool visit(PostDecrementExpression *) = 0; + virtual void endVisit(PostDecrementExpression *) = 0; - virtual bool visit(VoidExpression *) { return true; } - virtual void endVisit(VoidExpression *) {} + virtual bool visit(DeleteExpression *) = 0; + virtual void endVisit(DeleteExpression *) = 0; - virtual bool visit(TypeOfExpression *) { return true; } - virtual void endVisit(TypeOfExpression *) {} + virtual bool visit(VoidExpression *) = 0; + virtual void endVisit(VoidExpression *) = 0; - virtual bool visit(PreIncrementExpression *) { return true; } - virtual void endVisit(PreIncrementExpression *) {} + virtual bool visit(TypeOfExpression *) = 0; + virtual void endVisit(TypeOfExpression *) = 0; - virtual bool visit(PreDecrementExpression *) { return true; } - virtual void endVisit(PreDecrementExpression *) {} + virtual bool visit(PreIncrementExpression *) = 0; + virtual void endVisit(PreIncrementExpression *) = 0; - virtual bool visit(UnaryPlusExpression *) { return true; } - virtual void endVisit(UnaryPlusExpression *) {} + virtual bool visit(PreDecrementExpression *) = 0; + virtual void endVisit(PreDecrementExpression *) = 0; - virtual bool visit(UnaryMinusExpression *) { return true; } - virtual void endVisit(UnaryMinusExpression *) {} + virtual bool visit(UnaryPlusExpression *) = 0; + virtual void endVisit(UnaryPlusExpression *) = 0; - virtual bool visit(TildeExpression *) { return true; } - virtual void endVisit(TildeExpression *) {} + virtual bool visit(UnaryMinusExpression *) = 0; + virtual void endVisit(UnaryMinusExpression *) = 0; - virtual bool visit(NotExpression *) { return true; } - virtual void endVisit(NotExpression *) {} + virtual bool visit(TildeExpression *) = 0; + virtual void endVisit(TildeExpression *) = 0; - virtual bool visit(BinaryExpression *) { return true; } - virtual void endVisit(BinaryExpression *) {} + virtual bool visit(NotExpression *) = 0; + virtual void endVisit(NotExpression *) = 0; - virtual bool visit(ConditionalExpression *) { return true; } - virtual void endVisit(ConditionalExpression *) {} + virtual bool visit(BinaryExpression *) = 0; + virtual void endVisit(BinaryExpression *) = 0; - virtual bool visit(Expression *) { return true; } - virtual void endVisit(Expression *) {} + virtual bool visit(ConditionalExpression *) = 0; + virtual void endVisit(ConditionalExpression *) = 0; - virtual bool visit(Block *) { return true; } - virtual void endVisit(Block *) {} + virtual bool visit(Expression *) = 0; + virtual void endVisit(Expression *) = 0; - virtual bool visit(StatementList *) { return true; } - virtual void endVisit(StatementList *) {} + virtual bool visit(Block *) = 0; + virtual void endVisit(Block *) = 0; - virtual bool visit(VariableStatement *) { return true; } - virtual void endVisit(VariableStatement *) {} + virtual bool visit(StatementList *) = 0; + virtual void endVisit(StatementList *) = 0; - virtual bool visit(VariableDeclarationList *) { return true; } - virtual void endVisit(VariableDeclarationList *) {} + virtual bool visit(VariableStatement *) = 0; + virtual void endVisit(VariableStatement *) = 0; - virtual bool visit(EmptyStatement *) { return true; } - virtual void endVisit(EmptyStatement *) {} + virtual bool visit(VariableDeclarationList *) = 0; + virtual void endVisit(VariableDeclarationList *) = 0; - virtual bool visit(ExpressionStatement *) { return true; } - virtual void endVisit(ExpressionStatement *) {} + virtual bool visit(EmptyStatement *) = 0; + virtual void endVisit(EmptyStatement *) = 0; - virtual bool visit(IfStatement *) { return true; } - virtual void endVisit(IfStatement *) {} + virtual bool visit(ExpressionStatement *) = 0; + virtual void endVisit(ExpressionStatement *) = 0; - virtual bool visit(DoWhileStatement *) { return true; } - virtual void endVisit(DoWhileStatement *) {} + virtual bool visit(IfStatement *) = 0; + virtual void endVisit(IfStatement *) = 0; - virtual bool visit(WhileStatement *) { return true; } - virtual void endVisit(WhileStatement *) {} + virtual bool visit(DoWhileStatement *) = 0; + virtual void endVisit(DoWhileStatement *) = 0; - virtual bool visit(ForStatement *) { return true; } - virtual void endVisit(ForStatement *) {} + virtual bool visit(WhileStatement *) = 0; + virtual void endVisit(WhileStatement *) = 0; - virtual bool visit(ForEachStatement *) { return true; } - virtual void endVisit(ForEachStatement *) {} + virtual bool visit(ForStatement *) = 0; + virtual void endVisit(ForStatement *) = 0; - virtual bool visit(ContinueStatement *) { return true; } - virtual void endVisit(ContinueStatement *) {} + virtual bool visit(ForEachStatement *) = 0; + virtual void endVisit(ForEachStatement *) = 0; - virtual bool visit(BreakStatement *) { return true; } - virtual void endVisit(BreakStatement *) {} + virtual bool visit(ContinueStatement *) = 0; + virtual void endVisit(ContinueStatement *) = 0; - virtual bool visit(ReturnStatement *) { return true; } - virtual void endVisit(ReturnStatement *) {} + virtual bool visit(BreakStatement *) = 0; + virtual void endVisit(BreakStatement *) = 0; - virtual bool visit(YieldExpression *) { return true; } - virtual void endVisit(YieldExpression *) {} + virtual bool visit(ReturnStatement *) = 0; + virtual void endVisit(ReturnStatement *) = 0; - virtual bool visit(WithStatement *) { return true; } - virtual void endVisit(WithStatement *) {} + virtual bool visit(YieldExpression *) = 0; + virtual void endVisit(YieldExpression *) = 0; - virtual bool visit(SwitchStatement *) { return true; } - virtual void endVisit(SwitchStatement *) {} + virtual bool visit(WithStatement *) = 0; + virtual void endVisit(WithStatement *) = 0; - virtual bool visit(CaseBlock *) { return true; } - virtual void endVisit(CaseBlock *) {} + virtual bool visit(SwitchStatement *) = 0; + virtual void endVisit(SwitchStatement *) = 0; - virtual bool visit(CaseClauses *) { return true; } - virtual void endVisit(CaseClauses *) {} + virtual bool visit(CaseBlock *) = 0; + virtual void endVisit(CaseBlock *) = 0; - virtual bool visit(CaseClause *) { return true; } - virtual void endVisit(CaseClause *) {} + virtual bool visit(CaseClauses *) = 0; + virtual void endVisit(CaseClauses *) = 0; - virtual bool visit(DefaultClause *) { return true; } - virtual void endVisit(DefaultClause *) {} + virtual bool visit(CaseClause *) = 0; + virtual void endVisit(CaseClause *) = 0; - virtual bool visit(LabelledStatement *) { return true; } - virtual void endVisit(LabelledStatement *) {} + virtual bool visit(DefaultClause *) = 0; + virtual void endVisit(DefaultClause *) = 0; - virtual bool visit(ThrowStatement *) { return true; } - virtual void endVisit(ThrowStatement *) {} + virtual bool visit(LabelledStatement *) = 0; + virtual void endVisit(LabelledStatement *) = 0; - virtual bool visit(TryStatement *) { return true; } - virtual void endVisit(TryStatement *) {} + virtual bool visit(ThrowStatement *) = 0; + virtual void endVisit(ThrowStatement *) = 0; - virtual bool visit(Catch *) { return true; } - virtual void endVisit(Catch *) {} + virtual bool visit(TryStatement *) = 0; + virtual void endVisit(TryStatement *) = 0; - virtual bool visit(Finally *) { return true; } - virtual void endVisit(Finally *) {} + virtual bool visit(Catch *) = 0; + virtual void endVisit(Catch *) = 0; - virtual bool visit(FunctionDeclaration *) { return true; } - virtual void endVisit(FunctionDeclaration *) {} + virtual bool visit(Finally *) = 0; + virtual void endVisit(Finally *) = 0; - virtual bool visit(FunctionExpression *) { return true; } - virtual void endVisit(FunctionExpression *) {} + virtual bool visit(FunctionDeclaration *) = 0; + virtual void endVisit(FunctionDeclaration *) = 0; - virtual bool visit(FormalParameterList *) { return true; } - virtual void endVisit(FormalParameterList *) {} + virtual bool visit(FunctionExpression *) = 0; + virtual void endVisit(FunctionExpression *) = 0; - virtual bool visit(ClassExpression *) { return true; } - virtual void endVisit(ClassExpression *) {} + virtual bool visit(FormalParameterList *) = 0; + virtual void endVisit(FormalParameterList *) = 0; - virtual bool visit(ClassDeclaration *) { return true; } - virtual void endVisit(ClassDeclaration *) {} + virtual bool visit(ClassExpression *) = 0; + virtual void endVisit(ClassExpression *) = 0; - virtual bool visit(ClassElementList *) { return true; } - virtual void endVisit(ClassElementList *) {} + virtual bool visit(ClassDeclaration *) = 0; + virtual void endVisit(ClassDeclaration *) = 0; - virtual bool visit(Program *) { return true; } - virtual void endVisit(Program *) {} + virtual bool visit(ClassElementList *) = 0; + virtual void endVisit(ClassElementList *) = 0; - virtual bool visit(NameSpaceImport *) { return true; } - virtual void endVisit(NameSpaceImport *) {} + virtual bool visit(Program *) = 0; + virtual void endVisit(Program *) = 0; - virtual bool visit(ImportSpecifier *) { return true; } - virtual void endVisit(ImportSpecifier *) {} + virtual bool visit(NameSpaceImport *) = 0; + virtual void endVisit(NameSpaceImport *) = 0; - virtual bool visit(ImportsList *) { return true; } - virtual void endVisit(ImportsList *) {} + virtual bool visit(ImportSpecifier *) = 0; + virtual void endVisit(ImportSpecifier *) = 0; - virtual bool visit(NamedImports *) { return true; } - virtual void endVisit(NamedImports *) {} + virtual bool visit(ImportsList *) = 0; + virtual void endVisit(ImportsList *) = 0; - virtual bool visit(FromClause *) { return true; } - virtual void endVisit(FromClause *) {} + virtual bool visit(NamedImports *) = 0; + virtual void endVisit(NamedImports *) = 0; - virtual bool visit(ImportClause *) { return true; } - virtual void endVisit(ImportClause *) {} + virtual bool visit(FromClause *) = 0; + virtual void endVisit(FromClause *) = 0; - virtual bool visit(ImportDeclaration *) { return true; } - virtual void endVisit(ImportDeclaration *) {} + virtual bool visit(ImportClause *) = 0; + virtual void endVisit(ImportClause *) = 0; - virtual bool visit(ExportSpecifier *) { return true; } - virtual void endVisit(ExportSpecifier *) {} + virtual bool visit(ImportDeclaration *) = 0; + virtual void endVisit(ImportDeclaration *) = 0; - virtual bool visit(ExportsList *) { return true; } - virtual void endVisit(ExportsList *) {} + virtual bool visit(ExportSpecifier *) = 0; + virtual void endVisit(ExportSpecifier *) = 0; - virtual bool visit(ExportClause *) { return true; } - virtual void endVisit(ExportClause *) {} + virtual bool visit(ExportsList *) = 0; + virtual void endVisit(ExportsList *) = 0; - virtual bool visit(ExportDeclaration *) { return true; } - virtual void endVisit(ExportDeclaration *) {} + virtual bool visit(ExportClause *) = 0; + virtual void endVisit(ExportClause *) = 0; - virtual bool visit(ModuleItem *) { return true; } - virtual void endVisit(ModuleItem *) {} + virtual bool visit(ExportDeclaration *) = 0; + virtual void endVisit(ExportDeclaration *) = 0; - virtual bool visit(ESModule *) { return true; } - virtual void endVisit(ESModule *) {} + virtual bool visit(ESModule *) = 0; + virtual void endVisit(ESModule *) = 0; - virtual bool visit(DebuggerStatement *) { return true; } - virtual void endVisit(DebuggerStatement *) {} + virtual bool visit(DebuggerStatement *) = 0; + virtual void endVisit(DebuggerStatement *) = 0; - virtual bool visit(Type *) { return true; } - virtual void endVisit(Type *) {} + virtual bool visit(Type *) = 0; + virtual void endVisit(Type *) = 0; - virtual bool visit(TypeArgumentList *) { return true; } - virtual void endVisit(TypeArgumentList *) {} + virtual bool visit(TypeArgumentList *) = 0; + virtual void endVisit(TypeArgumentList *) = 0; - virtual bool visit(TypeAnnotation *) { return true; } - virtual void endVisit(TypeAnnotation *) {} - - virtual bool visit(UiRequired *) { return true; } - virtual void endVisit(UiRequired *) {} + virtual bool visit(TypeAnnotation *) = 0; + virtual void endVisit(TypeAnnotation *) = 0; virtual void throwRecursionDepthError() = 0; @@ -426,6 +426,339 @@ protected: friend class RecursionDepthCheck; }; +class QML_PARSER_EXPORT Visitor: public BaseVisitor +{ +public: + Visitor(quint16 parentRecursionDepth = 0); + + bool preVisit(Node *) override { return true; } + void postVisit(Node *) override {} + + // Ui + bool visit(UiProgram *) override { return true; } + bool visit(UiHeaderItemList *) override { return true; } + bool visit(UiPragma *) override { return true; } + bool visit(UiImport *) override { return true; } + bool visit(UiPublicMember *) override { return true; } + bool visit(UiSourceElement *) override { return true; } + bool visit(UiObjectDefinition *) override { return true; } + bool visit(UiObjectInitializer *) override { return true; } + bool visit(UiObjectBinding *) override { return true; } + bool visit(UiScriptBinding *) override { return true; } + bool visit(UiArrayBinding *) override { return true; } + bool visit(UiParameterList *) override { return true; } + bool visit(UiObjectMemberList *) override { return true; } + bool visit(UiArrayMemberList *) override { return true; } + bool visit(UiQualifiedId *) override { return true; } + bool visit(UiEnumDeclaration *) override { return true; } + bool visit(UiEnumMemberList *) override { return true; } + bool visit(UiVersionSpecifier *) override { return true; } + bool visit(UiInlineComponent *) override { return true; } + bool visit(UiAnnotation *) override { return true; } + bool visit(UiAnnotationList *) override { return true; } + bool visit(UiRequired *) override { return true; } + + void endVisit(UiProgram *) override {} + void endVisit(UiImport *) override {} + void endVisit(UiHeaderItemList *) override {} + void endVisit(UiPragma *) override {} + void endVisit(UiPublicMember *) override {} + void endVisit(UiSourceElement *) override {} + void endVisit(UiObjectDefinition *) override {} + void endVisit(UiObjectInitializer *) override {} + void endVisit(UiObjectBinding *) override {} + void endVisit(UiScriptBinding *) override {} + void endVisit(UiArrayBinding *) override {} + void endVisit(UiParameterList *) override {} + void endVisit(UiObjectMemberList *) override {} + void endVisit(UiArrayMemberList *) override {} + void endVisit(UiQualifiedId *) override {} + void endVisit(UiEnumDeclaration *) override {} + void endVisit(UiEnumMemberList *) override {} + void endVisit(UiVersionSpecifier *) override {} + void endVisit(UiInlineComponent *) override {} + void endVisit(UiAnnotation *) override {} + void endVisit(UiAnnotationList *) override {} + void endVisit(UiRequired *) override {} + + // QQmlJS + bool visit(ThisExpression *) override { return true; } + void endVisit(ThisExpression *) override {} + + bool visit(IdentifierExpression *) override { return true; } + void endVisit(IdentifierExpression *) override {} + + bool visit(NullExpression *) override { return true; } + void endVisit(NullExpression *) override {} + + bool visit(TrueLiteral *) override { return true; } + void endVisit(TrueLiteral *) override {} + + bool visit(FalseLiteral *) override { return true; } + void endVisit(FalseLiteral *) override {} + + bool visit(SuperLiteral *) override { return true; } + void endVisit(SuperLiteral *) override {} + + bool visit(StringLiteral *) override { return true; } + void endVisit(StringLiteral *) override {} + + bool visit(TemplateLiteral *) override { return true; } + void endVisit(TemplateLiteral *) override {} + + bool visit(NumericLiteral *) override { return true; } + void endVisit(NumericLiteral *) override {} + + bool visit(RegExpLiteral *) override { return true; } + void endVisit(RegExpLiteral *) override {} + + bool visit(ArrayPattern *) override { return true; } + void endVisit(ArrayPattern *) override {} + + bool visit(ObjectPattern *) override { return true; } + void endVisit(ObjectPattern *) override {} + + bool visit(PatternElementList *) override { return true; } + void endVisit(PatternElementList *) override {} + + bool visit(PatternPropertyList *) override { return true; } + void endVisit(PatternPropertyList *) override {} + + bool visit(PatternElement *) override { return true; } + void endVisit(PatternElement *) override {} + + bool visit(PatternProperty *) override { return true; } + void endVisit(PatternProperty *) override {} + + bool visit(Elision *) override { return true; } + void endVisit(Elision *) override {} + + bool visit(NestedExpression *) override { return true; } + void endVisit(NestedExpression *) override {} + + bool visit(IdentifierPropertyName *) override { return true; } + void endVisit(IdentifierPropertyName *) override {} + + bool visit(StringLiteralPropertyName *) override { return true; } + void endVisit(StringLiteralPropertyName *) override {} + + bool visit(NumericLiteralPropertyName *) override { return true; } + void endVisit(NumericLiteralPropertyName *) override {} + + bool visit(ComputedPropertyName *) override { return true; } + void endVisit(ComputedPropertyName *) override {} + + bool visit(ArrayMemberExpression *) override { return true; } + void endVisit(ArrayMemberExpression *) override {} + + bool visit(FieldMemberExpression *) override { return true; } + void endVisit(FieldMemberExpression *) override {} + + bool visit(TaggedTemplate *) override { return true; } + void endVisit(TaggedTemplate *) override {} + + bool visit(NewMemberExpression *) override { return true; } + void endVisit(NewMemberExpression *) override {} + + bool visit(NewExpression *) override { return true; } + void endVisit(NewExpression *) override {} + + bool visit(CallExpression *) override { return true; } + void endVisit(CallExpression *) override {} + + bool visit(ArgumentList *) override { return true; } + void endVisit(ArgumentList *) override {} + + bool visit(PostIncrementExpression *) override { return true; } + void endVisit(PostIncrementExpression *) override {} + + bool visit(PostDecrementExpression *) override { return true; } + void endVisit(PostDecrementExpression *) override {} + + bool visit(DeleteExpression *) override { return true; } + void endVisit(DeleteExpression *) override {} + + bool visit(VoidExpression *) override { return true; } + void endVisit(VoidExpression *) override {} + + bool visit(TypeOfExpression *) override { return true; } + void endVisit(TypeOfExpression *) override {} + + bool visit(PreIncrementExpression *) override { return true; } + void endVisit(PreIncrementExpression *) override {} + + bool visit(PreDecrementExpression *) override { return true; } + void endVisit(PreDecrementExpression *) override {} + + bool visit(UnaryPlusExpression *) override { return true; } + void endVisit(UnaryPlusExpression *) override {} + + bool visit(UnaryMinusExpression *) override { return true; } + void endVisit(UnaryMinusExpression *) override {} + + bool visit(TildeExpression *) override { return true; } + void endVisit(TildeExpression *) override {} + + bool visit(NotExpression *) override { return true; } + void endVisit(NotExpression *) override {} + + bool visit(BinaryExpression *) override { return true; } + void endVisit(BinaryExpression *) override {} + + bool visit(ConditionalExpression *) override { return true; } + void endVisit(ConditionalExpression *) override {} + + bool visit(Expression *) override { return true; } + void endVisit(Expression *) override {} + + bool visit(Block *) override { return true; } + void endVisit(Block *) override {} + + bool visit(StatementList *) override { return true; } + void endVisit(StatementList *) override {} + + bool visit(VariableStatement *) override { return true; } + void endVisit(VariableStatement *) override {} + + bool visit(VariableDeclarationList *) override { return true; } + void endVisit(VariableDeclarationList *) override {} + + bool visit(EmptyStatement *) override { return true; } + void endVisit(EmptyStatement *) override {} + + bool visit(ExpressionStatement *) override { return true; } + void endVisit(ExpressionStatement *) override {} + + bool visit(IfStatement *) override { return true; } + void endVisit(IfStatement *) override {} + + bool visit(DoWhileStatement *) override { return true; } + void endVisit(DoWhileStatement *) override {} + + bool visit(WhileStatement *) override { return true; } + void endVisit(WhileStatement *) override {} + + bool visit(ForStatement *) override { return true; } + void endVisit(ForStatement *) override {} + + bool visit(ForEachStatement *) override { return true; } + void endVisit(ForEachStatement *) override {} + + bool visit(ContinueStatement *) override { return true; } + void endVisit(ContinueStatement *) override {} + + bool visit(BreakStatement *) override { return true; } + void endVisit(BreakStatement *) override {} + + bool visit(ReturnStatement *) override { return true; } + void endVisit(ReturnStatement *) override {} + + bool visit(YieldExpression *) override { return true; } + void endVisit(YieldExpression *) override {} + + bool visit(WithStatement *) override { return true; } + void endVisit(WithStatement *) override {} + + bool visit(SwitchStatement *) override { return true; } + void endVisit(SwitchStatement *) override {} + + bool visit(CaseBlock *) override { return true; } + void endVisit(CaseBlock *) override {} + + bool visit(CaseClauses *) override { return true; } + void endVisit(CaseClauses *) override {} + + bool visit(CaseClause *) override { return true; } + void endVisit(CaseClause *) override {} + + bool visit(DefaultClause *) override { return true; } + void endVisit(DefaultClause *) override {} + + bool visit(LabelledStatement *) override { return true; } + void endVisit(LabelledStatement *) override {} + + bool visit(ThrowStatement *) override { return true; } + void endVisit(ThrowStatement *) override {} + + bool visit(TryStatement *) override { return true; } + void endVisit(TryStatement *) override {} + + bool visit(Catch *) override { return true; } + void endVisit(Catch *) override {} + + bool visit(Finally *) override { return true; } + void endVisit(Finally *) override {} + + bool visit(FunctionDeclaration *) override { return true; } + void endVisit(FunctionDeclaration *) override {} + + bool visit(FunctionExpression *) override { return true; } + void endVisit(FunctionExpression *) override {} + + bool visit(FormalParameterList *) override { return true; } + void endVisit(FormalParameterList *) override {} + + bool visit(ClassExpression *) override { return true; } + void endVisit(ClassExpression *) override {} + + bool visit(ClassDeclaration *) override { return true; } + void endVisit(ClassDeclaration *) override {} + + bool visit(ClassElementList *) override { return true; } + void endVisit(ClassElementList *) override {} + + bool visit(Program *) override { return true; } + void endVisit(Program *) override {} + + bool visit(NameSpaceImport *) override { return true; } + void endVisit(NameSpaceImport *) override {} + + bool visit(ImportSpecifier *) override { return true; } + void endVisit(ImportSpecifier *) override {} + + bool visit(ImportsList *) override { return true; } + void endVisit(ImportsList *) override {} + + bool visit(NamedImports *) override { return true; } + void endVisit(NamedImports *) override {} + + bool visit(FromClause *) override { return true; } + void endVisit(FromClause *) override {} + + bool visit(ImportClause *) override { return true; } + void endVisit(ImportClause *) override {} + + bool visit(ImportDeclaration *) override { return true; } + void endVisit(ImportDeclaration *) override {} + + bool visit(ExportSpecifier *) override { return true; } + void endVisit(ExportSpecifier *) override {} + + bool visit(ExportsList *) override { return true; } + void endVisit(ExportsList *) override {} + + bool visit(ExportClause *) override { return true; } + void endVisit(ExportClause *) override {} + + bool visit(ExportDeclaration *) override { return true; } + void endVisit(ExportDeclaration *) override {} + + bool visit(ESModule *) override { return true; } + void endVisit(ESModule *) override {} + + bool visit(DebuggerStatement *) override { return true; } + void endVisit(DebuggerStatement *) override {} + + bool visit(Type *) override { return true; } + void endVisit(Type *) override {} + + bool visit(TypeArgumentList *) override { return true; } + void endVisit(TypeArgumentList *) override {} + + bool visit(TypeAnnotation *) override { return true; } + void endVisit(TypeAnnotation *) override {} +}; + } } // namespace AST QT_END_NAMESPACE |