backspace method
Receive a delete (backspace) request, which should delete the right-most component (digit of a constant, variable, operator).
Implementation
@override
DartBlockValueTreeAlgebraicNode? backspace() {
var valueString = value.toString();
if (hasPendingDot) {
hasPendingDot = false;
} else if (valueString.length > 1) {
valueString = valueString.substring(0, valueString.length - 1);
if (valueString.endsWith(".")) {
hasPendingDot = true;
if (valueString.length > 1) {
valueString = valueString.substring(0, valueString.length - 1);
} else {
valueString = "";
}
} else {
/// unnecessary?
hasPendingDot = false;
}
} else {
valueString = "";
}
if (valueString.isNotEmpty) {
value = num.parse(valueString);
return this;
} else {
return parent?.replaceChild(this, null);
}
}