readChar method
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++);
}