readNumber method
Implementation
String readNumber() {
StringBuffer result = StringBuffer();
bool hasExponent = false;
while (canRead) {
var ch = peek();
if (isDigit(ch) || ch == '.') {
result.write(next());
} else if ((ch == '-' || ch == '+') && result.isEmpty) {
// Leading sign at start
result.write(next());
} else if ((ch == 'e' || ch == 'E') && !hasExponent) {
// Start of exponent
hasExponent = true;
result.write(next());
// Allow optional sign right after exponent
if (canRead && (peek() == '+' || peek() == '-')) {
result.write(next());
}
} else {
break;
}
}
return result.toString();
}