public override Expression VisitConditional_expression(Conditional_expressionContext context) { var expression = Visit(context.children[0]); if (context.expression().Any()) { var expression1 = Visit(context.expression()[0]); var expression2 = Visit(context.expression()[1]); expression = Expression.Condition(expression, expression1, expression2); } return(expression); }
private IExpression BindCondition() { return(_context.expression(0).BindExpression(_methodBodySymbolContext, _diagnostics)); }
public override object VisitConditional_expression([NotNull] Conditional_expressionContext context) { if (context.OPEN_PARENTHESIS() != null) { _output.Append('('); VisitConditional_expression(context.conditional_expression()[0]); _output.Append(')'); } else if (context.NOT() != null) { _output.Append('!'); VisitConditional_expression(context.conditional_expression()[0]); } else if (context.comparison_operator() != null) { VisitConditional_expression(context.conditional_expression()[0]); var op = context.comparison_operator(); if (op.GREATER_THAN() != null) { _output.Append('>'); } else if (op.GREATER_EQUAL() != null) { _output.Append(">="); } else if (op.LESS_THAN() != null) { _output.Append('<'); } else if (op.LESS_EQUAL() != null) { _output.Append("<="); } else if (op.EQUALS() != null) { _output.Append("=="); } VisitConditional_expression(context.conditional_expression()[1]); } else if (context.logical_operator() != null) { VisitConditional_expression(context.conditional_expression()[0]); var op = context.logical_operator(); if (op.AND() != null) { _output.Append("&&"); } else if (op.OR() != null) { _output.Append("||"); } VisitConditional_expression(context.conditional_expression()[1]); } else { VisitExpression(context.expression()); } return(null); }