parse.bend relies on unsafe/foreign
raw source on the hub · import 0x9e60c0cda1f9561416e870237a834a3d/parse.bend as Parse
2 imports
import Base import ./books.bend as Books
Types
type BookSt source · line 35 · raw
Data
BookCheckBookSt
BookDecide@stop:Bool -> BookSt
BookTakeBookSt
type DigSt source · line 64 · raw
Data
DigCheckDigSt
DigDecide@is_d:Bool -> DigSt
DigTakeDigSt
type RangeKind source · line 138 · raw
Data
SingleRangeKind
ChapterRangeKind
SameChapterRangeKind
ChapterRangeRangeKind
type ParseErr source · line 144 · raw
Data
EmptyParseErr
BadBookParseErr
BadFormatParseErr
BadNumberParseErr
CapChapter@book:String -> @max:U32 -> @got:U32 -> ParseErr
CapVerse@book:String -> @chapter:U32 -> @max:U32 -> @got:U32 -> ParseErr
ReversedParseErr
type Parsed source · line 153 · raw
Data
Parsed@canonical:String -> @display:String -> @book:String -> @chapter:U32 -> @verse:Maybe<&2, U32> -> @end_chapter:U32 -> @end_verse:Maybe<&2, U32> -> @kind:RangeKind -> Parsed
Definitions
def char1 source · line 4 · raw
@+c:Char -> String
def is_book_stop_flags source · line 7 · raw
@+has_letter:Bool -> @is_d:Bool -> @is_a:Bool -> @is_s:Bool -> Bool
def is_book_stop source · line 22 · raw
@+has_letter:Bool -> @+c:Char -> Bool
def next_has_letter_go source · line 25 · raw
@has_letter:Bool -> @is_a:Bool -> Bool
def next_has_letter source · line 32 · raw
@+has_letter:Bool -> @+c:Char -> Bool
def take_book source · line 61 · raw
@+s:String -> Pair(String, String)
def take_digits source · line 90 · raw
@+s:String -> Pair(String, String)
def is_colon_or_dot source · line 93 · raw
@+c:Char -> Bool
def drop_head source · line 96 · raw
@s:String -> String
def drop_cv_sep_go source · line 103 · raw
@+s:String -> @drop:Bool -> String
def drop_cv_sep source · line 110 · raw
@+s:String -> String
def drop_dash_go source · line 117 · raw
@+s:String -> @drop:Bool -> String
def drop_dash source · line 124 · raw
@+s:String -> String
def is_dash_head source · line 131 · raw
@s:String -> Bool
def require_u32_nz source · line 165 · raw
@n:U32 -> @z:Bool -> Result<&1, &1, ParseErr, U32>
def require_u32_go source · line 172 · raw
@m:Maybe<&2, U32> -> Result<&1, &1, ParseErr, U32>
def require_u32 source · line 179 · raw
@s:String -> Result<&1, &1, ParseErr, U32>
def check_ch_le source · line 182 · raw
@+book:String -> @+ch:U32 -> @+max:U32 -> @ok:Bool -> Result<&1, &1, ParseErr, Unit>
def check_ch_go source · line 189 · raw
@+book:String -> @+ch:U32 -> @m:Maybe<&2, U32> -> Result<&1, &1, ParseErr, Unit>
def check_ch source · line 196 · raw
@+book:String -> @+ch:U32 -> Result<&1, &1, ParseErr, Unit>
def check_vs_le source · line 199 · raw
@+book:String -> @+ch:U32 -> @+v:U32 -> @+max:U32 -> @ok:Bool -> Result<&1, &1, ParseErr, Unit>
def check_vs_go source · line 206 · raw
@+book:String -> @+ch:U32 -> @+v:U32 -> @m:Maybe<&2, U32> -> Result<&1, &1, ParseErr, Unit>
def check_vs source · line 213 · raw
@+book:String -> @+ch:U32 -> @+v:U32 -> Result<&1, &1, ParseErr, Unit>
def fmt_osis_part source · line 216 · raw
@+book:String -> @+ch:U32 -> @v:Maybe<&2, U32> -> String
def fmt_same_canonical source · line 226 · raw
@+book:String -> @+ch:U32 -> @a:U32 -> @ev:Maybe<&2, U32> -> String
def fmt_canonical_same source · line 233 · raw
@+book:String -> @+ch:U32 -> @v:Maybe<&2, U32> -> @ev:Maybe<&2, U32> -> String
def fmt_canonical source · line 240 · raw
@+book:String -> @+ch:U32 -> @+v:Maybe<&2, U32> -> @+ech:U32 -> @+ev:Maybe<&2, U32> -> @+kind:RangeKind -> String
def fmt_display_verse source · line 251 · raw
@+name:String -> @+ch:U32 -> @v:Maybe<&2, U32> -> String
def fmt_display_same2 source · line 261 · raw
@+name:String -> @+ch:U32 -> @a:U32 -> @ev:Maybe<&2, U32> -> String
def fmt_display_same source · line 274 · raw
@+name:String -> @+ch:U32 -> @v:Maybe<&2, U32> -> @ev:Maybe<&2, U32> -> String
def fmt_display_with source · line 281 · raw
@+name:String -> @+ch:U32 -> @+v:Maybe<&2, U32> -> @+ech:U32 -> @+ev:Maybe<&2, U32> -> @+kind:RangeKind -> String
def fmt_display source · line 295 · raw
@+book:String -> @+ch:U32 -> @+v:Maybe<&2, U32> -> @+ech:U32 -> @+ev:Maybe<&2, U32> -> @+kind:RangeKind -> String
def mk_parsed source · line 298 · raw
@+book:String -> @+ch:U32 -> @+v:Maybe<&2, U32> -> @+ech:U32 -> @+ev:Maybe<&2, U32> -> @+kind:RangeKind -> Parsed
def finish_ch_ok source · line 305 · raw
@+book:String -> @+ch:U32 -> @+ech:U32 -> @+kind:RangeKind -> @rev:Bool -> Result<&1, &1, ParseErr, Parsed>
def finish_ch_after source · line 312 · raw
@+book:String -> @+ch:U32 -> @+ech:U32 -> @+kind:RangeKind -> @r:Result<&1, &1, ParseErr, Unit> -> Result<&1, &1, ParseErr, Parsed>
def finish_ch_match source · line 319 · raw
@+book:String -> @+ch:U32 -> @+ech:U32 -> @+kind:RangeKind -> @r:Result<&1, &1, ParseErr, Unit> -> Result<&1, &1, ParseErr, Parsed>
def finish_ch source · line 326 · raw
@+book:String -> @+ch:U32 -> @+ech:U32 -> @+kind:RangeKind -> Result<&1, &1, ParseErr, Parsed>
def finish_vs_end_ok source · line 329 · raw
@+book:String -> @+ch:U32 -> @+vn:U32 -> @+en:U32 -> @rev:Bool -> Result<&1, &1, ParseErr, Parsed>
def finish_vs_end source · line 336 · raw
@+book:String -> @+ch:U32 -> @+vn:U32 -> @+en:U32 -> @r:Result<&1, &1, ParseErr, Unit> -> Result<&1, &1, ParseErr, Parsed>
def finish_vs_ev source · line 343 · raw
@+book:String -> @+ch:U32 -> @+vn:U32 -> @ev:Maybe<&2, U32> -> Result<&1, &1, ParseErr, Parsed>
def finish_vs_after_vn source · line 350 · raw
@+book:String -> @+ch:U32 -> @+vn:U32 -> @ev:Maybe<&2, U32> -> @r:Result<&1, &1, ParseErr, Unit> -> Result<&1, &1, ParseErr, Parsed>
def finish_vs_match source · line 357 · raw
@+book:String -> @+ch:U32 -> @+vn:U32 -> @ev:Maybe<&2, U32> -> @r:Result<&1, &1, ParseErr, Unit> -> Result<&1, &1, ParseErr, Parsed>
def finish_vs source · line 364 · raw
@+book:String -> @+ch:U32 -> @+vn:U32 -> @ev:Maybe<&2, U32> -> Result<&1, &1, ParseErr, Parsed>
def parse_after_verse_ev source · line 367 · raw
@+book:String -> @+ch:U32 -> @+vn:U32 -> @r:Result<&1, &1, ParseErr, U32> -> Result<&1, &1, ParseErr, Parsed>
def parse_after_verse_digits source · line 374 · raw
@+book:String -> @+ch:U32 -> @+vn:U32 -> @pair:Pair(String, String) -> Result<&1, &1, ParseErr, Parsed>
def parse_after_verse_num_go source · line 379 · raw
@+book:String -> @+ch:U32 -> @+vn:U32 -> @+rest:String -> @empty:Bool -> Result<&1, &1, ParseErr, Parsed>
def parse_after_verse_num_trim source · line 386 · raw
@+book:String -> @+ch:U32 -> @+vn:U32 -> @+r:String -> Result<&1, &1, ParseErr, Parsed>
def parse_after_verse_num source · line 389 · raw
@+book:String -> @+ch:U32 -> @+vn:U32 -> @+rest:String -> Result<&1, &1, ParseErr, Parsed>
def parse_verse_branch_num source · line 392 · raw
@+book:String -> @+ch:U32 -> @+rest2:String -> @r:Result<&1, &1, ParseErr, U32> -> Result<&1, &1, ParseErr, Parsed>
def parse_verse_branch_pair source · line 399 · raw
@+book:String -> @+ch:U32 -> @pair:Pair(String, String) -> Result<&1, &1, ParseErr, Parsed>
def parse_verse_branch source · line 404 · raw
@+book:String -> @+ch:U32 -> @+rest:String -> Result<&1, &1, ParseErr, Parsed>
def parse_chapter_range_num source · line 407 · raw
@+book:String -> @+ch:U32 -> @r:Result<&1, &1, ParseErr, U32> -> Result<&1, &1, ParseErr, Parsed>
def parse_chapter_range_pair source · line 414 · raw
@+book:String -> @+ch:U32 -> @pair:Pair(String, String) -> Result<&1, &1, ParseErr, Parsed>
def parse_chapter_range_branch source · line 419 · raw
@+book:String -> @+ch:U32 -> @+rest:String -> Result<&1, &1, ParseErr, Parsed>
def parse_after_chapter_sep_go source · line 422 · raw
@+book:String -> @+ch:U32 -> @+rest:String -> @empty:Bool -> @dash:Bool -> Result<&1, &1, ParseErr, Parsed>
def parse_after_chapter_sep_trim source · line 433 · raw
@+book:String -> @+ch:U32 -> @+r:String -> Result<&1, &1, ParseErr, Parsed>
def parse_after_chapter_sep source · line 436 · raw
@+book:String -> @+ch:U32 -> @+rest:String -> Result<&1, &1, ParseErr, Parsed>
def parse_tail_num source · line 439 · raw
@+book:String -> @+rest0:String -> @r:Result<&1, &1, ParseErr, U32> -> Result<&1, &1, ParseErr, Parsed>
def parse_tail_pair source · line 446 · raw
@+book:String -> @pair:Pair(String, String) -> Result<&1, &1, ParseErr, Parsed>
def parse_tail source · line 451 · raw
@+book:String -> @+tail:String -> Result<&1, &1, ParseErr, Parsed>
def parse_passage_book source · line 454 · raw
@+rest:String -> @m:Maybe<&2, String> -> Result<&1, &1, ParseErr, Parsed>
def parse_passage_pair source · line 461 · raw
@pair:Pair(String, String) -> Result<&1, &1, ParseErr, Parsed>
def parse_passage_go source · line 466 · raw
@+s0:String -> @empty:Bool -> Result<&1, &1, ParseErr, Parsed>
def parse_passage_trim source · line 473 · raw
@+s0:String -> Result<&1, &1, ParseErr, Parsed>
def parse_passage source · line 476 · raw
@+input:String -> Result<&1, &1, ParseErr, Parsed>
def err_msg source · line 479 · raw
@e:ParseErr -> String
def show_ok source · line 505 · raw
@+canonical:String -> @+display:String -> IO(Unit)
def show_result source · line 512 · raw
@r:Result<&1, &1, ParseErr, Parsed> -> IO(Unit)
def join_args source · line 526 · raw
@xs:List<&1, String> -> String
def usage source · line 535 · raw
IO(Unit)
def run_query source · line 538 · raw
@+q:String -> IO(Unit)
def run_args source · line 541 · raw
@xs:List<&1, String> -> IO(Unit)
def main source · line 548 · raw
IO(Unit)
Unsafe
unsafe take_book_go source · line 40 · raw
@st:BookSt -> @rest:String -> @acc:String -> @+has_letter:Bool -> Pair(String, String)
unsafe take_digits_go source · line 69 · raw
@st:DigSt -> @rest:String -> @acc:String -> Pair(String, String)