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 VisitCcConst([NotNull] VBAConditionalCompilationParser.CcConstContext context) { return(new ConditionalCompilationConstantExpression( new ConstantExpression(new TokensValue(ParserRuleContextHelper.GetTokens(context, _tokenStream))), new ConstantExpression(new StringValue(Identifier.GetName(context.ccVarLhs().name()))), Visit(context.ccExpression()), _symbolTable)); }
public override IExpression VisitPhysicalLine([NotNull] VBAConditionalCompilationParser.PhysicalLineContext context) { return(new ConstantExpression(new TokensValue(ParserRuleContextHelper.GetTokens(context, _tokenStream)))); }