for(Stage &s: module->stages)
generate(s);
ConstantIdAssigner().apply(*module, features);
for(Stage &s: module->stages)
generate(s);
ConstantIdAssigner().apply(*module, features);
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);