Boo.Lang.Compiler.Steps.NormalizeStatementModifiers.MapStatementModifier C# (CSharp) Метод

MapStatementModifier() публичный статический Метод

public static MapStatementModifier ( Boo.Lang.Compiler.Ast.StatementModifier modifier, Block &block ) : Statement
modifier Boo.Lang.Compiler.Ast.StatementModifier
block Boo.Lang.Compiler.Ast.Block
Результат Boo.Lang.Compiler.Ast.Statement
        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));
        }