Ejemplo n.º 1
0
        private static SyntaxNode IfElseStatement(RParser.IfElseStatementContext ifStatement, Func <ParserRuleContext, Scope, SyntaxNode> transform, Scope scope)
        {
            if (!topLevel(ifStatement))
            {
                throw new NotImplementedException();
            }

            var exprs = ifStatement.expr();
            var cond  = (ExpressionSyntax)transform(exprs[0], scope);
            var @if   = parseBlock(exprs[1], transform, scope);
            var @else = parseBlock(exprs[2], transform, scope);

            return(@ifelse.Get <IfStatementSyntax>(cond)
                   .WithStatement(@if)
                   .WithElse(CSharp.ElseClause(
                                 @else)));
        }