18#include <QtQuick3DGlslParser/private/glsl_p.h>
19#include <QtQuick3DGlslParser/private/glslmemorypool_p.h>
27class TranslationUnitAST;
29class IdentifierExpressionAST;
30class LiteralExpressionAST;
31class BinaryExpressionAST;
32class UnaryExpressionAST;
33class TernaryExpressionAST;
34class AssignmentExpressionAST;
35class MemberAccessExpressionAST;
36class FunctionCallExpressionAST;
37class FunctionIdentifierAST;
38class DeclarationExpressionAST;
40class ExpressionStatementAST;
41class CompoundStatementAST;
43class WhileStatementAST;
46class JumpStatementAST;
47class ReturnStatementAST;
48class SwitchStatementAST;
49class CaseLabelStatementAST;
50class DeclarationStatementAST;
56class LayoutQualifierAST;
57class QualifiedTypeAST;
59class PrecisionDeclarationAST;
60class ParameterDeclarationAST;
61class VariableDeclarationAST;
62class TypeDeclarationAST;
63class TypeAndVariableDeclarationAST;
64class InvariantDeclarationAST;
65class InitDeclarationAST;
66class FunctionDeclarationAST;
77 :
value(value_), lineno(0)
80 previous->
next =
this;
106 second->
next = firstHead;
213 Kind_FunctionDeclaration
262 static void accept(
AST *ast,
Visitor *visitor);
264 template <
typename T>
268 accept(
it->value, visitor);
276 template <
typename T>
281 return list->finish();
296 :
AST(Kind_TranslationUnit), declarations(finish(declarations_)) {}
300 void accept0(
Visitor *visitor)
override;
323 void accept0(
Visitor *visitor)
override;
337 void accept0(
Visitor *visitor)
override;
351 void accept0(
Visitor *visitor)
override;
366 void accept0(
Visitor *visitor)
override;
380 void accept0(
Visitor *visitor)
override;
396 void accept0(
Visitor *visitor)
override;
407 :
ExpressionAST(Kind_MemberAccess), expr(_expr), field(_field) {}
411 void accept0(
Visitor *visitor)
override;
432 void accept0(
Visitor *visitor)
override;
450 void accept0(
Visitor *visitor)
override;
463 ,
name(_name), initializer(_initializer) {}
467 void accept0(
Visitor *visitor)
override;
488 :
StatementAST(Kind_ExpressionStatement), expr(_expr) {}
492 void accept0(
Visitor *visitor)
override;
505 :
StatementAST(Kind_CompoundStatement), statements(finish(_statements))
510 void accept0(
Visitor *visitor)
override;
524 , thenClause(_thenClause), elseClause(_elseClause) {}
528 void accept0(
Visitor *visitor)
override;
544 void accept0(
Visitor *visitor)
override;
559 void accept0(
Visitor *visitor)
override;
574 void accept0(
Visitor *visitor)
override;
590 void accept0(
Visitor *visitor)
override;
602 void accept0(
Visitor *visitor)
override;
612 :
StatementAST(Kind_Switch), expr(_expr), body(_body) {}
616 void accept0(
Visitor *visitor)
override;
632 void accept0(
Visitor *visitor)
override;
642 :
StatementAST(Kind_DeclarationStatement), decl(_decl) {}
646 void accept0(
Visitor *visitor)
override;
684 void accept0(
Visitor *visitor)
override;
687 bool setPrecision(Precision
precision)
override;
702 void accept0(
Visitor *visitor)
override;
705 bool setPrecision(Precision
precision)
override;
717 :
TypeAST(Kind_ArrayType), elementType(_elementType),
size(_size) {}
721 void accept0(
Visitor *visitor)
override;
724 bool setPrecision(Precision
precision)
override;
744 :
AST(Kind_StructField),
name(_name),
type(_type) {}
746 void accept0(
Visitor *visitor)
override;
748 void setInnerType(
TypeAST *innerType);
757 :
TypeAST(Kind_StructType),
name(_name), fields(finish(_fields)) {}
761 void accept0(
Visitor *visitor)
override;
764 bool setPrecision(Precision
precision)
override;
782 void accept0(
Visitor *visitor)
override;
793 :
TypeAST(Kind_QualifiedType), qualifiers(_qualifiers),
type(_type)
794 , layout_list(finish(_layout_list)) {}
798 StorageMask = 0x000000FF,
799 NoStorage = 0x00000000,
801 Attribute = 0x00000002,
802 Varying = 0x00000003,
803 CentroidVarying = 0x00000004,
806 CentroidIn = 0x00000007,
807 CentroidOut = 0x00000008,
808 PatchIn = 0x00000009,
809 PatchOut = 0x0000000A,
810 SampleIn = 0x0000000B,
811 SampleOut = 0x0000000C,
812 Uniform = 0x0000000D,
813 InterpolationMask = 0x00000F00,
814 NoInterpolation = 0x00000000,
817 NoPerspective = 0x00000300,
818 Invariant = 0x00010000,
824 void accept0(
Visitor *visitor)
override;
853 void accept0(
Visitor *visitor)
override;
872 , qualifier(_qualifier),
name(_name) {}
876 void accept0(
Visitor *visitor)
override;
890 ,
name(_name), initializer(_initializer) {}
894 void accept0(
Visitor *visitor)
override;
912 void accept0(
Visitor *visitor)
override;
924 , typeDecl(_typeDecl), varDecl(_varDecl) {}
928 void accept0(
Visitor *visitor)
override;
943 void accept0(
Visitor *visitor)
override;
957 void accept0(
Visitor *visitor)
override;
967 :
DeclarationAST(Kind_FunctionDeclaration), returnType(_returnType)
972 void accept0(
Visitor *visitor)
override;
virtual PrecisionDeclarationAST * asPrecisionDeclaration()
virtual WhileStatementAST * asWhileStatement()
virtual CompoundStatementAST * asCompoundStatement()
virtual FunctionDeclarationAST * asFunctionDeclaration()
virtual UnaryExpressionAST * asUnaryExpression()
virtual TernaryExpressionAST * asTernaryExpression()
virtual StructTypeAST * asStructType()
virtual TypeDeclarationAST * asTypeDeclaration()
static void accept(List< T > *it, Visitor *visitor)
virtual FunctionIdentifierAST * asFunctionIdentifier()
virtual BasicTypeAST * asBasicType()
virtual TypeAndVariableDeclarationAST * asTypeAndVariableDeclaration()
virtual StatementAST * asStatement()
virtual SwitchStatementAST * asSwitchStatement()
virtual LayoutQualifierAST * asLayoutQualifier()
virtual ArrayTypeAST * asArrayType()
virtual InitDeclarationAST * asInitDeclaration()
virtual void accept0(Visitor *visitor)=0
virtual AssignmentExpressionAST * asAssignmentExpression()
virtual IfStatementAST * asIfStatement()
virtual ExpressionStatementAST * asExpressionStatement()
virtual QualifiedTypeAST * asQualifiedType()
virtual DeclarationStatementAST * asDeclarationStatement()
virtual BinaryExpressionAST * asBinaryExpression()
virtual DeclarationExpressionAST * asDeclarationExpression()
virtual ForStatementAST * asForStatement()
virtual TranslationUnitAST * asTranslationUnit()
virtual ReturnStatementAST * asReturnStatement()
virtual DeclarationAST * asDeclaration()
virtual LiteralExpressionAST * asLiteralExpression()
virtual ExpressionAST * asExpression()
virtual TypeAST * asType()
virtual VariableDeclarationAST * asVariableDeclaration()
@ Kind_PrecisionDeclaration
@ Kind_FunctionIdentifier
@ Kind_VariableDeclaration
@ Kind_InvariantDeclaration
@ Kind_ParameterDeclaration
@ Kind_DeclarationStatement
@ Kind_ExpressionStatement
@ Kind_MemberFunctionCall
@ Kind_TypeAndVariableDeclaration
@ Kind_DeclarationExpression
@ Kind_AnonymousStructType
virtual FunctionCallExpressionAST * asFunctionCallExpression()
virtual CaseLabelStatementAST * asCaseLabelStatement()
static List< T > * finish(List< T > *list)
virtual ParameterDeclarationAST * asParameterDeclaration()
virtual DoStatementAST * asDoStatement()
virtual InvariantDeclarationAST * asInvariantDeclaration()
virtual NamedTypeAST * asNamedType()
virtual JumpStatementAST * asJumpStatement()
virtual IdentifierExpressionAST * asIdentifierExpression()
virtual MemberAccessExpressionAST * asMemberAccessExpression()
ArrayTypeAST(TypeAST *_elementType)
ArrayTypeAST * asArrayType() override
ArrayTypeAST(TypeAST *_elementType, ExpressionAST *_size)
AssignmentExpressionAST * asAssignmentExpression() override
AssignmentExpressionAST(Kind _kind, ExpressionAST *_variable, ExpressionAST *_value)
BasicTypeAST * asBasicType() override
BinaryExpressionAST(Kind _kind, ExpressionAST *_left, ExpressionAST *_right)
BinaryExpressionAST * asBinaryExpression() override
CaseLabelStatementAST(ExpressionAST *_expr)
CaseLabelStatementAST * asCaseLabelStatement() override
List< StatementAST * > * statements
CompoundStatementAST(List< StatementAST * > *_statements)
CompoundStatementAST * asCompoundStatement() override
DeclarationAST * asDeclaration() override
DeclarationAST(Kind _kind)
ExpressionAST * initializer
DeclarationExpressionAST(TypeAST *_type, const QString *_name, ExpressionAST *_initializer)
DeclarationExpressionAST * asDeclarationExpression() override
DeclarationStatementAST(DeclarationAST *_decl)
DeclarationStatementAST * asDeclarationStatement() override
ExpressionAST * condition
DoStatementAST(StatementAST *_body, ExpressionAST *_condition)
DoStatementAST * asDoStatement() override
ExpressionAST * asExpression() override
ExpressionAST(Kind _kind)
ExpressionStatementAST(ExpressionAST *_expr)
ExpressionStatementAST * asExpressionStatement() override
ForStatementAST * asForStatement() override
ExpressionAST * condition
ForStatementAST(StatementAST *_init, ExpressionAST *_condition, ExpressionAST *_increment, StatementAST *_body)
ExpressionAST * increment
FunctionCallExpressionAST(FunctionIdentifierAST *_id, List< ExpressionAST * > *_arguments)
List< ExpressionAST * > * arguments
FunctionCallExpressionAST(ExpressionAST *_expr, FunctionIdentifierAST *_id, List< ExpressionAST * > *_arguments)
FunctionIdentifierAST * id
FunctionCallExpressionAST * asFunctionCallExpression() override
FunctionDeclarationAST * asFunctionDeclaration() override
List< ParameterDeclarationAST * > * params
FunctionDeclarationAST(TypeAST *_returnType, const QString *_name)
FunctionIdentifierAST(TypeAST *_type)
FunctionIdentifierAST(const QString *_name)
FunctionIdentifierAST * asFunctionIdentifier() override
IdentifierExpressionAST(const QString *_name)
IdentifierExpressionAST * asIdentifierExpression() override
StatementAST * elseClause
StatementAST * thenClause
IfStatementAST * asIfStatement() override
ExpressionAST * condition
IfStatementAST(ExpressionAST *_condition, StatementAST *_thenClause, StatementAST *_elseClause)
List< DeclarationAST * > * decls
InitDeclarationAST * asInitDeclaration() override
InitDeclarationAST(List< DeclarationAST * > *_decls)
InvariantDeclarationAST(const QString *_name)
InvariantDeclarationAST * asInvariantDeclaration() override
JumpStatementAST * asJumpStatement() override
JumpStatementAST(Kind _kind)
LayoutQualifierAST * asLayoutQualifier() override
LayoutQualifierAST(const QString *_name, const QString *_number)
List(List *previous, const T &value_)
LiteralExpressionAST(const QString *_value)
LiteralExpressionAST * asLiteralExpression() override
MemberAccessExpressionAST(ExpressionAST *_expr, const QString *_field)
MemberAccessExpressionAST * asMemberAccessExpression() override
NamedTypeAST(const QString *_name)
NamedTypeAST * asNamedType() override
ParameterDeclarationAST * asParameterDeclaration() override
ParameterDeclarationAST(TypeAST *_type, Qualifier _qualifier, const QString *_name)
PrecisionDeclarationAST * asPrecisionDeclaration() override
TypeAST::Precision precision
PrecisionDeclarationAST(TypeAST::Precision _precision, TypeAST *_type)
Precision precision() const override
QualifiedTypeAST * asQualifiedType() override
bool setPrecision(Precision precision) override
List< LayoutQualifierAST * > * layout_list
QualifiedTypeAST(int _qualifiers, TypeAST *_type, List< LayoutQualifierAST * > *_layout_list)
ReturnStatementAST(ExpressionAST *_expr)
ReturnStatementAST * asReturnStatement() override
StatementAST * asStatement() override
Field(const QString *_name)
Field(const QString *_name, TypeAST *_type)
StructTypeAST(List< Field * > *_fields)
StructTypeAST * asStructType() override
StructTypeAST(const QString *_name, List< Field * > *_fields)
SwitchStatementAST * asSwitchStatement() override
SwitchStatementAST(ExpressionAST *_expr, StatementAST *_body)
TernaryExpressionAST * asTernaryExpression() override
TernaryExpressionAST(Kind _kind, ExpressionAST *_first, ExpressionAST *_second, ExpressionAST *_third)
List< DeclarationAST * > * declarations
TranslationUnitAST(List< DeclarationAST * > *declarations_)
TranslationUnitAST * asTranslationUnit() override
virtual Precision precision() const =0
TypeAST * asType() override
virtual bool setPrecision(Precision precision)=0
VariableDeclarationAST * varDecl
TypeAndVariableDeclarationAST(TypeDeclarationAST *_typeDecl, VariableDeclarationAST *_varDecl)
TypeDeclarationAST * typeDecl
TypeAndVariableDeclarationAST * asTypeAndVariableDeclaration() override
TypeDeclarationAST(TypeAST *_type)
TypeDeclarationAST * asTypeDeclaration() override
UnaryExpressionAST * asUnaryExpression() override
UnaryExpressionAST(Kind _kind, ExpressionAST *_expr)
VariableDeclarationAST * asVariableDeclaration() override
ExpressionAST * initializer
VariableDeclarationAST(TypeAST *_type, const QString *_name, ExpressionAST *_initializer=nullptr)
WhileStatementAST * asWhileStatement() override
ExpressionAST * condition
WhileStatementAST(ExpressionAST *_condition, StatementAST *_body)
\macro QT_RESTRICTED_CAST_FROM_ASCII
QSet< QString >::iterator it
QList< QVariant > arguments
List< T > * appendLists(List< T > *first, List< T > *second)
Combined button and popup list for selecting options.
EGLOutputLayerEXT EGLint EGLAttrib value
[5]
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLenum GLint GLint * precision
static QT_BEGIN_NAMESPACE void init(QTextBoundaryFinder::BoundaryType type, QStringView str, QCharAttributes *attributes)
QtConcurrent::task([]{ qDebug("Hello, world!");}).spawn(FutureResult void increment(QPromise< int > &promise, int i)
[10]