readChar method Null safety
Consumes a single character and returns its character code.
This throws a FormatException if the string has been fully consumed. It doesn't affect lastMatch.
Implementation
int readChar() {
if (isDone) _fail('more input');
return string.codeUnitAt(_position++);
}