trim method
Implementation
@override
(IfElseStatement?, int) trim(int remaining) {
if (remaining <= 0) {
return (null, 0);
} else {
final trimmedIfThenStatementBlockResult = ifThenStatementBlock.trim(
remaining,
);
remaining = trimmedIfThenStatementBlockResult.$2;
List<(DartBlockBooleanExpression, StatementBlock)>
trimmedElseIfStatementBlocks = [];
StatementBlock trimmedElseStatementBlock;
if (remaining > 0) {
for (final elseIfStatementBlock in elseIfStatementBlocks) {
final trimmedElseIfStatementBlockResult = elseIfStatementBlock.$2
.trim(remaining);
remaining = trimmedElseIfStatementBlockResult.$2;
if (trimmedElseIfStatementBlockResult.$1 != null) {
trimmedElseIfStatementBlocks.add((
elseIfStatementBlock.$1,
trimmedElseIfStatementBlockResult.$1!,
));
}
if (remaining <= 0) {
break;
}
}
}
if (remaining > 0) {
final trimmedElseStatementBlockResult = elseStatementBlock.trim(
remaining,
);
remaining = trimmedElseStatementBlockResult.$2;
if (trimmedElseStatementBlockResult.$1 != null) {
trimmedElseStatementBlock = trimmedElseStatementBlockResult.$1!;
} else {
trimmedElseStatementBlock = StatementBlock.init(
statements: [],
isIsolated: elseStatementBlock.isIsolated,
);
}
} else {
trimmedElseStatementBlock = StatementBlock.init(
statements: [],
isIsolated: elseStatementBlock.isIsolated,
);
}
return (
IfElseStatement.init(
ifCondition,
trimmedIfThenStatementBlockResult.$1 ??
StatementBlock.init(
statements: [],
isIsolated: ifThenStatementBlock.isIsolated,
),
trimmedElseIfStatementBlocks,
trimmedElseStatementBlock,
),
remaining,
);
}
}