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);
241 Kind_UiAnnotationList
256 virtual Pattern *patternCast();
261 bool ignoreRecursionDepth()
const;
270 if (recursionCheck() || ignoreRecursionDepth()) {
290 int kind = Kind_Undefined;
297 while (current->next)
298 current = current->next;
316 previous->
next =
this;
329 {
return identifierToken; }
348 out->append(
it->name);
368 , typeArgument(typeArgument ? typeArgument->typeId :
nullptr)
374 {
return typeId->firstSourceLocation(); }
377 {
return typeArgument ? typeArgument->lastSourceLocation() : typeId->lastSourceLocation(); }
399 {
return colonToken; }
402 {
return type->lastSourceLocation(); }
414 bool containsOptionalChain()
const;
439 : expression(expression)
445 {
return lparenToken; }
448 {
return rparenToken; }
470 return m_type->firstSourceLocation();
474 return m_type->lastSourceLocation();
490 {
return thisToken; }
493 {
return thisToken; }
505 name (
n) { kind = K; }
510 {
return identifierToken; }
513 {
return identifierToken; }
530 {
return nullToken; }
533 {
return nullToken; }
549 {
return trueToken; }
552 {
return trueToken; }
568 {
return falseToken; }
571 {
return falseToken; }
587 {
return superToken; }
590 {
return superToken; }
608 {
return literalToken; }
611 {
return literalToken; }
639 return minorToken.
isValid() ? minorToken : majorToken;
659 {
return literalToken; }
662 {
return literalToken; }
675 :
value(
str), rawValue(raw), expression(e),
next(
nullptr)
679 {
return literalToken; }
684 return (last->expression ? last->expression->lastSourceLocation() : last->literalToken);
689 bool hasNoSubstitution =
false;
708 {
return literalToken; }
711 {
return literalToken; }
726 Pattern *patternCast()
override;
743 {
return lbracketToken; }
746 {
return rbracketToken; }
748 bool isValidArrayLiteral(
SourceLocation *errorLocation =
nullptr)
const;
774 {
return lbraceToken; }
777 {
return rbraceToken; }
799 previous->
next =
this;
805 {
return commaToken; }
830 {
return propertyNameToken; }
833 {
return propertyNameToken; }
857 bool isInjected()
const {
return typeAnnotation.tag() == Injected; }
894 {
return equalToken; }
924 RestElement = SpreadElement,
937 void unwrapInitializer()
939 if (
auto unwrapped = AST::cast<InitializerExpression *>(initializer)) {
940 equalToken = unwrapped->equalToken;
941 initializer = unwrapped->expression;
954 : bindingIdentifier(
n), initializer(
i),
type(
t)
955 , typeAnnotation(typeAnnotation)
974 {
return identifierToken.
isValid() ? identifierToken : (bindingTarget ? bindingTarget->firstSourceLocation() : initializer->firstSourceLocation()); }
977 {
return initializer ? initializer->lastSourceLocation() : (bindingTarget ? bindingTarget->lastSourceLocation() : (typeAnnotation ? typeAnnotation->lastSourceLocation() : identifierToken)); }
985 bool isLexicallyScoped()
const {
return scope == VariableScope::Let || scope == VariableScope::Const; }
1000 bool isForDeclaration =
false;
1001 bool isInjectedSignalParameter =
false;
1010 : elision(elision), element(element),
next(
this)
1031 {
return elision ? elision->firstSourceLocation() : element->firstSourceLocation(); }
1036 return last->element ? last->element->lastSourceLocation() : last->elision->lastSourceLocation();
1064 {
return name->firstSourceLocation(); }
1068 return loc.
isValid() ? loc :
name->lastSourceLocation();
1094 previous->
next =
this;
1109 {
return property->firstSourceLocation(); }
1124 id (
n) { kind = K; }
1140 id (
n) { kind = K; }
1156 id (
n) { kind = K; }
1172 : expression(expression)
1196 base (
b), expression (e)
1202 {
return base->firstSourceLocation(); }
1205 {
return rbracketToken; }
1212 bool isOptional =
false;
1227 {
return base->firstSourceLocation(); }
1230 {
return identifierToken; }
1237 bool isOptional =
false;
1246 :
base (
b), templateLiteral(
t)
1252 {
return base->firstSourceLocation(); }
1255 {
return templateLiteral->lastSourceLocation(); }
1274 {
return newToken; }
1277 {
return rparenToken; }
1293 expression (e) { kind = K; }
1298 {
return newToken; }
1320 {
return base->firstSourceLocation(); }
1323 {
return rparenToken; }
1330 bool isOptional =
false;
1347 previous->
next =
this;
1358 return next->lastSourceLocation();
1373 bool isSpreadElement =
false;
1382 base (
b) { kind = K; }
1387 {
return base->firstSourceLocation(); }
1390 {
return incrementToken; }
1403 base (
b) { kind = K; }
1408 {
return base->firstSourceLocation(); }
1411 {
return decrementToken; }
1424 expression (e) { kind = K; }
1429 {
return deleteToken; }
1445 expression (e) { kind = K; }
1450 {
return voidToken; }
1466 expression (e) { kind = K; }
1471 {
return typeofToken; }
1487 expression (e) { kind = K; }
1492 {
return incrementToken; }
1508 expression (e) { kind = K; }
1513 {
return decrementToken; }
1529 expression (e) { kind = K; }
1534 {
return plusToken; }
1550 expression (e) { kind = K; }
1555 {
return minusToken; }
1571 expression (e) { kind = K; }
1576 {
return tildeToken; }
1592 expression (e) { kind = K; }
1597 {
return notToken; }
1621 {
return left->firstSourceLocation(); }
1624 {
return right->lastSourceLocation(); }
1639 expression (e),
ok (
t), ko (
f)
1648 {
return ko->lastSourceLocation(); }
1669 {
return left->firstSourceLocation(); }
1672 {
return right->lastSourceLocation(); }
1686 statements (slist) { kind = K; }
1691 {
return lbraceToken; }
1694 {
return rbraceToken; }
1721 {
return statement->firstSourceLocation(); }
1754 previous->
next =
this;
1760 {
return declaration->firstSourceLocation(); }
1765 return next->lastSourceLocation();
1766 return declaration->lastSourceLocation();
1774 for (vdl = front; vdl !=
nullptr; vdl = vdl->
next) {
1792 declarations (vlist)
1798 {
return declarationKindToken; }
1801 {
return declarations->lastSourceLocation(); }
1818 {
return semicolonToken; }
1821 {
return semicolonToken; }
1833 expression (e) { kind = K; }
1841 {
return semicolonToken; }
1854 expression (e),
ok (
t), ko (
f)
1867 return ok->lastSourceLocation();
1886 statement (stmt), expression (e)
1895 {
return semicolonToken; }
1913 expression (e), statement (stmt)
1919 {
return whileToken; }
1938 initialiser (
i),
condition (
c), expression (e), statement (stmt)
1942 declarations (vlist),
condition (
c), expression (e), statement (stmt)
1949 {
return forToken; }
1978 : lhs(
i), expression(e), statement(stmt)
1981 : lhs(
v), expression(e), statement(stmt)
1987 {
return forToken; }
1993 return AST::cast<PatternElement *>(lhs);
2013 label (l) { kind = K; }
2018 {
return continueToken; }
2021 {
return semicolonToken; }
2036 label (l) { kind = K; }
2041 {
return breakToken; }
2044 {
return semicolonToken; }
2059 expression (e) { kind = K; }
2064 {
return returnToken; }
2067 {
return semicolonToken; }
2081 expression (e) { kind = K; }
2086 {
return yieldToken; }
2093 bool isYieldStar =
false;
2103 expression (e), statement (stmt)
2109 {
return withToken; }
2128 clauses (
c), defaultClause (
d), moreClauses (
r)
2134 {
return lbraceToken; }
2137 {
return rbraceToken; }
2153 expression (e), block (
b)
2159 {
return switchToken; }
2162 {
return block->rbraceToken; }
2178 expression (e), statements (slist)
2184 {
return caseToken; }
2210 previous->
next =
this;
2216 {
return clause->firstSourceLocation(); }
2247 {
return defaultToken; }
2264 label (l), statement (stmt)
2270 {
return identifierToken; }
2288 expression (e) { kind = K; }
2293 {
return throwToken; }
2296 {
return semicolonToken; }
2310 : patternElement(
p), statement(stmt)
2316 {
return catchToken; }
2342 {
return finallyToken; }
2358 statement (stmt), catchExpression (
c), finallyExpression (
f)
2362 statement (stmt), catchExpression (
nullptr), finallyExpression (
f)
2366 statement (stmt), catchExpression (
c), finallyExpression (
nullptr)
2372 {
return tryToken; }
2376 if (finallyExpression)
2377 return finallyExpression->statement->rbraceToken;
2378 else if (catchExpression)
2379 return catchExpression->statement->rbraceToken;
2397 name (
n), formals (
f), body (
b),
2398 typeAnnotation(typeAnnotation)
2404 {
return functionToken; }
2407 {
return rbraceToken; }
2413 bool isArrowFunction =
false;
2414 bool isGenerator =
false;
2448 next = previous->next;
2449 previous->next =
this;
2466 if (e && e->
type == PatternElement::RestElement)
2470 formals = formals->
next;
2484 if (e->
type == PatternElement::RestElement)
2487 formals = formals->
next;
2496 if (
b &&
b->bindingIdentifier ==
name)
2535 {
return classToken; }
2538 {
return rbraceToken; }
2586 {
return property->firstSourceLocation(); }
2591 return next->lastSourceLocation();
2592 return property->lastSourceLocation();
2608 : statements(statements)
2629 : importedBinding(importedBinding)
2635 : identifier(identifier), importedBinding(importedBinding)
2643 {
return identifier.isNull() ? importedBindingToken : identifierToken; }
2645 {
return importedBindingToken; }
2660 : importSpecifier(importSpecifier)
2667 : importSpecifier(importSpecifier)
2672 previous->
next =
this;
2688 {
return importSpecifierToken; }
2712 : importsList(importsList)
2720 {
return leftBraceToken; }
2722 {
return rightBraceToken; }
2736 : importedBinding(importedBinding)
2744 {
return starToken; }
2746 {
return importedBindingToken; }
2760 : importedDefaultBinding(importedDefaultBinding)
2766 : nameSpaceImport(nameSpaceImport)
2772 : namedImports(namedImports)
2778 : importedDefaultBinding(importedDefaultBinding)
2779 , nameSpaceImport(nameSpaceImport)
2785 : importedDefaultBinding(importedDefaultBinding)
2786 , namedImports(namedImports)
2794 {
return importedDefaultBinding.isNull() ? (nameSpaceImport ? nameSpaceImport->firstSourceLocation() : namedImports->firstSourceLocation()) : importedDefaultBindingToken; }
2796 {
return importedDefaultBinding.isNull() ? (nameSpaceImport ? nameSpaceImport->lastSourceLocation() : namedImports->lastSourceLocation()) : importedDefaultBindingToken; }
2811 : moduleSpecifier(moduleSpecifier)
2819 {
return fromToken; }
2822 {
return moduleSpecifierToken; }
2836 : importClause(importClause), fromClause(fromClause)
2842 : moduleSpecifier(moduleSpecifier)
2850 {
return importToken; }
2853 {
return moduleSpecifier.
isNull() ? fromClause->lastSourceLocation() : moduleSpecifierToken; }
2869 : identifier(identifier), exportedIdentifier(identifier)
2875 : identifier(identifier), exportedIdentifier(exportedIdentifier)
2883 {
return identifierToken; }
2885 {
return exportedIdentifierToken.
isValid() ? exportedIdentifierToken : identifierToken; }
2900 : exportSpecifier(exportSpecifier)
2907 : exportSpecifier(exportSpecifier)
2912 previous->
next =
this;
2928 {
return exportSpecifier->firstSourceLocation(); }
2930 {
return lastListElement(
this)->exportSpecifier->lastSourceLocation(); }
2948 : exportsList(exportsList)
2956 {
return leftBraceToken; }
2958 {
return rightBraceToken; }
2972 : fromClause(fromClause)
2978 : exportClause(exportClause), fromClause(fromClause)
2984 : exportClause(exportClause)
2990 : variableStatementOrDeclaration(variableStatementOrDeclaration)
2991 , exportDefault(exportDefault)
2998 return fromClause && !exportClause;
3004 {
return exportToken; }
3006 {
return fromClause ? fromClause->
lastSourceLocation() : (exportClause ? exportClause->lastSourceLocation() : variableStatementOrDeclaration->lastSourceLocation()); }
3012 Node *variableStatementOrDeclaration =
nullptr;
3013 bool exportDefault =
false;
3050 {
return debuggerToken; }
3053 {
return semicolonToken; }
3076 {
return importToken; }
3079 {
return semicolonToken; }
3119 previous->
next =
this;
3125 {
return member->firstSourceLocation(); }
3159 previous->
next =
this;
3194 {
return pragmaToken; }
3197 {
return semicolonToken; }
3220 {
return requiredToken; }
3223 {
return semicolonToken; }
3244 : headerItem(import)
3248 previous->
next =
this;
3252 : headerItem(pragma)
3256 previous->
next =
this;
3269 {
return headerItem->firstSourceLocation(); }
3293 return headers->firstSourceLocation();
3295 return members->firstSourceLocation();
3302 return members->lastSourceLocation();
3304 return headers->lastSourceLocation();
3327 previous->
next =
this;
3363 {
return lbraceToken; }
3366 {
return rbraceToken; }
3388 previous->
next =
this;
3394 {
return colonToken.
isValid() ? identifierToken : propertyTypeToken; }
3399 return last->lastOwnSourceLocation();
3404 return (colonToken.
isValid() ? propertyTypeToken : identifierToken);
3439 template <
bool Inval
idIsLargest = true>
3445 return InvalidIsLargest;
3447 return !InvalidIsLargest;
3457 friend class QQmlJS::Parser;
3471 :
type(Property), memberType(memberType),
name(
name), statement(
nullptr), binding(
nullptr), parameters(
nullptr)
3485 return m_attributes->firstSourceLocation();
3487 return m_propertyToken;
3493 return binding->lastSourceLocation();
3497 return semicolonToken;
3502 return hasAttributes ? m_attributes->defaultToken() :
SourceLocation {};
3508 return hasAttributes ? m_attributes->requiredToken() :
SourceLocation {};
3514 return hasAttributes ? m_attributes->readonlyToken() :
SourceLocation {};
3520 m_attributes = attributes;
3521 hasAttributes =
true;
3526 return hasAttributes ? m_attributes->propertyToken() : m_propertyToken;
3531 m_propertyToken =
token;
3532 hasAttributes =
false;
3536 enum :
bool { Signal, Property }
type;
3537 bool hasAttributes =
false;
3564 : qualifiedTypeNameId(qualifiedTypeNameId), initializer(initializer)
3570 {
return qualifiedTypeNameId->identifierToken; }
3573 {
return initializer->rbraceToken; }
3590 {
return component->lastSourceLocation();}
3593 {
return componentToken;}
3610 : sourceElement(sourceElement)
3616 return funDecl->firstSourceLocation();
3618 return varStmt->firstSourceLocation();
3626 return funDecl->lastSourceLocation();
3628 return varStmt->lastSourceLocation();
3648 : qualifiedId(qualifiedId),
3649 qualifiedTypeNameId(qualifiedTypeNameId),
3650 initializer(initializer),
3656 if (hasOnToken && qualifiedTypeNameId)
3659 return qualifiedId->identifierToken;
3663 {
return initializer->rbraceToken; }
3683 : qualifiedId(qualifiedId),
3684 statement(statement)
3708 : qualifiedId(qualifiedId),
3716 {
return rbracketToken; }
3741 previous->
next =
this;
3746 : member(member),
value(
v)
3750 previous->
next =
this;
3754 {
return memberToken; }
3759 return last->valueToken.isValid() ? last->valueToken : last->memberToken;
3791 {
return enumToken; }
3794 {
return rbraceToken; }
3814 : qualifiedTypeNameId(qualifiedTypeNameId), initializer(initializer)
3823 {
return initializer->rbraceToken; }
3836 :
next(
this), annotation(annotation)
3840 : annotation(annotation)
3844 previous->
next =
this;
3850 {
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 firstSourceLocation() const override
ClassExpression * asClassDefinition() override
SourceLocation lastSourceLocation() const override
SourceLocation equalToken
FunctionExpression * asFunctionDefinition() override
ExpressionNode * expression
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 ClassExpression * asClassDefinition()
virtual SourceLocation lastSourceLocation() const =0
virtual void accept0(BaseVisitor *visitor)=0
static void accept(Node *node, BaseVisitor *visitor)
virtual FunctionExpression * asFunctionDefinition()
@ 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_InitializerExpression
@ 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
ExpressionNode * initializer
SourceLocation lastSourceLocation() const override
SourceLocation declarationKindToken
Pattern * destructuringPattern() const
SourceLocation equalToken
ExpressionNode * destructuringTarget() const
PatternElement(QStringView n, TypeAnnotation *typeAnnotation=nullptr, ExpressionNode *i=nullptr, Type t=Binding)
ExpressionNode * bindingTarget
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 identifierToken
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 colonToken
SourceLocation firstSourceLocation() const override
SourceLocation semicolonToken
SourceLocation lastSourceLocation() const override
SourceLocation pragmaToken
SourceLocation pragmaIdToken
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
Members members(const Members &candidates, QTypeRevision maxMajorVersion, Postprocess &&process)
static QT_BEGIN_NAMESPACE const char * asString(QSSGRenderGraphObject::Type type)
static const QTextHtmlElement elements[Html_NumElements]
static QString errorMessage(QUrlPrivate::ErrorCode errorCode, const QString &errorSource, qsizetype errorPosition)
QTextStream out(stdout)
[7]
manager head(request, this, [this](QRestReply &reply) { if(reply.isSuccess()) })
[6]
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