parse_key<KEY> function
KEY
parse_key<KEY>({
- required AnsiParserInputBuffer buffer,
- required KeyDelegate<
KEY, int> delegate,
May throw ByteReadExceptionTooSmall if any
given byte is smaller than _stdin_end_of_file_indicator
.
Implementation
// region impl
KEY parse_key<KEY>({
required final AnsiParserInputBuffer buffer,
required final KeyDelegate<KEY, int> delegate,
}) {
final first_valid_byte = () {
int _read_byte = 0;
while (_read_byte <= 0) {
_read_byte = buffer.read_byte();
if (_read_byte < _stdin_end_of_file_indicator) {
throw _ByteReadExceptionTooSmallImpl(
value: _read_byte,
);
} else if (_read_byte > _byte_size) {
// TODO throw here?
return _read_byte;
}
}
return _read_byte;
}();
return _ansi_parser_read_key(
first_byte: first_valid_byte,
next_byte: buffer.read_byte,
delegate: delegate,
context: first_valid_byte,
);
}