21#include <private/qqmljsmemorypool_p.h>
23#include <QtCore/qtaggedpointer.h>
24#include <QtCore/qversionnumber.h>
36#define QQMLJS_DECLARE_AST_NODE(name) \
37 enum { K = Kind_##name };
98template <
typename T1,
typename T2>
101 if (ast && ast->kind == std::remove_pointer_t<T1>::K)
102 return static_cast<T1
>(ast);
240 Kind_UiAnnotationList
255 virtual Pattern *patternCast();
260 bool ignoreRecursionDepth()
const;
269 if (recursionCheck() || ignoreRecursionDepth()) {
289 int kind = Kind_Undefined;
296 while (current->next)
297 current = current->next;
315 previous->
next =
this;
328 {
return identifierToken; }
347 out->append(
it->name);
366 , typeArgument(typeArgument ? typeArgument->typeId :
nullptr)
372 {
return typeId->firstSourceLocation(); }
375 {
return typeArgument ? typeArgument->lastSourceLocation() : typeId->lastSourceLocation(); }
397 {
return colonToken; }
400 {
return type->lastSourceLocation(); }
412 bool containsOptionalChain()
const;
437 : expression(expression)
443 {
return lparenToken; }
446 {
return rparenToken; }
468 return m_type->firstSourceLocation();
472 return m_type->lastSourceLocation();
488 {
return thisToken; }
491 {
return thisToken; }
503 name (
n) { kind = K; }
508 {
return identifierToken; }
511 {
return identifierToken; }
528 {
return nullToken; }
531 {
return nullToken; }
547 {
return trueToken; }
550 {
return trueToken; }
566 {
return falseToken; }
569 {
return falseToken; }
585 {
return superToken; }
588 {
return superToken; }
606 {
return literalToken; }
609 {
return literalToken; }
637 return minorToken.
isValid() ? minorToken : majorToken;
657 {
return literalToken; }
660 {
return literalToken; }
677 {
return literalToken; }
682 return (last->expression ? last->expression->lastSourceLocation() : last->literalToken);
687 bool hasNoSubstitution =
false;
706 {
return literalToken; }
709 {
return literalToken; }
724 Pattern *patternCast()
override;
741 {
return lbracketToken; }
744 {
return rbracketToken; }
746 bool isValidArrayLiteral(
SourceLocation *errorLocation =
nullptr)
const;
772 {
return lbraceToken; }
775 {
return rbraceToken; }
797 previous->
next =
this;
803 {
return commaToken; }
828 {
return propertyNameToken; }
831 {
return propertyNameToken; }
889 RestElement = SpreadElement,
900 : bindingIdentifier(
n), initializer(
i),
type(
t)
901 , typeAnnotation(typeAnnotation)
918 {
return identifierToken.
isValid() ? identifierToken : (bindingTarget ? bindingTarget->firstSourceLocation() : initializer->firstSourceLocation()); }
921 {
return initializer ? initializer->lastSourceLocation() : (bindingTarget ? bindingTarget->lastSourceLocation() : (typeAnnotation ? typeAnnotation->lastSourceLocation() : identifierToken)); }
929 bool isLexicallyScoped()
const {
return scope == VariableScope::Let || scope == VariableScope::Const; }
942 bool isForDeclaration =
false;
943 bool isInjectedSignalParameter =
false;
952 : elision(elision), element(element),
next(
this)
973 {
return elision ? elision->firstSourceLocation() : element->firstSourceLocation(); }
978 return last->element ? last->element->lastSourceLocation() : last->elision->lastSourceLocation();
1006 {
return name->firstSourceLocation(); }
1010 return loc.
isValid() ? loc :
name->lastSourceLocation();
1036 previous->
next =
this;
1051 {
return property->firstSourceLocation(); }
1066 id (
n) { kind = K; }
1082 id (
n) { kind = K; }
1098 id (
n) { kind = K; }
1102 QString asString()
const override;
1114 : expression(expression)
1144 {
return base->firstSourceLocation(); }
1147 {
return rbracketToken; }
1154 bool isOptional =
false;
1169 {
return base->firstSourceLocation(); }
1172 {
return identifierToken; }
1179 bool isOptional =
false;
1188 :
base (
b), templateLiteral(
t)
1194 {
return base->firstSourceLocation(); }
1197 {
return templateLiteral->lastSourceLocation(); }
1216 {
return newToken; }
1219 {
return rparenToken; }
1235 expression (
e) { kind = K; }
1240 {
return newToken; }
1262 {
return base->firstSourceLocation(); }
1265 {
return rparenToken; }
1272 bool isOptional =
false;
1289 previous->
next =
this;
1300 return next->lastSourceLocation();
1315 bool isSpreadElement =
false;
1324 base (
b) { kind = K; }
1329 {
return base->firstSourceLocation(); }
1332 {
return incrementToken; }
1345 base (
b) { kind = K; }
1350 {
return base->firstSourceLocation(); }
1353 {
return decrementToken; }
1366 expression (
e) { kind = K; }
1371 {
return deleteToken; }
1387 expression (
e) { kind = K; }
1392 {
return voidToken; }
1408 expression (
e) { kind = K; }
1413 {
return typeofToken; }
1429 expression (
e) { kind = K; }
1434 {
return incrementToken; }
1450 expression (
e) { kind = K; }
1455 {
return decrementToken; }
1471 expression (
e) { kind = K; }
1476 {
return plusToken; }
1492 expression (
e) { kind = K; }
1497 {
return minusToken; }
1513 expression (
e) { kind = K; }
1518 {
return tildeToken; }
1534 expression (
e) { kind = K; }
1539 {
return notToken; }
1563 {
return left->firstSourceLocation(); }
1566 {
return right->lastSourceLocation(); }
1581 expression (
e),
ok (
t), ko (
f)
1590 {
return ko->lastSourceLocation(); }
1611 {
return left->firstSourceLocation(); }
1614 {
return right->lastSourceLocation(); }
1628 statements (slist) { kind = K; }
1633 {
return lbraceToken; }
1636 {
return rbraceToken; }
1663 {
return statement->firstSourceLocation(); }
1696 previous->
next =
this;
1702 {
return declaration->firstSourceLocation(); }
1707 return next->lastSourceLocation();
1708 return declaration->lastSourceLocation();
1716 for (vdl = front; vdl !=
nullptr; vdl = vdl->
next) {
1734 declarations (vlist)
1740 {
return declarationKindToken; }
1743 {
return declarations->lastSourceLocation(); }
1760 {
return semicolonToken; }
1763 {
return semicolonToken; }
1775 expression (
e) { kind = K; }
1783 {
return semicolonToken; }
1796 expression (
e),
ok (
t), ko (
f)
1809 return ok->lastSourceLocation();
1828 statement (stmt), expression (
e)
1837 {
return semicolonToken; }
1855 expression (
e), statement (stmt)
1861 {
return whileToken; }
1880 initialiser (
i),
condition (
c), expression (
e), statement (stmt)
1884 declarations (vlist),
condition (
c), expression (
e), statement (stmt)
1891 {
return forToken; }
1920 : lhs(
i), expression(
e), statement(stmt)
1923 : lhs(
v), expression(
e), statement(stmt)
1929 {
return forToken; }
1935 return AST::cast<PatternElement *>(lhs);
1955 label (l) { kind = K; }
1960 {
return continueToken; }
1963 {
return semicolonToken; }
1978 label (l) { kind = K; }
1983 {
return breakToken; }
1986 {
return semicolonToken; }
2001 expression (
e) { kind = K; }
2006 {
return returnToken; }
2009 {
return semicolonToken; }
2023 expression (
e) { kind = K; }
2028 {
return yieldToken; }
2035 bool isYieldStar =
false;
2045 expression (
e), statement (stmt)
2051 {
return withToken; }
2070 clauses (
c), defaultClause (
d), moreClauses (
r)
2076 {
return lbraceToken; }
2079 {
return rbraceToken; }
2095 expression (
e), block (
b)
2101 {
return switchToken; }
2104 {
return block->rbraceToken; }
2120 expression (
e), statements (slist)
2126 {
return caseToken; }
2152 previous->
next =
this;
2158 {
return clause->firstSourceLocation(); }
2189 {
return defaultToken; }
2206 label (l), statement (stmt)
2212 {
return identifierToken; }
2230 expression (
e) { kind = K; }
2235 {
return throwToken; }
2238 {
return semicolonToken; }
2252 : patternElement(
p), statement(stmt)
2258 {
return catchToken; }
2284 {
return finallyToken; }
2300 statement (stmt), catchExpression (
c), finallyExpression (
f)
2304 statement (stmt), catchExpression (
nullptr), finallyExpression (
f)
2308 statement (stmt), catchExpression (
c), finallyExpression (
nullptr)
2314 {
return tryToken; }
2318 if (finallyExpression)
2319 return finallyExpression->statement->rbraceToken;
2320 else if (catchExpression)
2321 return catchExpression->statement->rbraceToken;
2339 name (
n), formals (
f), body (
b),
2340 typeAnnotation(typeAnnotation)
2346 {
return functionToken; }
2349 {
return rbraceToken; }
2355 bool isArrowFunction =
false;
2356 bool isGenerator =
false;
2390 next = previous->next;
2391 previous->next =
this;
2408 if (
e &&
e->type == PatternElement::RestElement)
2410 if (
e && (
e->initializer ||
e->bindingTarget))
2412 formals = formals->
next;
2424 if (!
e ||
e->initializer)
2426 if (
e->type == PatternElement::RestElement)
2429 formals = formals->
next;
2438 if (
b &&
b->bindingIdentifier ==
name)
2477 {
return classToken; }
2480 {
return rbraceToken; }
2528 {
return property->firstSourceLocation(); }
2533 return next->lastSourceLocation();
2534 return property->lastSourceLocation();
2550 : statements(statements)
2571 : importedBinding(importedBinding)
2577 : identifier(identifier), importedBinding(importedBinding)
2585 {
return identifier.isNull() ? importedBindingToken : identifierToken; }
2587 {
return importedBindingToken; }
2602 : importSpecifier(importSpecifier)
2609 : importSpecifier(importSpecifier)
2614 previous->
next =
this;
2630 {
return importSpecifierToken; }
2654 : importsList(importsList)
2662 {
return leftBraceToken; }
2664 {
return rightBraceToken; }
2678 : importedBinding(importedBinding)
2686 {
return starToken; }
2688 {
return importedBindingToken; }
2702 : importedDefaultBinding(importedDefaultBinding)
2708 : nameSpaceImport(nameSpaceImport)
2714 : namedImports(namedImports)
2720 : importedDefaultBinding(importedDefaultBinding)
2721 , nameSpaceImport(nameSpaceImport)
2727 : importedDefaultBinding(importedDefaultBinding)
2728 , namedImports(namedImports)
2736 {
return importedDefaultBinding.isNull() ? (nameSpaceImport ? nameSpaceImport->firstSourceLocation() : namedImports->firstSourceLocation()) : importedDefaultBindingToken; }
2738 {
return importedDefaultBinding.isNull() ? (nameSpaceImport ? nameSpaceImport->lastSourceLocation() : namedImports->lastSourceLocation()) : importedDefaultBindingToken; }
2753 : moduleSpecifier(moduleSpecifier)
2761 {
return fromToken; }
2764 {
return moduleSpecifierToken; }
2778 : importClause(importClause), fromClause(fromClause)
2784 : moduleSpecifier(moduleSpecifier)
2792 {
return importToken; }
2795 {
return moduleSpecifier.
isNull() ? fromClause->lastSourceLocation() : moduleSpecifierToken; }
2811 : identifier(identifier), exportedIdentifier(identifier)
2817 : identifier(identifier), exportedIdentifier(exportedIdentifier)
2825 {
return identifierToken; }
2827 {
return exportedIdentifierToken.
isValid() ? exportedIdentifierToken : identifierToken; }
2842 : exportSpecifier(exportSpecifier)
2849 : exportSpecifier(exportSpecifier)
2854 previous->
next =
this;
2870 {
return exportSpecifier->firstSourceLocation(); }
2872 {
return lastListElement(
this)->exportSpecifier->lastSourceLocation(); }
2890 : exportsList(exportsList)
2898 {
return leftBraceToken; }
2900 {
return rightBraceToken; }
2914 : fromClause(fromClause)
2920 : exportClause(exportClause), fromClause(fromClause)
2926 : exportClause(exportClause)
2932 : variableStatementOrDeclaration(variableStatementOrDeclaration)
2933 , exportDefault(exportDefault)
2940 return fromClause && !exportClause;
2946 {
return exportToken; }
2948 {
return fromClause ? fromClause->
lastSourceLocation() : (exportClause ? exportClause->lastSourceLocation() : variableStatementOrDeclaration->lastSourceLocation()); }
2954 Node *variableStatementOrDeclaration =
nullptr;
2955 bool exportDefault =
false;
2992 {
return debuggerToken; }
2995 {
return semicolonToken; }
3018 {
return importToken; }
3021 {
return semicolonToken; }
3061 previous->
next =
this;
3067 {
return member->firstSourceLocation(); }
3101 previous->
next =
this;
3136 {
return pragmaToken; }
3139 {
return semicolonToken; }
3160 {
return requiredToken; }
3163 {
return semicolonToken; }
3184 : headerItem(import)
3188 previous->
next =
this;
3192 : headerItem(pragma)
3196 previous->
next =
this;
3209 {
return headerItem->firstSourceLocation(); }
3233 return headers->firstSourceLocation();
3235 return members->firstSourceLocation();
3242 return members->lastSourceLocation();
3244 return headers->lastSourceLocation();
3267 previous->
next =
this;
3303 {
return lbraceToken; }
3306 {
return rbraceToken; }
3328 previous->
next =
this;
3334 {
return colonToken.
isValid() ? identifierToken : propertyTypeToken; }
3339 return last->lastOwnSourceLocation();
3344 return (colonToken.
isValid() ? propertyTypeToken : identifierToken);
3379 template <
bool Inval
idIsLargest = true>
3385 return InvalidIsLargest;
3387 return !InvalidIsLargest;
3397 friend class QQmlJS::Parser;
3411 :
type(Property), memberType(memberType),
name(
name), statement(
nullptr), binding(
nullptr), parameters(
nullptr)
3425 return m_attributes->firstSourceLocation();
3427 return m_propertyToken;
3433 return binding->lastSourceLocation();
3437 return semicolonToken;
3442 return hasAttributes ? m_attributes->defaultToken() :
SourceLocation {};
3448 return hasAttributes ? m_attributes->requiredToken() :
SourceLocation {};
3454 return hasAttributes ? m_attributes->readonlyToken() :
SourceLocation {};
3460 m_attributes = attributes;
3461 hasAttributes =
true;
3466 return hasAttributes ? m_attributes->propertyToken() : m_propertyToken;
3471 m_propertyToken =
token;
3472 hasAttributes =
false;
3476 enum :
bool { Signal, Property }
type;
3477 bool hasAttributes =
false;
3504 : qualifiedTypeNameId(qualifiedTypeNameId), initializer(initializer)
3510 {
return qualifiedTypeNameId->identifierToken; }
3513 {
return initializer->rbraceToken; }
3530 {
return component->lastSourceLocation();}
3533 {
return componentToken;}
3549 : sourceElement(sourceElement)
3555 return funDecl->firstSourceLocation();
3557 return varStmt->firstSourceLocation();
3565 return funDecl->lastSourceLocation();
3567 return varStmt->lastSourceLocation();
3587 : qualifiedId(qualifiedId),
3588 qualifiedTypeNameId(qualifiedTypeNameId),
3589 initializer(initializer),
3595 if (hasOnToken && qualifiedTypeNameId)
3598 return qualifiedId->identifierToken;
3602 {
return initializer->rbraceToken; }
3622 : qualifiedId(qualifiedId),
3623 statement(statement)
3647 : qualifiedId(qualifiedId),
3655 {
return rbracketToken; }
3680 previous->
next =
this;
3685 : member(member),
value(
v)
3689 previous->
next =
this;
3693 {
return memberToken; }
3698 return last->valueToken.isValid() ? last->valueToken : last->memberToken;
3730 {
return enumToken; }
3733 {
return rbraceToken; }
3753 : qualifiedTypeNameId(qualifiedTypeNameId), initializer(initializer)
3762 {
return initializer->rbraceToken; }
3775 :
next(
this), annotation(annotation)
3779 : annotation(annotation)
3783 previous->
next =
this;
3789 {
return annotation->firstSourceLocation(); }
const_iterator constBegin() const noexcept
const_iterator constEnd() const noexcept
friend qsizetype QtPrivate::indexOf(const QList< V > &list, const U &u, qsizetype from) noexcept
ArgumentList(ArgumentList *previous, ExpressionNode *e)
SourceLocation lastSourceLocation() const override
SourceLocation commaToken
ExpressionNode * expression
SourceLocation firstSourceLocation() const override
SourceLocation lbracketToken
ExpressionNode * expression
SourceLocation lastSourceLocation() const override
SourceLocation rbracketToken
SourceLocation firstSourceLocation() const override
SourceLocation rbracketToken
SourceLocation lastSourceLocation() const override
SourceLocation lbracketToken
SourceLocation commaToken
SourceLocation firstSourceLocation() const override
virtual QQmlJSASTClassListToVisit void throwRecursionDepthError()=0
virtual bool preVisit(Node *)=0
virtual void postVisit(Node *)=0
SourceLocation operatorToken
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
StatementList * statements
SourceLocation rbraceToken
SourceLocation firstSourceLocation() const override
SourceLocation lbraceToken
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation identifierToken
SourceLocation lastSourceLocation() const override
SourceLocation semicolonToken
SourceLocation breakToken
SourceLocation rparenToken
SourceLocation lparenToken
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation lastSourceLocation() const override
CaseClauses * moreClauses
SourceLocation lbraceToken
SourceLocation rbraceToken
DefaultClause * defaultClause
SourceLocation firstSourceLocation() const override
SourceLocation firstSourceLocation() const override
ExpressionNode * expression
SourceLocation colonToken
SourceLocation lastSourceLocation() const override
StatementList * statements
CaseClauses(CaseClauses *previous, CaseClause *c)
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation identifierToken
SourceLocation lparenToken
SourceLocation rparenToken
PatternElement * patternElement
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation catchToken
PatternProperty * property
ClassElementList * append(ClassElementList *n)
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation rbraceToken
SourceLocation firstSourceLocation() const override
ExpressionNode * heritage
ClassElementList * elements
SourceLocation lbraceToken
SourceLocation lastSourceLocation() const override
SourceLocation identifierToken
SourceLocation classToken
ExpressionNode * expression
QString asString() const override
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation colonToken
SourceLocation firstSourceLocation() const override
SourceLocation questionToken
ExpressionNode * expression
SourceLocation lastSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation identifierToken
SourceLocation firstSourceLocation() const override
SourceLocation semicolonToken
SourceLocation continueToken
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation debuggerToken
SourceLocation semicolonToken
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation defaultToken
StatementList * statements
SourceLocation colonToken
SourceLocation firstSourceLocation() const override
SourceLocation deleteToken
SourceLocation lastSourceLocation() const override
ExpressionNode * expression
ExpressionNode * expression
SourceLocation semicolonToken
SourceLocation whileToken
SourceLocation rparenToken
SourceLocation lparenToken
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation commaToken
Elision(Elision *previous)
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation semicolonToken
SourceLocation firstSourceLocation() const override
ExportClause(ExportsList *exportsList)
SourceLocation lastSourceLocation() const override
SourceLocation rightBraceToken
SourceLocation leftBraceToken
SourceLocation firstSourceLocation() const override
ExportDeclaration(ExportClause *exportClause)
SourceLocation firstSourceLocation() const override
SourceLocation exportToken
ExportDeclaration(bool exportDefault, Node *variableStatementOrDeclaration)
ExportDeclaration(ExportClause *exportClause, FromClause *fromClause)
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation identifierToken
QStringView exportedIdentifier
ExportSpecifier(QStringView identifier, QStringView exportedIdentifier)
SourceLocation lastSourceLocation() const override
SourceLocation exportedIdentifierToken
ExportSpecifier * exportSpecifier
SourceLocation lastSourceLocation() const override
ExportsList(ExportsList *previous, ExportSpecifier *exportSpecifier)
SourceLocation firstSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
ExpressionNode * expression
SourceLocation semicolonToken
SourceLocation firstSourceLocation() const override
SourceLocation commaToken
SourceLocation lastSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation falseToken
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation identifierToken
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation finallyToken
SourceLocation lastSourceLocation() const override
ForEachStatement(PatternElement *v, ExpressionNode *e, Statement *stmt)
SourceLocation rparenToken
SourceLocation firstSourceLocation() const override
PatternElement * declaration() const
ExpressionNode * expression
SourceLocation lparenToken
ForStatement(VariableDeclarationList *vlist, ExpressionNode *c, ExpressionNode *e, Statement *stmt)
ExpressionNode * expression
SourceLocation secondSemicolonToken
SourceLocation rparenToken
SourceLocation lastSourceLocation() const override
SourceLocation firstSemicolonToken
ExpressionNode * condition
SourceLocation lparenToken
SourceLocation firstSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation moduleSpecifierToken
SourceLocation lastSourceLocation() const override
QStringView moduleSpecifier
FormalParameterList * formals
SourceLocation firstSourceLocation() const override
FunctionExpression * asFunctionDefinition() override
SourceLocation lastSourceLocation() const override
SourceLocation functionToken
SourceLocation rparenToken
SourceLocation lbraceToken
SourceLocation rbraceToken
SourceLocation lparenToken
SourceLocation identifierToken
TypeAnnotation * typeAnnotation
SourceLocation firstSourceLocation() const override
SourceLocation identifierToken
SourceLocation lastSourceLocation() const override
QString asString() const override
SourceLocation rparenToken
SourceLocation lastSourceLocation() const override
SourceLocation lparenToken
ExpressionNode * expression
SourceLocation firstSourceLocation() const override
SourceLocation importedDefaultBindingToken
ImportClause(QStringView importedDefaultBinding, NamedImports *namedImports)
ImportClause(NamedImports *namedImports)
virtual SourceLocation firstSourceLocation() const override
virtual SourceLocation lastSourceLocation() const override
QStringView importedDefaultBinding
ImportClause(QStringView importedDefaultBinding, NameSpaceImport *nameSpaceImport)
ImportClause(NameSpaceImport *nameSpaceImport)
SourceLocation lastSourceLocation() const override
ImportDeclaration(QStringView moduleSpecifier)
SourceLocation moduleSpecifierToken
SourceLocation importToken
SourceLocation firstSourceLocation() const override
QStringView moduleSpecifier
SourceLocation identifierToken
SourceLocation importedBindingToken
SourceLocation firstSourceLocation() const override
QStringView importedBinding
SourceLocation lastSourceLocation() const override
ImportSpecifier(QStringView identifier, QStringView importedBinding)
ImportSpecifier * importSpecifier
SourceLocation importSpecifierToken
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
ImportsList(ImportsList *previous, ImportSpecifier *importSpecifier)
SourceLocation identifierToken
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation colonToken
virtual SourceLocation firstSourceLocation() const override
QStringView importedBinding
virtual SourceLocation lastSourceLocation() const override
SourceLocation importedBindingToken
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation rightBraceToken
SourceLocation leftBraceToken
NamedImports(ImportsList *importsList)
SourceLocation rparenToken
SourceLocation firstSourceLocation() const override
SourceLocation lparenToken
SourceLocation lastSourceLocation() const override
ExpressionNode * expression
SourceLocation lastSourceLocation() const override
ExpressionNode * expression
SourceLocation firstSourceLocation() const override
SourceLocation lparenToken
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation rparenToken
virtual SourceLocation firstSourceLocation() const =0
void accept(BaseVisitor *visitor)
virtual SourceLocation lastSourceLocation() const =0
virtual void accept0(BaseVisitor *visitor)=0
static void accept(Node *node, BaseVisitor *visitor)
@ Kind_FormalParameterList
@ Kind_IdentifierPropertyName
@ Kind_PropertyNameAndValue
@ Kind_ArrayMemberExpression
@ Kind_PostIncrementExpression
@ Kind_PreIncrementExpression
@ Kind_ConditionalExpression
@ Kind_UiObjectMemberList
@ Kind_UiObjectDefinition
@ Kind_FunctionExpression
@ Kind_IdentifierExpression
@ Kind_FunctionDeclaration
@ Kind_UnaryPlusExpression
@ Kind_VariableDeclarationList
@ Kind_PreDecrementExpression
@ Kind_VariableDeclaration
@ Kind_NumericLiteralPropertyName
@ Kind_PostDecrementExpression
@ Kind_PatternElementList
@ Kind_StringLiteralPropertyName
@ Kind_PropertyGetterSetter
@ Kind_UiVersionSpecifier
@ Kind_UnaryMinusExpression
@ Kind_NewMemberExpression
@ Kind_PatternPropertyList
@ Kind_UiObjectInitializer
@ Kind_PropertyDefinitionList
@ Kind_FieldMemberExpression
@ Kind_ExpressionStatement
@ Kind_UiPropertyAttributes
@ Kind_ComputedPropertyName
ExpressionNode * expression
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation literalToken
SourceLocation firstSourceLocation() const override
SourceLocation lbraceToken
SourceLocation lastSourceLocation() const override
ObjectPattern(PatternPropertyList *plist)
SourceLocation rbraceToken
PatternElementList * next
PatternElementList * finish()
PatternElementList * append(PatternElementList *n)
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
PatternPropertyList * propertyList() const
PatternElementList * elementList() const
PatternElement(Pattern *pattern, ExpressionNode *i=nullptr, Type t=Binding)
PatternElement(ExpressionNode *i=nullptr, Type t=Literal)
SourceLocation identifierToken
SourceLocation firstSourceLocation() const override
QStringView bindingIdentifier
SourceLocation lastSourceLocation() const override
Pattern * destructuringPattern() const
ExpressionNode * destructuringTarget() const
PatternElement(QStringView n, TypeAnnotation *typeAnnotation=nullptr, ExpressionNode *i=nullptr, Type t=Binding)
bool isVariableDeclaration() const
bool isLexicallyScoped() const
PatternPropertyList * next
PatternPropertyList(PatternPropertyList *previous, PatternProperty *property)
PatternProperty * property
PatternPropertyList * finish()
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation lastSourceLocation() const override
PatternProperty(PropertyName *name, Pattern *pattern, ExpressionNode *i=nullptr)
SourceLocation colonToken
SourceLocation firstSourceLocation() const override
PatternProperty(PropertyName *name, QStringView n, ExpressionNode *i=nullptr)
Pattern * patternCast() override
virtual bool convertLiteralToAssignmentPattern(MemoryPool *pool, SourceLocation *errorLocation, QString *errorMessage)=0
SourceLocation lastSourceLocation() const override
SourceLocation decrementToken
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation incrementToken
SourceLocation decrementToken
SourceLocation firstSourceLocation() const override
ExpressionNode * expression
SourceLocation lastSourceLocation() const override
SourceLocation lastSourceLocation() const override
ExpressionNode * expression
SourceLocation firstSourceLocation() const override
SourceLocation incrementToken
SourceLocation firstSourceLocation() const override
StatementList * statements
SourceLocation lastSourceLocation() const override
SourceLocation propertyNameToken
virtual QString asString() const =0
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation literalToken
SourceLocation firstSourceLocation() const override
ExpressionNode * expression
SourceLocation semicolonToken
SourceLocation firstSourceLocation() const override
SourceLocation returnToken
SourceLocation lastSourceLocation() const override
StatementList * append(StatementList *n)
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
QString asString() const override
SourceLocation firstSourceLocation() const override
SourceLocation literalToken
SourceLocation lastSourceLocation() const override
SourceLocation superToken
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation switchToken
SourceLocation lastSourceLocation() const override
ExpressionNode * expression
SourceLocation rparenToken
SourceLocation lparenToken
SourceLocation firstSourceLocation() const override
TemplateLiteral * templateLiteral
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation literalToken
ExpressionNode * expression
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
ExpressionNode * expression
SourceLocation throwToken
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation semicolonToken
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation tildeToken
ExpressionNode * expression
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
TryStatement(Statement *stmt, Finally *f)
SourceLocation lastSourceLocation() const override
TryStatement(Statement *stmt, Catch *c)
Finally * finallyExpression
SourceLocation firstSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation colonToken
SourceLocation lastSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
ExpressionNode * expression
SourceLocation typeofToken
UiQualifiedId * typeArgument
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation lastSourceLocation() const override
UiAnnotation * annotation
SourceLocation firstSourceLocation() const override
UiAnnotationList(UiAnnotationList *previous, UiAnnotation *annotation)
UiAnnotationList * finish()
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
UiQualifiedId * qualifiedTypeNameId
UiObjectInitializer * initializer
SourceLocation rbracketToken
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
UiQualifiedId * qualifiedId
SourceLocation colonToken
SourceLocation lbracketToken
UiArrayMemberList * members
UiArrayMemberList * finish()
UiArrayMemberList(UiArrayMemberList *previous, UiObjectMember *member)
SourceLocation commaToken
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation rbraceToken
SourceLocation lbraceToken
SourceLocation identifierToken
SourceLocation lastSourceLocation() const override
UiEnumMemberList * members
SourceLocation firstSourceLocation() const override
UiEnumMemberList(QStringView member, double v=0.0)
UiEnumMemberList(UiEnumMemberList *previous, QStringView member, double v)
UiEnumMemberList * finish()
SourceLocation valueToken
SourceLocation memberToken
UiEnumMemberList(UiEnumMemberList *previous, QStringView member)
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
UiImport(UiQualifiedId *uri)
SourceLocation semicolonToken
SourceLocation importIdToken
UiQualifiedId * importUri
SourceLocation fileNameToken
SourceLocation importToken
SourceLocation componentToken
SourceLocation firstSourceLocation() const override
UiObjectDefinition * component
SourceLocation lastSourceLocation() const override
UiQualifiedId * qualifiedTypeNameId
SourceLocation colonToken
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
UiQualifiedId * qualifiedId
UiObjectInitializer * initializer
UiQualifiedId * qualifiedTypeNameId
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
UiObjectInitializer * initializer
SourceLocation firstSourceLocation() const override
SourceLocation rbraceToken
SourceLocation lastSourceLocation() const override
SourceLocation lbraceToken
UiObjectMemberList * members
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
UiObjectMemberList(UiObjectMemberList *previous, UiObjectMember *member)
UiObjectMemberList * finish()
UiObjectMemberList * next
SourceLocation firstSourceLocation() const override=0
SourceLocation lastSourceLocation() const override=0
SourceLocation propertyTypeToken
UiParameterList * finish()
SourceLocation firstSourceLocation() const override
UiParameterList(UiParameterList *previous, Type *t, QStringView n)
SourceLocation lastOwnSourceLocation() const
SourceLocation colonToken
SourceLocation lastSourceLocation() const override
SourceLocation commaToken
SourceLocation identifierToken
UiPragmaValueList(UiPragmaValueList *previous, QStringView value)
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
UiPragmaValueList * finish()
UiPragmaValueList * values
SourceLocation firstSourceLocation() const override
SourceLocation semicolonToken
SourceLocation lastSourceLocation() const override
SourceLocation pragmaToken
UiHeaderItemList * headers
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
UiObjectMemberList * members
void accept0(BaseVisitor *) override
SourceLocation defaultToken() const
bool isDefaultMember() const
SourceLocation propertyToken() const
static bool compareLocationsByBegin(const SourceLocation *&lhs, const SourceLocation *&rhs)
SourceLocation requiredToken() const
SourceLocation readonlyToken() const
SourceLocation semicolonToken
UiParameterList * parameters
SourceLocation identifierToken
SourceLocation firstSourceLocation() const override
UiPublicMember(UiQualifiedId *memberType, QStringView name, Statement *statement)
UiPropertyAttributes * m_attributes
void setAttributes(UiPropertyAttributes *attributes)
SourceLocation lastSourceLocation() const override
SourceLocation defaultToken() const
bool isDefaultMember() const
SourceLocation typeModifierToken
UiQualifiedId * memberType
void setPropertyToken(SourceLocation token)
SourceLocation propertyToken() const
SourceLocation colonToken
SourceLocation readonlyToken() const
SourceLocation requiredToken() const
SourceLocation firstSourceLocation() const override
void toString(QString *out) const
SourceLocation lastSourceLocation() const override
SourceLocation lastOwnSourceLocation() const
SourceLocation identifierToken
UiQualifiedId(UiQualifiedId *previous, QStringView name)
SourceLocation semicolonToken
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation requiredToken
UiQualifiedId * qualifiedId
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation colonToken
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
SourceLocation minorToken
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
UiVersionSpecifier(int majorum, int minorum)
SourceLocation majorToken
SourceLocation firstSourceLocation() const override
ExpressionNode * expression
SourceLocation minusToken
SourceLocation lastSourceLocation() const override
ExpressionNode * expression
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
VariableDeclarationList * finish(VariableScope s)
SourceLocation commaToken
PatternElement * declaration
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
VariableDeclarationList(VariableDeclarationList *previous, PatternElement *decl)
VariableDeclarationList * next
SourceLocation declarationKindToken
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
VariableDeclarationList * declarations
SourceLocation lastSourceLocation() const override
SourceLocation firstSourceLocation() const override
ExpressionNode * expression
ExpressionNode * expression
SourceLocation whileToken
SourceLocation lastSourceLocation() const override
SourceLocation lparenToken
SourceLocation rparenToken
SourceLocation firstSourceLocation() const override
SourceLocation rparenToken
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation lparenToken
ExpressionNode * expression
SourceLocation firstSourceLocation() const override
SourceLocation lastSourceLocation() const override
SourceLocation yieldToken
ExpressionNode * expression
constexpr bool isNull() const noexcept
Returns whether this string view is null - that is, whether {data() == nullptr}.
\macro QT_RESTRICTED_CAST_FROM_ASCII
QSet< QString >::iterator it
QList< QVariant > arguments
FunctionExpression * asAnonymousFunctionDefinition(Node *n)
T lastListElement(T head)
ClassExpression * asAnonymousClassDefinition(Node *n)
Combined button and popup list for selecting options.
static const QCssKnownValue properties[NumProperties - 1]
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
GLenum GLsizei GLsizei GLint * values
[15]
GLboolean GLboolean GLboolean b
GLsizei const GLfloat * v
[13]
GLboolean GLboolean GLboolean GLboolean a
[7]
GLuint GLsizei const GLchar * label
[43]
static qreal component(const QPointF &point, unsigned int i)
#define QQMLJS_DECLARE_AST_NODE(name)
#define QML_PARSER_EXPORT
QCborArray members(const QCborMap *classDef, QLatin1StringView key, QTypeRevision maxMajorVersion, Postprocess &&process)
static const QTextHtmlElement elements[Html_NumElements]
static QString errorMessage(QUrlPrivate::ErrorCode errorCode, const QString &errorSource, qsizetype errorPosition)
QTextStream out(stdout)
[7]
char * toString(const MyType &t)
[31]
\inmodule QtCore \reentrant
QQmlJS::SourceLocation location
BoundName(const QString &id, const QQmlJS::SourceLocation &location, TypeAnnotation *typeAnnotation, Type type=Declared)
QTaggedPointer< TypeAnnotation, Type > typeAnnotation
bool contains(const QString &name) const
int indexOf(const QString &name, int from=0) const