code: private ParseTree parseWithStatement() {
      SourcePosition start = getTreeStartLocation();
      eat(TokenType.WITH);
      eat(TokenType.OPEN_PAREN);
      ParseTree expression = parseExpression();
      eat(TokenType.CLOSE_PAREN);
      ParseTree body = parseStatement();
      return new WithStatementTree(getTreeLocation(start), expression, body);
    }
docs: 12.10 The with Statement