Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QmlIR::IRBuilder Struct Reference

#include <qqmlirbuilder_p.h>

Inheritance diagram for QmlIR::IRBuilder:
Collaboration diagram for QmlIR::IRBuilder:

Public Member Functions

 IRBuilder ()
bool generateFromQml (const QString &code, const QString &url, Document *output)
bool visit (QQmlJS::AST::UiArrayMemberList *ast) override
bool visit (QQmlJS::AST::UiImport *ast) override
bool visit (QQmlJS::AST::UiPragma *ast) override
bool visit (QQmlJS::AST::UiHeaderItemList *ast) override
bool visit (QQmlJS::AST::UiObjectInitializer *ast) override
bool visit (QQmlJS::AST::UiObjectMemberList *ast) override
bool visit (QQmlJS::AST::UiParameterList *ast) override
bool visit (QQmlJS::AST::UiProgram *) override
bool visit (QQmlJS::AST::UiQualifiedId *ast) override
bool visit (QQmlJS::AST::UiArrayBinding *ast) override
bool visit (QQmlJS::AST::UiObjectBinding *ast) override
bool visit (QQmlJS::AST::UiObjectDefinition *ast) override
bool visit (QQmlJS::AST::UiInlineComponent *ast) override
bool visit (QQmlJS::AST::UiEnumDeclaration *ast) override
bool visit (QQmlJS::AST::UiPublicMember *ast) override
bool visit (QQmlJS::AST::UiScriptBinding *ast) override
bool visit (QQmlJS::AST::UiSourceElement *ast) override
bool visit (QQmlJS::AST::UiRequired *ast) override
void throwRecursionDepthError () override
void accept (QQmlJS::AST::Node *node)
bool defineQMLObject (int *objectIndex, QQmlJS::AST::UiQualifiedId *qualifiedTypeNameId, const QV4::CompiledData::Location &location, QQmlJS::AST::UiObjectInitializer *initializer, Object *declarationsOverride=nullptr)
bool defineQMLObject (int *objectIndex, QQmlJS::AST::UiObjectDefinition *node, Object *declarationsOverride=nullptr)
QStringView asStringRef (QQmlJS::AST::Node *node)
QStringView textRefAt (const QQmlJS::SourceLocation &loc) const
QStringView textRefAt (const QQmlJS::SourceLocation &first, const QQmlJS::SourceLocation &last) const
void setBindingValue (QV4::CompiledData::Binding *binding, QQmlJS::AST::Statement *statement, QQmlJS::AST::Node *parentNode)
void tryGeneratingTranslationBinding (QStringView base, QQmlJS::AST::ArgumentList *args, QV4::CompiledData::Binding *binding)
void appendBinding (QQmlJS::AST::UiQualifiedId *name, QQmlJS::AST::Statement *value, QQmlJS::AST::Node *parentNode)
void appendBinding (QQmlJS::AST::UiQualifiedId *name, int objectIndex, bool isOnAssignment=false)
void appendBinding (const QQmlJS::SourceLocation &qualifiedNameLocation, const QQmlJS::SourceLocation &nameLocation, quint32 propertyNameIndex, QQmlJS::AST::Statement *value, QQmlJS::AST::Node *parentNode)
void appendBinding (const QQmlJS::SourceLocation &qualifiedNameLocation, const QQmlJS::SourceLocation &nameLocation, quint32 propertyNameIndex, int objectIndex, bool isListItem=false, bool isOnAssignment=false)
bool appendAlias (QQmlJS::AST::UiPublicMember *node)
ObjectbindingsTarget () const
bool setId (const QQmlJS::SourceLocation &idLocation, QQmlJS::AST::Statement *value)
bool resolveQualifiedId (QQmlJS::AST::UiQualifiedId **nameToResolve, Object **object, bool onAssignment=false)
void recordError (const QQmlJS::SourceLocation &location, const QString &description)
quint32 registerString (const QString &str) const
template<typename _Tp>
_Tp * New ()
QString stringAt (int index) const
QString sanityCheckFunctionNames (Object *obj, QQmlJS::SourceLocation *errorLocation)
Public Member Functions inherited from QQmlJS::AST::Visitor
 Visitor (quint16 parentRecursionDepth=0)
bool preVisit (Node *) override
void postVisit (Node *) override
Public Member Functions inherited from QQmlJS::AST::BaseVisitor
 BaseVisitor (quint16 parentRecursionDepth=0)
virtual ~BaseVisitor ()
quint16 recursionDepth () const

Static Public Member Functions

static QString asString (QQmlJS::AST::UiQualifiedId *node)
static QTypeRevision extractVersion (QStringView string)
static bool isStatementNodeScript (QQmlJS::AST::Statement *statement)
static bool isRedundantNullInitializerForPropertyDeclaration (Property *property, QQmlJS::AST::Statement *statement)

Public Attributes

QList< QQmlJS::DiagnosticMessageerrors
QSet< QStringinlineComponentsNames
QList< const QV4::CompiledData::Import * > _imports
QList< Pragma * > _pragmas
QVector< Object * > _objects
QV4::CompiledData::TypeReferenceMap _typeReferences
Object_object
Property_propertyDeclaration
QQmlJS::MemoryPoolpool
QString sourceCode
QV4::Compiler::JSUnitGeneratorjsGenerator
bool insideInlineComponent = false

Additional Inherited Members

Protected Attributes inherited from QQmlJS::AST::BaseVisitor
quint16 m_recursionDepth = 0

Detailed Description

Definition at line 505 of file qqmlirbuilder_p.h.

Constructor & Destructor Documentation

◆ IRBuilder()

IRBuilder::IRBuilder ( )

Definition at line 369 of file qqmlirbuilder.cpp.

Member Function Documentation

◆ accept()

void IRBuilder::accept ( QQmlJS::AST::Node * node)

Definition at line 600 of file qqmlirbuilder.cpp.

◆ appendAlias()

bool IRBuilder::appendAlias ( QQmlJS::AST::UiPublicMember * node)

Definition at line 1400 of file qqmlirbuilder.cpp.

◆ appendBinding() [1/4]

void IRBuilder::appendBinding ( const QQmlJS::SourceLocation & qualifiedNameLocation,
const QQmlJS::SourceLocation & nameLocation,
quint32 propertyNameIndex,
int objectIndex,
bool isListItem = false,
bool isOnAssignment = false )

Definition at line 1362 of file qqmlirbuilder.cpp.

◆ appendBinding() [2/4]

void IRBuilder::appendBinding ( const QQmlJS::SourceLocation & qualifiedNameLocation,
const QQmlJS::SourceLocation & nameLocation,
quint32 propertyNameIndex,
QQmlJS::AST::Statement * value,
QQmlJS::AST::Node * parentNode )

Definition at line 1347 of file qqmlirbuilder.cpp.

◆ appendBinding() [3/4]

void IRBuilder::appendBinding ( QQmlJS::AST::UiQualifiedId * name,
int objectIndex,
bool isOnAssignment = false )

Definition at line 1336 of file qqmlirbuilder.cpp.

◆ appendBinding() [4/4]

void IRBuilder::appendBinding ( QQmlJS::AST::UiQualifiedId * name,
QQmlJS::AST::Statement * value,
QQmlJS::AST::Node * parentNode )

Definition at line 1321 of file qqmlirbuilder.cpp.

◆ asString()

QString IRBuilder::asString ( QQmlJS::AST::UiQualifiedId * node)
static

Definition at line 1187 of file qqmlirbuilder.cpp.

◆ asStringRef()

QStringView IRBuilder::asStringRef ( QQmlJS::AST::Node * node)

Definition at line 1201 of file qqmlirbuilder.cpp.

◆ bindingsTarget()

Object * IRBuilder::bindingsTarget ( ) const

Definition at line 1471 of file qqmlirbuilder.cpp.

◆ defineQMLObject() [1/2]

bool QmlIR::IRBuilder::defineQMLObject ( int * objectIndex,
QQmlJS::AST::UiObjectDefinition * node,
Object * declarationsOverride = nullptr )
inline

Definition at line 548 of file qqmlirbuilder_p.h.

◆ defineQMLObject() [2/2]

bool IRBuilder::defineQMLObject ( int * objectIndex,
QQmlJS::AST::UiQualifiedId * qualifiedTypeNameId,
const QV4::CompiledData::Location & location,
QQmlJS::AST::UiObjectInitializer * initializer,
Object * declarationsOverride = nullptr )

Definition at line 605 of file qqmlirbuilder.cpp.

◆ extractVersion()

QTypeRevision IRBuilder::extractVersion ( QStringView string)
static

Definition at line 1209 of file qqmlirbuilder.cpp.

◆ generateFromQml()

bool IRBuilder::generateFromQml ( const QString & code,
const QString & url,
Document * output )

Definition at line 377 of file qqmlirbuilder.cpp.

◆ isRedundantNullInitializerForPropertyDeclaration()

bool IRBuilder::isRedundantNullInitializerForPropertyDeclaration ( Property * property,
QQmlJS::AST::Statement * statement )
static

Definition at line 1637 of file qqmlirbuilder.cpp.

◆ isStatementNodeScript()

bool IRBuilder::isStatementNodeScript ( QQmlJS::AST::Statement * statement)
static

Definition at line 1612 of file qqmlirbuilder.cpp.

◆ New()

template<typename _Tp>
_Tp * QmlIR::IRBuilder::New ( )
inline

Definition at line 594 of file qqmlirbuilder_p.h.

◆ recordError()

void IRBuilder::recordError ( const QQmlJS::SourceLocation & location,
const QString & description )

Definition at line 1604 of file qqmlirbuilder.cpp.

◆ registerString()

quint32 QmlIR::IRBuilder::registerString ( const QString & str) const
inline

Definition at line 593 of file qqmlirbuilder_p.h.

◆ resolveQualifiedId()

bool IRBuilder::resolveQualifiedId ( QQmlJS::AST::UiQualifiedId ** nameToResolve,
Object ** object,
bool onAssignment = false )

Definition at line 1525 of file qqmlirbuilder.cpp.

◆ sanityCheckFunctionNames()

QString IRBuilder::sanityCheckFunctionNames ( Object * obj,
QQmlJS::SourceLocation * errorLocation )

Definition at line 134 of file qqmlirbuilder.cpp.

◆ setBindingValue()

void IRBuilder::setBindingValue ( QV4::CompiledData::Binding * binding,
QQmlJS::AST::Statement * statement,
QQmlJS::AST::Node * parentNode )

Definition at line 1225 of file qqmlirbuilder.cpp.

◆ setId()

bool IRBuilder::setId ( const QQmlJS::SourceLocation & idLocation,
QQmlJS::AST::Statement * value )

Definition at line 1478 of file qqmlirbuilder.cpp.

◆ stringAt()

QString QmlIR::IRBuilder::stringAt ( int index) const
inline

Definition at line 596 of file qqmlirbuilder_p.h.

◆ textRefAt() [1/2]

QStringView IRBuilder::textRefAt ( const QQmlJS::SourceLocation & first,
const QQmlJS::SourceLocation & last ) const

Definition at line 1220 of file qqmlirbuilder.cpp.

◆ textRefAt() [2/2]

QStringView QmlIR::IRBuilder::textRefAt ( const QQmlJS::SourceLocation & loc) const
inline

Definition at line 562 of file qqmlirbuilder_p.h.

◆ throwRecursionDepthError()

void QmlIR::IRBuilder::throwRecursionDepthError ( )
inlineoverridevirtual

Implements QQmlJS::AST::BaseVisitor.

Definition at line 534 of file qqmlirbuilder_p.h.

◆ tryGeneratingTranslationBinding()

void IRBuilder::tryGeneratingTranslationBinding ( QStringView base,
QQmlJS::AST::ArgumentList * args,
QV4::CompiledData::Binding * binding )

Definition at line 1298 of file qqmlirbuilder.cpp.

◆ visit() [1/18]

bool IRBuilder::visit ( QQmlJS::AST::UiArrayBinding * ast)
override

Definition at line 538 of file qqmlirbuilder.cpp.

◆ visit() [2/18]

bool IRBuilder::visit ( QQmlJS::AST::UiArrayMemberList * ast)
override

Definition at line 444 of file qqmlirbuilder.cpp.

◆ visit() [3/18]

bool IRBuilder::visit ( QQmlJS::AST::UiEnumDeclaration * ast)
override

Definition at line 971 of file qqmlirbuilder.cpp.

◆ visit() [4/18]

bool IRBuilder::visit ( QQmlJS::AST::UiHeaderItemList * ast)
override

Definition at line 575 of file qqmlirbuilder.cpp.

◆ visit() [5/18]

bool IRBuilder::visit ( QQmlJS::AST::UiImport * ast)
override

Definition at line 654 of file qqmlirbuilder.cpp.

◆ visit() [6/18]

bool IRBuilder::visit ( QQmlJS::AST::UiInlineComponent * ast)
override

Definition at line 489 of file qqmlirbuilder.cpp.

◆ visit() [7/18]

bool IRBuilder::visit ( QQmlJS::AST::UiObjectBinding * ast)
override

Definition at line 520 of file qqmlirbuilder.cpp.

◆ visit() [8/18]

bool IRBuilder::visit ( QQmlJS::AST::UiObjectDefinition * ast)
override

Definition at line 455 of file qqmlirbuilder.cpp.

◆ visit() [9/18]

bool IRBuilder::visit ( QQmlJS::AST::UiObjectInitializer * ast)
override

Definition at line 580 of file qqmlirbuilder.cpp.

◆ visit() [10/18]

bool IRBuilder::visit ( QQmlJS::AST::UiObjectMemberList * ast)
override

Definition at line 585 of file qqmlirbuilder.cpp.

◆ visit() [11/18]

bool IRBuilder::visit ( QQmlJS::AST::UiParameterList * ast)
override

Definition at line 590 of file qqmlirbuilder.cpp.

◆ visit() [12/18]

bool IRBuilder::visit ( QQmlJS::AST::UiPragma * ast)
override

Definition at line 908 of file qqmlirbuilder.cpp.

◆ visit() [13/18]

bool IRBuilder::visit ( QQmlJS::AST::UiProgram * )
override

Definition at line 449 of file qqmlirbuilder.cpp.

◆ visit() [14/18]

bool IRBuilder::visit ( QQmlJS::AST::UiPublicMember * ast)
override

Definition at line 1015 of file qqmlirbuilder.cpp.

◆ visit() [15/18]

bool IRBuilder::visit ( QQmlJS::AST::UiQualifiedId * ast)
override

Definition at line 595 of file qqmlirbuilder.cpp.

◆ visit() [16/18]

bool IRBuilder::visit ( QQmlJS::AST::UiRequired * ast)
override

Definition at line 1179 of file qqmlirbuilder.cpp.

◆ visit() [17/18]

bool IRBuilder::visit ( QQmlJS::AST::UiScriptBinding * ast)
override

Definition at line 532 of file qqmlirbuilder.cpp.

◆ visit() [18/18]

bool IRBuilder::visit ( QQmlJS::AST::UiSourceElement * ast)
override

Definition at line 1129 of file qqmlirbuilder.cpp.

Member Data Documentation

◆ _imports

QList<const QV4::CompiledData::Import *> QmlIR::IRBuilder::_imports

Definition at line 607 of file qqmlirbuilder_p.h.

◆ _object

Object* QmlIR::IRBuilder::_object

Definition at line 613 of file qqmlirbuilder_p.h.

◆ _objects

QVector<Object*> QmlIR::IRBuilder::_objects

Definition at line 609 of file qqmlirbuilder_p.h.

◆ _pragmas

QList<Pragma*> QmlIR::IRBuilder::_pragmas

Definition at line 608 of file qqmlirbuilder_p.h.

◆ _propertyDeclaration

Property* QmlIR::IRBuilder::_propertyDeclaration

Definition at line 614 of file qqmlirbuilder_p.h.

◆ _typeReferences

QV4::CompiledData::TypeReferenceMap QmlIR::IRBuilder::_typeReferences

Definition at line 611 of file qqmlirbuilder_p.h.

◆ errors

QList<QQmlJS::DiagnosticMessage> QmlIR::IRBuilder::errors

Definition at line 603 of file qqmlirbuilder_p.h.

◆ inlineComponentsNames

QSet<QString> QmlIR::IRBuilder::inlineComponentsNames

Definition at line 605 of file qqmlirbuilder_p.h.

◆ insideInlineComponent

bool QmlIR::IRBuilder::insideInlineComponent = false

Definition at line 620 of file qqmlirbuilder_p.h.

◆ jsGenerator

QV4::Compiler::JSUnitGenerator* QmlIR::IRBuilder::jsGenerator

Definition at line 618 of file qqmlirbuilder_p.h.

◆ pool

QQmlJS::MemoryPool* QmlIR::IRBuilder::pool

Definition at line 616 of file qqmlirbuilder_p.h.

◆ sourceCode

QString QmlIR::IRBuilder::sourceCode

Definition at line 617 of file qqmlirbuilder_p.h.


The documentation for this struct was generated from the following files: