# Package icyllis.arc3d.compiler

package icyllis.arc3d.compiler
Arc3D Shading Language, based on GLSL 450, inspired by SkSL 300.

- Related Packages
  Package
  Description
  icyllis.arc3d.compiler.analysis
  icyllis.arc3d.compiler.glsl
  icyllis.arc3d.compiler.lex
  icyllis.arc3d.compiler.spirv
  icyllis.arc3d.compiler.tree
  Abstract syntax tree, this package is NOT part of any public API.
- Class
  Description
  BuiltinTypes
  Contains the built-in, core SL types.
  CodeGenerator
  Abstract superclass of all code generators, which take a `TranslationUnit` as input and produce code as output.
  CompileOptions
  Holds the options for compiling a shader executable.
  ConstantFolder
  Performs constant folding on AST expressions.
  Context
  Contains objects and state associated with `ShaderCompiler` (i.e.
  ErrorHandler
  Class which is notified in the event of an error.
  FatalError
  Causes the compiler to terminate immediately.
  GLSLstd450
  See GLSL.std.450
  GLSLVersion
  Limited set of GLSL versions we generate shaders for.
  Inliner
  IntrinsicList
  A list of every supported intrinsic.
  Mangler
  MemoryLayout
  Standard layout for interface blocks, according to OpenGL and Vulkan specification.
  ModuleLoader
  Thread-safe class that loads shader modules.
  ModuleUnit
  Represents a precompiled module that can be used to compile other files.
  Operator
  Operators.
  Parser
  Consumes Arc3D shading language source text and invokes DSL functions to instantiate the AST (parsed IR).
  Position
  Represents a position that encapsulates the offset and length.
  ShaderCaps
  Shader capabilities for our DSL compiler.
  ShaderCompiler
  Main compiler entry point.
  ShaderKind
  We support several shader kinds.
  SPIRVVersion
  SymbolTable
  Maps identifiers to symbols, each instance represents a scope level or a module boundary.
  TargetApi
  Specify a backend API for validation.
  TranslationUnit
  A fully-resolved AST of a single shader executable, ready for code generation.