public static Statement MapStatementModifier(StatementModifier modifier, out Block block)
{
switch (modifier.Type)
{
case StatementModifierType.If:
{
IfStatement stmt = new IfStatement(modifier.LexicalInfo);
stmt.Condition = modifier.Condition;
stmt.TrueBlock = new Block();
block = stmt.TrueBlock;
return stmt;
}
case StatementModifierType.Unless:
{
UnlessStatement stmt = new UnlessStatement(modifier.LexicalInfo);
stmt.Condition = modifier.Condition;
block = stmt.Block;
return stmt;
}
case StatementModifierType.While:
{
WhileStatement stmt = new WhileStatement(modifier.LexicalInfo);
stmt.Condition = modifier.Condition;
block = stmt.Block;
return stmt;
}
}
throw CompilerErrorFactory.NotImplemented(modifier, string.Format("modifier {0} supported", modifier.Type));
}