parseOn method
Parses the given context.
Overridden in concrete subclasses to implement the parser-specific logic.
Takes a parse context and returns the resulting context, which is either
a Success or Failure context.
Implementation
@override
@noBoundsChecks
Result<String> parseOn(Context context) {
final buffer = context.buffer;
final position = context.position;
if (position < buffer.length) {
var nextPosition = position + 1;
if (_isLeadSurrogate(buffer.codeUnitAt(position)) &&
nextPosition < buffer.length &&
_isTrailSurrogate(buffer.codeUnitAt(nextPosition))) {
nextPosition++;
}
return context.success(
buffer.substring(position, nextPosition),
nextPosition,
);
}
return context.failure(message);
}