protected char? ReadNextChar() { if (InputPos == InputString.Length) return null; return InputString[InputPos++]; }