parseNumber method
Implementation
Token parseNumber() {
String lexeme = '';
int offset = 0;
StreamChar start = peek();
String next = start.lexeme;
while (number.hasMatch(next)) {
lexeme = next;
final rawChar = peek(offset: ++offset).lexeme;
next += rawChar;
if (rawChar == '.') {
next += peek(offset: ++offset).lexeme;
} else if (rawChar == '') {
break;
}
}
if (lexeme.isNotEmpty) {
curr += lexeme.length;
} else {
addError('Expected number but was empty.');
}
return start.toToken(TokenType.kNumber, lexeme: lexeme);
}