public override IExpression VisitCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context) { var ifCondTokens = new ConstantExpression(new TokensValue(ParserRuleContextHelper.GetTokens(context.ccIf(), _tokenStream))); var ifCond = Visit(context.ccIf().ccExpression()); var ifBlock = Visit(context.ccBlock()); var elseIfCodeCondBlocks = context .ccElseIfBlock() .Select(elseIf => Tuple.Create <IExpression, IExpression, IExpression>( new ConstantExpression(new TokensValue(ParserRuleContextHelper.GetTokens(elseIf.ccElseIf(), _tokenStream))), Visit(elseIf.ccElseIf().ccExpression()), Visit(elseIf.ccBlock()))) .ToList(); IExpression elseCondTokens = null; IExpression elseBlock = null; if (context.ccElseBlock() != null) { elseCondTokens = new ConstantExpression(new TokensValue(ParserRuleContextHelper.GetTokens(context.ccElseBlock().ccElse(), _tokenStream))); elseBlock = Visit(context.ccElseBlock().ccBlock()); } var endIfTokens = new ConstantExpression(new TokensValue(ParserRuleContextHelper.GetTokens(context.ccEndIf(), _tokenStream))); return(new ConditionalCompilationIfExpression( ifCondTokens, ifCond, ifBlock, elseIfCodeCondBlocks, elseCondTokens, elseBlock, endIfTokens)); }
public override IExpression VisitCcIfBlock([NotNull] VBAConditionalCompilationParser.CcIfBlockContext context) { var ifCondCode = new ConstantExpression(new StringValue(context.ccIf().GetText())); var ifCond = Visit(context.ccIf().ccExpression()); var ifBlock = Visit(context.ccBlock()); var elseIfCodeCondBlocks = context .ccElseIfBlock() .Select(elseIf => Tuple.Create <IExpression, IExpression, IExpression>( new ConstantExpression(new StringValue(elseIf.ccElseIf().GetText())), Visit(elseIf.ccElseIf().ccExpression()), Visit(elseIf.ccBlock()))).ToList(); IExpression elseCondCode = null; IExpression elseBlock = null; if (context.ccElseBlock() != null) { elseCondCode = new ConstantExpression(new StringValue(context.ccElseBlock().ccElse().GetText())); elseBlock = Visit(context.ccElseBlock().ccBlock()); } IExpression endIf = new ConstantExpression(new StringValue(context.ccEndIf().GetText())); return(new ConditionalCompilationIfExpression( ifCondCode, ifCond, ifBlock, elseIfCodeCondBlocks, elseCondCode, elseBlock, endIf)); }