receiveDigit method
Receive a digit 0-9.
Implementation
@override
DartBlockValueTreeAlgebraicNode receiveDigit(num digit) {
var valueString = value.toString();
if (hasPendingDot && !valueString.contains(".")) {
valueString += ".";
hasPendingDot = false;
}
valueString += digit.toString();
/// Parse a double
if (valueString.contains(".")) {
try {
final newValue = double.parse(valueString);
if (newValue.toString() == valueString) {
value = newValue;
}
/// Overflow
else {
if (valueString.contains(".")) {
hasPendingDot = true;
}
}
} on FormatException catch (_) {
///
}
} else {
try {
value = int.parse(valueString);
} on FormatException catch (_) {
/// Overflow
}
}
return this;
}