for(Stage &s: module->stages)
generate(s);
ConstantIdAssigner().apply(*module, features);
for(Stage &s: module->stages)
generate(s);
ConstantIdAssigner().apply(*module, features);
{
auto i = find_member(module->stages, stage_type, &Stage::type);
if(i!=module->stages.end())
{
auto i = find_member(module->stages, stage_type, &Stage::type);
if(i!=module->stages.end())
IdentifierValidator().apply(stage);
ReferenceValidator().apply(stage);
ExpressionValidator().apply(stage);
IdentifierValidator().apply(stage);
ReferenceValidator().apply(stage);
ExpressionValidator().apply(stage);
{
if(ConstantFolder().apply(stage))
resolve(stage, RESOLVE_EXPRESSIONS);
{
if(ConstantFolder().apply(stage))
resolve(stage, RESOLVE_EXPRESSIONS);