ShaderCompiler::Parser class

Grows the shared typed AST (declarations + per-function statement trees) from an already-lowered modern-GLSL stage token stream.

Handles the translated subset the AST-based emitters share: global-scope struct/block/uniform/sampler/ interface declarations, layout(location) qualifiers, gl_VertexID, and function bodies as Stmt trees. Constructs outside the subset make Ok() return false with a Reason(); the emitter then declines.

Public types

struct FragOutputDecl

Constructors, destructors, conversion operators

Parser(const SmallVectorImpl<GlslToken>& tokens, bool vertexStage)

Public functions

void Run()
auto Ok() const -> bool
auto Reason() const -> const String&

Public variables

SmallVector<StructDecl, 0> Structs
SmallVector<BlockDecl, 0> Blocks
SmallVector<UniformDecl, 0> Uniforms
SmallVector<SamplerDecl, 0> Samplers
SmallVector<VaryingDecl, 0> Varyings
SmallVector<AttributeDecl, 0> Attributes
SmallVector<GlobalVarDecl, 0> GlobalVars
SmallVector<Function, 0> Functions
SmallVector<FragOutputDecl, 0> FragOutputs