public override SyntaxList <StatementSyntax> VisitMultiLineIfBlock(VBSyntax.MultiLineIfBlockSyntax node) { var condition = (ExpressionSyntax)node.IfStatement.Condition.Accept(_nodesVisitor); var block = SyntaxFactory.Block(node.Statements.SelectMany(s => s.Accept(CommentConvertingVisitor))); ElseClauseSyntax elseClause = null; if (node.ElseBlock != null) { var elseBlock = SyntaxFactory.Block(node.ElseBlock.Statements.SelectMany(s => s.Accept(CommentConvertingVisitor))); elseClause = SyntaxFactory.ElseClause(elseBlock.UnpackPossiblyNestedBlock());// so that you get a neat "else if" at the end } foreach (var elseIf in node.ElseIfBlocks.Reverse()) { var elseBlock = SyntaxFactory.Block(elseIf.Statements.SelectMany(s => s.Accept(CommentConvertingVisitor))); var ifStmt = SyntaxFactory.IfStatement((ExpressionSyntax)elseIf.ElseIfStatement.Condition.Accept(_nodesVisitor), elseBlock.UnpackNonNestedBlock(), elseClause); elseClause = SyntaxFactory.ElseClause(ifStmt); } return(SingleStatement(SyntaxFactory.IfStatement(condition, block.UnpackNonNestedBlock(), elseClause))); }
public override SyntaxList <StatementSyntax> VisitMultiLineIfBlock(VBSyntax.MultiLineIfBlockSyntax node) { var condition = (ExpressionSyntax)node.IfStatement.Condition.Accept(nodesVisitor); var block = SyntaxFactory.Block(node.Statements.SelectMany(s => s.Accept(this))); ElseClauseSyntax elseClause = null; if (node.ElseBlock != null) { var elseBlock = SyntaxFactory.Block(node.ElseBlock.Statements.SelectMany(s => s.Accept(this))); elseClause = SyntaxFactory.ElseClause(elseBlock); } foreach (var elseIf in node.ElseIfBlocks.Reverse()) { var elseBlock = SyntaxFactory.Block(elseIf.Statements.SelectMany(s => s.Accept(this))); var ifStmt = SyntaxFactory.IfStatement((ExpressionSyntax)elseIf.ElseIfStatement.Condition.Accept(nodesVisitor), elseBlock, elseClause); elseClause = SyntaxFactory.ElseClause(ifStmt); } return(SingleStatement(SyntaxFactory.IfStatement(condition, block, elseClause))); }
public override SyntaxList <StatementSyntax> VisitMultiLineIfBlock(VBSyntax.MultiLineIfBlockSyntax node) => AddLocalVariables(node);