FollowedBy<T>(Parser<T>) ➜ Parser<T>

Succeeds if the scanner would match the given Parser<T> at its current offset, but doesn’t consume any characters, returning an EmptyToken<T> on success instead.

NotFollowedBy<T>(Parser<T>) ➜ Parser<T>

Succeeds if the scanner fails to match the given Parser<T> at its current offset, returning an EmptyToken<T> instead.

PrecededBy<T>(Parser<T>) ➜ Parser<T>

Searches backwards for a match to a Parser<T> that ends at one less than the current offset. Succeeds if it finds one, but doesn’t consume any characters, returning an EmptyToken<T> on success instead.

NotPrecededBy<T>(Parser<T>) ➜ Parser<T>

Searches backwards for a match to a Parser<T> that ends at one less than the current offset. Succeeds if it fails to find one, returning an EmptyToken<T> instead.