trim method

  1. @override
(StatementBlock?, int) trim(
  1. int remaining
)
override

Trim the contents of the Statement.

This is only relevant for compound Statements, such as ForLoopStatement.

Non-compound statements, e.g., VariableDeclarationStatement, simply return themselves.

Implementation

@override
(StatementBlock?, int) trim(int remaining) {
  if (remaining <= 0) {
    return (null, 0);
  } else {
    final trimmedStatementBlock = StatementBlock.init(
      statements: [],
      isIsolated: isIsolated,
    );
    for (final statement in statements) {
      final trimmingResult = statement.trim(remaining);
      remaining = trimmingResult.$2;
      if (trimmingResult.$1 == null) {
        break;
      } else {
        trimmedStatementBlock.statements.add(trimmingResult.$1!);
      }
      if (remaining == 0) {
        break;
      }
    }
    return (trimmedStatementBlock, remaining);
  }
}