Parse.h.doc.start: def of yaml-for-bend@0.1.1.0 Import: import yaml-for-bend@0.1.1.0/parse.bend as Parse Lines 376-385 of yaml-for-bend@0.1.1.0/parse.bend: https://jend.leeeet.dev/read.txt?path=yaml-for-bend@0.1.1.0/parse.bend&start_line=376&end_line=385 import Base import yaml-for-bend@0.1.1.0/token.bend as T # A document starts: bare, when nothing came before or the last one ended # with "..."; or with directives and "---"; or the stream ends. def h.doc.start(+ended: Bool, +t: T.Token, +ps: Ps) -> PStep: +start = tok.start(t) +bare = Bool.not(tok.any(t, [VERSION(), TAG_DIR(), DOC_START(), STREAM_END()])) when(PStep, tok.is(t, DOC_END()), u => PGo{take(ps)}, u => when(PStep, tok.is(t, STREAM_END()), u => PGo{goto(emit(take(ps), StreamEndEv{}, start), SEnd{})}, u => when(PStep, Bool.and(bare, ended), u => PGo{goto(push(emit(with.tags(ps, defaults()), DocStartEv{False{}}, start), SDocEnd{}), block.node())}, u => when(PStep, Bool.or(bare, Bool.and(Bool.not(ended), Bool.not(tok.is(t, DOC_START())))), u => fail(ps, "did not find expected ", start), u => dirs.done(dirs.go(ps.toks(ps), [], False{}), ps))))) Uses (30): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool.and https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool.not https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Bool.or https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=List https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=DOC_END https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=DOC_START https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=Ev https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=PStep https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=Ps https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=STREAM_END https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=St https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=TAG_DIR https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=VERSION https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=block.node https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=defaults https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=dirs.done https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=dirs.go https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=emit https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=fail https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=goto https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=ps.toks https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=push https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=take https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=tok.any https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=tok.is https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=tok.start https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=when https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/parse.bend&name=with.tags https://jend.leeeet.dev/definition.txt?path=yaml-for-bend@0.1.1.0/token.bend&name=Token