Package icyllis.arc3d.compiler.tree
@Internal
package icyllis.arc3d.compiler.tree
Abstract syntax tree, this package is NOT part of any public API.
-
ClassDescriptionA symbol which should be interpreted as a field access.A binary operation.A block of multiple statements functioning as a single statement.A break statement.A conditional expression (condition ? true-expression : false-expression).Represents the construction of an array type, such as "float[5](x, y, z, w, 1)".Represents the typecasting of an array.Base class representing a constructor call: type_name( args, ...Represents a vector or matrix that is composed of other expressions, such as `float3(pos.xy, 1)` or `float3x3(a.xyz, b.xyz, 0, 0, 1)`Represents the construction of a vector/matrix typecast, such as `half3(myInt3)` or `float4x4(myHalf4x4)`.Represents the construction of a matrix resize operation, such as `mat4x4(myMat2x2)`.Represents the construction of a diagonal matrix, such as `mat4x4(n)`.Represents the construction of a vector splat (broadcast), such as `float3(n)`.Represents the construction of a scalar cast, such as `float(intVariable)`.Represents the construction of a struct object, such as "Color(red, green, blue, 1)".A continue statement.A discard statement, fragment shader only.A no-op statement ";".Abstract superclass of all expressions.A lone expression being used as a statement.An expression which selects a field from a struct/block, as in 'foo.bar'.for (init; condition; step) loop-statementA function invocation: function_name( args, ...Represents a function declaration (function symbol).A function definition (a function declaration plus an associated block of code).A function prototype (a function declaration as a top-level element)An identifier referring to a function name.A variable declaration appearing at global scope.if (condition) true-statement else false-statementAn expression that accesses an element of an array, vector, or matrix, as in 'base [ index ]'.An interface block declaration invalid input: '&' definition, as in:Represents a layout block appearing before a variable declaration, as in:A constant value.Represents a layout block and a set of modifier keywords (in, out, uniform, etc.) appearing before a variable or interface block declaration, as in:Represents a node in the AST.Represents an ill-formed expression.An expression modified by a unary operator appearing after it.An expression modified by a unary operator appearing before it.A return statement.Abstract supertype of all statements.Represents a vector component selection (shuffling) such as 'float3(1, 2, 3).zyx'.Represents a symbol table entry.Represents a top-level element (e.g.Utility class to visit every element, statement, and expression in a program IR.Represents a type symbol, such as int or float4.CoercionCost.Represents a single field in a struct/block type.Represents an identifier referring to a type.Represents a variable symbol, whether local, global, or a function parameter.Variable declaration.A reference to a variable, through which it can be read or written.