parseBitRange static method
Parse a bit range string (high:low) or single bit index.
Returns (high, low) clamped to [0, maxBit], or null if invalid.
Implementation
static (int, int)? parseBitRange(String input, int maxBit) {
if (input.contains(':')) {
final parts = input.split(':');
if (parts.length != 2) {
return null;
}
final high = int.tryParse(parts[0].trim());
final low = int.tryParse(parts[1].trim());
if (high == null || low == null) {
return null;
}
final h = high.clamp(0, maxBit);
final l = low.clamp(0, maxBit);
return h >= l ? (h, l) : (l, h);
}
final bit = int.tryParse(input);
if (bit == null) {
return null;
}
final clamped = bit.clamp(0, maxBit);
return (clamped, clamped);
}