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 std::vector<GlslToken>& tokens, bool vertexStage)

Public functions

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

Public variables

std::vector<StructDecl> Structs
std::vector<BlockDecl> Blocks
std::vector<UniformDecl> Uniforms
std::vector<SamplerDecl> Samplers
std::vector<VaryingDecl> Varyings
std::vector<AttributeDecl> Attributes
std::vector<GlobalVarDecl> GlobalVars
std::vector<Function> Functions
std::vector<FragOutputDecl> FragOutputs