docs: private Statement transformBasicTryWithResourcesStatement(TryCatchStatement tryCatchStatement) {
          // { ... }
          BlockStatement blockStatement = new BlockStatement();
  
          // final VariableModifiers_minus_final R Identifier = Expression;
          ExpressionStatement firstResourceStatement =
                  this.makeVariableDeclarationFinal(
                          tryCatchStatement.getResourceStatement(0));
          astBuilder.appendStatementsToBlockStatement(blockStatement, firstResourceStatement);
  
          // Throwable #primaryExc = null;
          String primaryExcName = this.genPrimaryExcName();
          VariableExpression primaryExcX = localVarX(primaryExcName, ClassHelper.make(Throwable.class));
          ExpressionStatement primaryExcDeclarationStatement =
                  new ExpressionStatement(
                          new DeclarationExpression(
                                  primaryExcX,
                                  newSymbol(Types.ASSIGN, -1, -1),
                                  new ConstantExpression(null)
                          )
                  );
          astBuilder.appendStatementsToBlockStatement(blockStatement, primaryExcDeclarationStatement);
  
  
          // The generated try-catch-finally statement
          String firstResourceIdentifierName =
                  ((DeclarationExpression) tryCatchStatement.getResourceStatement(0).getExpression()).getLeftExpression().getText();
  
          TryCatchStatement newTryCatchStatement =
                  new TryCatchStatement(
                          tryCatchStatement.getTryStatement(),
                          this.createFinallyBlockForNewTryCatchStatement(primaryExcName, firstResourceIdentifierName));
  
          List<ExpressionStatement> resourceStatements = tryCatchStatement.getResourceStatements();
          // 2nd, 3rd, ..., n'th resources declared in resources
          List<ExpressionStatement> tailResourceStatements = resourceStatements.subList(1, resourceStatements.size());
          tailResourceStatements.stream().forEach(newTryCatchStatement::addResource);
  
          newTryCatchStatement.addCatch(this.createCatchBlockForOuterNewTryCatchStatement(primaryExcName));
          astBuilder.appendStatementsToBlockStatement(blockStatement, this.transform(newTryCatchStatement));
  
          return blockStatement;
      }