# Hierarchy For Package icyllis.arc3d.compiler.tree

Package Hierarchies:

- All Packages

## Class Hierarchy

- java.lang.Object
  - icyllis.arc3d.compiler.tree.Layout
  - icyllis.arc3d.compiler.tree.Node
    - icyllis.arc3d.compiler.tree.Expression
      - icyllis.arc3d.compiler.tree.BinaryExpression
      - icyllis.arc3d.compiler.tree.ConditionalExpression
      - icyllis.arc3d.compiler.tree.ConstructorCall
        - icyllis.arc3d.compiler.tree.ConstructorArray
        - icyllis.arc3d.compiler.tree.ConstructorArrayCast
        - icyllis.arc3d.compiler.tree.ConstructorCompound
        - icyllis.arc3d.compiler.tree.ConstructorCompoundCast
        - icyllis.arc3d.compiler.tree.ConstructorDiagonalMatrix
        - icyllis.arc3d.compiler.tree.ConstructorMatrixResize
        - icyllis.arc3d.compiler.tree.ConstructorScalarCast
        - icyllis.arc3d.compiler.tree.ConstructorStruct
        - icyllis.arc3d.compiler.tree.ConstructorVectorSplat
      - icyllis.arc3d.compiler.tree.FieldAccess
      - icyllis.arc3d.compiler.tree.FunctionCall
      - icyllis.arc3d.compiler.tree.FunctionReference
      - icyllis.arc3d.compiler.tree.IndexExpression
      - icyllis.arc3d.compiler.tree.Literal
      - icyllis.arc3d.compiler.tree.Poison
      - icyllis.arc3d.compiler.tree.PostfixExpression
      - icyllis.arc3d.compiler.tree.PrefixExpression
      - icyllis.arc3d.compiler.tree.Swizzle
      - icyllis.arc3d.compiler.tree.TypeReference
      - icyllis.arc3d.compiler.tree.VariableReference
    - icyllis.arc3d.compiler.tree.Modifiers
    - icyllis.arc3d.compiler.tree.Statement
      - icyllis.arc3d.compiler.tree.BlockStatement
      - icyllis.arc3d.compiler.tree.BreakStatement
      - icyllis.arc3d.compiler.tree.ContinueStatement
      - icyllis.arc3d.compiler.tree.DiscardStatement
      - icyllis.arc3d.compiler.tree.EmptyStatement
      - icyllis.arc3d.compiler.tree.ExpressionStatement
      - icyllis.arc3d.compiler.tree.ForLoop
      - icyllis.arc3d.compiler.tree.IfStatement
      - icyllis.arc3d.compiler.tree.ReturnStatement
      - icyllis.arc3d.compiler.tree.SwitchCase
      - icyllis.arc3d.compiler.tree.SwitchStatement
      - icyllis.arc3d.compiler.tree.VariableDecl
    - icyllis.arc3d.compiler.tree.Symbol
      - icyllis.arc3d.compiler.tree.AnonymousField
      - icyllis.arc3d.compiler.tree.FunctionDecl
      - icyllis.arc3d.compiler.tree.Type
        - icyllis.arc3d.compiler.tree.Type.AliasType
        - icyllis.arc3d.compiler.tree.Type.ArrayType
        - icyllis.arc3d.compiler.tree.Type.GenericType
        - icyllis.arc3d.compiler.tree.Type.ImageType
        - icyllis.arc3d.compiler.tree.Type.MatrixType
        - icyllis.arc3d.compiler.tree.Type.SamplerType
        - icyllis.arc3d.compiler.tree.Type.ScalarType
        - icyllis.arc3d.compiler.tree.Type.StructType
        - icyllis.arc3d.compiler.tree.Type.VectorType
      - icyllis.arc3d.compiler.tree.Variable
    - icyllis.arc3d.compiler.tree.TopLevelElement
      - icyllis.arc3d.compiler.tree.FunctionDefinition
      - icyllis.arc3d.compiler.tree.FunctionPrototype
      - icyllis.arc3d.compiler.tree.GlobalVariableDecl
      - icyllis.arc3d.compiler.tree.InterfaceBlock
      - icyllis.arc3d.compiler.tree.StructDefinition
  - icyllis.arc3d.compiler.tree.TreeVisitor
  - icyllis.arc3d.compiler.tree.Type.CoercionCost

## Enum Class Hierarchy

- java.lang.Object
  - java.lang.Enum<E> (implements java.lang.Comparable<T>, java.lang.constant.Constable, java.io.Serializable)
    - icyllis.arc3d.compiler.tree.Node.ElementKind
    - icyllis.arc3d.compiler.tree.Node.ExpressionKind
    - icyllis.arc3d.compiler.tree.Node.StatementKind
    - icyllis.arc3d.compiler.tree.Node.SymbolKind

## Record Class Hierarchy

- java.lang.Object
  - java.lang.Record
    - icyllis.arc3d.compiler.tree.Type.Field