record State : Type -> Type -> Type -> Bits32 -> Type -> TypeA parser state that can be use for streaming lists of values
such as declarations in a programming language.
The parser stack is stored in mutable field `stack_`, while
the values parsed so far are stored in `values_`.
In addition, support for working with nested block comments
is included. This is somewhat opinionated, but client code
can just ignore it and use an error lexer for the comment field.
SS : (bufSize_ : Nat) -> ByteString -> IBuffer bufSize_ -> Nat -> Nat -> Ref q (LTENat bufSize_) -> Ref q (LTENat bufSize_) -> Ref q (SnocList BytePos) -> Ref q s -> Ref q (Index r) -> Ref q (SnocList a) -> Ref q (SnocList String) -> Ref q (Maybe (BBErr e)) -> Index r -> Ref q Nat -> State e s a r q.bufSize_ : State e s a r q -> Nat.comment : State e s a r q -> Index r.curOffset_ : State e s a r q -> Nat.cur_ : ({rec:0} : State e s a r q) -> IBuffer (bufSize_ {rec:0}).depth : State e s a r q -> Ref q Nat.error_ : State e s a r q -> Ref q (Maybe (BBErr e)).from_ : ({rec:0} : State e s a r q) -> Ref q (LTENat (bufSize_ {rec:0})).positions_ : State e s a r q -> Ref q (SnocList BytePos).prevOffset_ : State e s a r q -> Nat.prev_ : State e s a r q -> ByteString.stack_ : State e s a r q -> Ref q s.state_ : State e s a r q -> Ref q (Index r).strings_ : State e s a r q -> Ref q (SnocList String).till_ : ({rec:0} : State e s a r q) -> Ref q (LTENat (bufSize_ {rec:0})).values_ : State e s a r q -> Ref q (SnocList a).bufSize_ : State e s a r q -> NatbufSize_ : State e s a r q -> Nat.prev_ : State e s a r q -> ByteStringprev_ : State e s a r q -> ByteString.cur_ : ({rec:0} : State e s a r q) -> IBuffer (bufSize_ {rec:0})cur_ : ({rec:0} : State e s a r q) -> IBuffer (bufSize_ {rec:0}).prevOffset_ : State e s a r q -> NatprevOffset_ : State e s a r q -> Nat.curOffset_ : State e s a r q -> NatcurOffset_ : State e s a r q -> Nat.from_ : ({rec:0} : State e s a r q) -> Ref q (LTENat (bufSize_ {rec:0}))from_ : ({rec:0} : State e s a r q) -> Ref q (LTENat (bufSize_ {rec:0})).till_ : ({rec:0} : State e s a r q) -> Ref q (LTENat (bufSize_ {rec:0}))till_ : ({rec:0} : State e s a r q) -> Ref q (LTENat (bufSize_ {rec:0})).positions_ : State e s a r q -> Ref q (SnocList BytePos)positions_ : State e s a r q -> Ref q (SnocList BytePos).stack_ : State e s a r q -> Ref q sstack_ : State e s a r q -> Ref q s.state_ : State e s a r q -> Ref q (Index r)state_ : State e s a r q -> Ref q (Index r).values_ : State e s a r q -> Ref q (SnocList a)values_ : State e s a r q -> Ref q (SnocList a).strings_ : State e s a r q -> Ref q (SnocList String)strings_ : State e s a r q -> Ref q (SnocList String).error_ : State e s a r q -> Ref q (Maybe (BBErr e))error_ : State e s a r q -> Ref q (Maybe (BBErr e)).comment : State e s a r q -> Index rcomment : State e s a r q -> Index r.depth : State e s a r q -> Ref q Natdepth : State e s a r q -> Ref q Natinit : Index r -> s -> (n : Nat) -> IBuffer n -> F1 q (State e s a r q)pushValue : State e s a r q => a -> s -> Index r -> F1 q (Index r)values : State e s a r q -> F1 q (Either x (List a))valuesChunk : State e s a r q -> F1 q (Maybe (List a))