Compound statements are statements that can hold other statements.
This document maps the WGSL compound statements to their semantic tree representations.
WGSL:
if (condition_a) { statement_a; } else if (condition_b) { statement_b; } else { statement_c; }
Semantic tree:
sem::IfStatement { condition_a sem::BlockStatement { statement_a } sem::ElseStatement { condition_b sem::BlockStatement { statement_b } } sem::ElseStatement { sem::BlockStatement { statement_c } } }
WGSL:
for (initializer; condition; continuing) { statement; }
Semantic tree:
sem::ForLoopStatement { sem::Statement initializer sem::Expression condition sem::Statement continuing sem::LoopBlockStatement { sem::Statement statement } }
WGSL:
loop (condition) { statement_a; continuing { statement_b; } }
Semantic tree:
sem::LoopStatement { sem::Expression condition sem::LoopBlockStatement { sem::Statement statement_a sem::LoopContinuingBlockStatement { sem::Statement statement_b } } }
WGSL:
switch (condition) { case literal_a, literal_b: { statement_a; } default { statement_b; } }
Semantic tree:
sem::SwitchStatement { sem::Expression condition sem::SwitchCaseBlockStatement { sem::Statement statement_a } sem::SwitchCaseBlockStatement { sem::Statement statement_b } }