public Statement buildStatement(final ParserRuleContext parseTree) {
    return build(Optional.of(getSources(parseTree)), parseTree);
  }
@Test
  public void shouldBuildLambdaFunctionWithMultipleLambdas() {
    // Given:
    final SingleStatementContext stmt = givenQuery("SELECT TRANSFORM_ARRAY(Col4, X => X + 5, (X,Y) => X + Y) FROM TEST1;");

    // When:
    final Query result = (Query) builder.buildStatement(stmt);

    // Then:
    assertThat(result.getSelect(), is(new Select(ImmutableList.of(
        new SingleColumn(
            new FunctionCall(
                FunctionName.of("TRANSFORM_ARRAY"),
                ImmutableList.of(
                    column("COL4"),
                    new LambdaFunctionCall(
                        ImmutableList.of("X"),
                        new ArithmeticBinaryExpression(
                            Operator.ADD,
                            new LambdaVariable("X"),
                            new IntegerLiteral(5))
                    ),
                    new LambdaFunctionCall(
                        ImmutableList.of("X", "Y"),
                        new ArithmeticBinaryExpression(
                            Operator.ADD,
                            new LambdaVariable("X"),
                            new LambdaVariable("Y")
                        )
                    )
                )
            ),
            Optional.empty())
    ))));
  }