private void RunExpansionIterations()
{
int iteration = 0;
while (true)
{
bool expanded = ApplyAttributesAndExpandMacros();
if (!expanded)
{
if (!BubbleResultingTypeMemberStatementsUp())
break;
}
++iteration;
if (iteration > Parameters.MaxExpansionIterations)
throw new CompilerError("Too many expansions.");
}
}