parse.bend checks
raw source on the hub · import 0x165c100ad73c506a5905a4a8273884a3/parse.bend as Parse
8 imports
import Base import ./books.bend as Books import ./normalize.bend as Norm import ./share.bend as Share import ./complete.bend as Comp import ./context.bend as Ctx import ./route.bend as Route import ./ref_token.bend as Tok
Types
type BookSt source · line 41 · raw
Data
BookCheckBookSt
BookDecide@stop:Bool -> BookSt
BookTakeBookSt
type DigSt source · line 74 · raw
Data
DigCheckDigSt
DigDecide@is_d:Bool -> DigSt
DigTakeDigSt
type RangeKind source · line 152 · raw
Data
SingleRangeKind
ChapterRangeKind
SameChapterRangeKind
ChapterRangeRangeKind
type ParseErr source · line 158 · 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 167 · 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
type DecSt source · line 543 · raw
Data
Single recursive decoder — Maybe results passed as DecSt fields (no computed match)
DecCopyDecSt
DecClass@c:Char -> @is_pct:Bool -> @is_plus:Bool -> DecSt
DecPctDecSt
DecNib1@m:Maybe<&2, U32> -> @spill:Char -> DecSt
DecHi@hi:U32 -> DecSt
DecNib2@hi:U32 -> @m:Maybe<&2, U32> -> @spill:Char -> DecSt
DecApply@hi:U32 -> @lo:U32 -> DecSt
type CutSt source · line 609 · raw
Data
CutCheckCutSt
CutDecide@stop:Bool -> CutSt
CutTakeCutSt
type TrPh source · line 682 · raw
Data
TrStart@h:Char -> @is_a:Bool -> TrPh
TrAlphaTrPh
TrClass@h:Char -> @is_a:Bool -> @is_dot:Bool -> TrPh
TrCommit@ok:Bool -> TrPh
type ShPh source · line 821 · raw
Data
ShScanShPh
ShEq@eq:Bool -> ShPh
type FaPh source · line 918 · raw
Data
FaScan@prev_alnum:Bool -> FaPh
FaBound@prev_alnum:Bool -> @ok:Bool -> FaPh
FaTryUrlFaPh
FaAfterUrl@+utok:String -> @empty:Bool -> FaPh
FaTryRefFaPh
FaAfterRef@+rtok:String -> @empty:Bool -> FaPh
FaGot@+tok:String -> @acc:List<&2, Parsed> -> @seen:List<&2, String> -> @empty:Bool -> FaPh
FaAdvanceFaPh
type PlfPh source · line 1160 · raw
Data
After --linkify: optional --src <tag> / --rewrite-existing (rewrite ignored on single-ref path).
PlfGo@+src:String -> PlfPh
PlfNeedSrcPlfPh
PlfHead@+src:String -> @is_rw:Bool -> @is_src:Bool -> @+h:String -> PlfPh
Definitions
def char1 source · line 10 · raw
@+c:Char -> String
def is_book_stop_flags source · line 13 · raw
@+has_letter:Bool -> @is_d:Bool -> @is_a:Bool -> @is_s:Bool -> Bool
def is_book_stop source · line 28 · raw
@+has_letter:Bool -> @+c:Char -> Bool
def next_has_letter_go source · line 31 · raw
@has_letter:Bool -> @is_a:Bool -> Bool
def next_has_letter source · line 38 · raw
@+has_letter:Bool -> @+c:Char -> Bool
def take_book_go source · line 46 · raw
@fuel:Nat -> @st:BookSt -> @rest:String -> @acc:String -> @+has_letter:Bool -> Pair(String, String)
def take_book source · line 71 · raw
@+s:String -> Pair(String, String)
def take_digits_go source · line 79 · raw
@fuel:Nat -> @st:DigSt -> @rest:String -> @acc:String -> Pair(String, String)
def take_digits source · line 104 · raw
@+s:String -> Pair(String, String)
def is_colon_or_dot source · line 107 · raw
@+c:Char -> Bool
def drop_head source · line 110 · raw
@s:String -> String
def drop_cv_sep_go source · line 117 · raw
@+s:String -> @drop:Bool -> String
def drop_cv_sep source · line 124 · raw
@+s:String -> String
def drop_dash_go source · line 131 · raw
@+s:String -> @drop:Bool -> String
def drop_dash source · line 138 · raw
@+s:String -> String
def is_dash_head source · line 145 · raw
@s:String -> Bool
def require_u32_nz source · line 179 · raw
@n:U32 -> @z:Bool -> Result<&1, &1, ParseErr, U32>
def require_u32_go source · line 186 · raw
@m:Maybe<&2, U32> -> Result<&1, &1, ParseErr, U32>
def require_u32 source · line 193 · raw
@s:String -> Result<&1, &1, ParseErr, U32>
def check_ch_le source · line 196 · raw
@+book:String -> @+ch:U32 -> @+max:U32 -> @ok:Bool -> Result<&1, &1, ParseErr, Unit>
def check_ch_go source · line 203 · raw
@+book:String -> @+ch:U32 -> @m:Maybe<&2, U32> -> Result<&1, &1, ParseErr, Unit>
def check_ch source · line 210 · raw
@+book:String -> @+ch:U32 -> Result<&1, &1, ParseErr, Unit>
def check_vs_le source · line 213 · raw
@+book:String -> @+ch:U32 -> @+v:U32 -> @+max:U32 -> @ok:Bool -> Result<&1, &1, ParseErr, Unit>
def check_vs_go source · line 220 · raw
@+book:String -> @+ch:U32 -> @+v:U32 -> @m:Maybe<&2, U32> -> Result<&1, &1, ParseErr, Unit>
def check_vs source · line 227 · raw
@+book:String -> @+ch:U32 -> @+v:U32 -> Result<&1, &1, ParseErr, Unit>
def fmt_osis_part source · line 230 · raw
@+book:String -> @+ch:U32 -> @v:Maybe<&2, U32> -> String
def fmt_same_canonical source · line 240 · raw
@+book:String -> @+ch:U32 -> @a:U32 -> @ev:Maybe<&2, U32> -> String
def fmt_canonical_same source · line 247 · raw
@+book:String -> @+ch:U32 -> @v:Maybe<&2, U32> -> @ev:Maybe<&2, U32> -> String
def fmt_canonical source · line 254 · raw
@+book:String -> @+ch:U32 -> @+v:Maybe<&2, U32> -> @+ech:U32 -> @+ev:Maybe<&2, U32> -> @+kind:RangeKind -> String
def fmt_display_verse source · line 265 · raw
@+name:String -> @+ch:U32 -> @v:Maybe<&2, U32> -> String
def fmt_display_same2 source · line 275 · raw
@+name:String -> @+ch:U32 -> @a:U32 -> @ev:Maybe<&2, U32> -> String
def fmt_display_same source · line 288 · raw
@+name:String -> @+ch:U32 -> @v:Maybe<&2, U32> -> @ev:Maybe<&2, U32> -> String
def fmt_display_with source · line 295 · raw
@+name:String -> @+ch:U32 -> @+v:Maybe<&2, U32> -> @+ech:U32 -> @+ev:Maybe<&2, U32> -> @+kind:RangeKind -> String
def fmt_display source · line 309 · raw
@+book:String -> @+ch:U32 -> @+v:Maybe<&2, U32> -> @+ech:U32 -> @+ev:Maybe<&2, U32> -> @+kind:RangeKind -> String
def mk_parsed source · line 312 · raw
@+book:String -> @+ch:U32 -> @+v:Maybe<&2, U32> -> @+ech:U32 -> @+ev:Maybe<&2, U32> -> @+kind:RangeKind -> Parsed
def finish_ch_ok source · line 319 · raw
@+book:String -> @+ch:U32 -> @+ech:U32 -> @+kind:RangeKind -> @rev:Bool -> Result<&1, &1, ParseErr, Parsed>
def finish_ch_after source · line 326 · 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 333 · 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 340 · raw
@+book:String -> @+ch:U32 -> @+ech:U32 -> @+kind:RangeKind -> Result<&1, &1, ParseErr, Parsed>
def finish_vs_end_ok source · line 343 · raw
@+book:String -> @+ch:U32 -> @+vn:U32 -> @+en:U32 -> @rev:Bool -> Result<&1, &1, ParseErr, Parsed>
def finish_vs_end source · line 350 · 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 357 · raw
@+book:String -> @+ch:U32 -> @+vn:U32 -> @ev:Maybe<&2, U32> -> Result<&1, &1, ParseErr, Parsed>
def finish_vs_after_vn source · line 364 · 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 371 · 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 378 · raw
@+book:String -> @+ch:U32 -> @+vn:U32 -> @ev:Maybe<&2, U32> -> Result<&1, &1, ParseErr, Parsed>
def parse_after_verse_ev source · line 381 · 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 388 · raw
@+book:String -> @+ch:U32 -> @+vn:U32 -> @pair:Pair(String, String) -> Result<&1, &1, ParseErr, Parsed>
def parse_after_verse_num_go source · line 393 · raw
@+book:String -> @+ch:U32 -> @+vn:U32 -> @+rest:String -> @empty:Bool -> Result<&1, &1, ParseErr, Parsed>
def parse_after_verse_num_trim source · line 400 · raw
@+book:String -> @+ch:U32 -> @+vn:U32 -> @+r:String -> Result<&1, &1, ParseErr, Parsed>
def parse_after_verse_num source · line 403 · raw
@+book:String -> @+ch:U32 -> @+vn:U32 -> @+rest:String -> Result<&1, &1, ParseErr, Parsed>
def parse_verse_branch_num source · line 406 · 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 413 · raw
@+book:String -> @+ch:U32 -> @pair:Pair(String, String) -> Result<&1, &1, ParseErr, Parsed>
def parse_verse_branch source · line 418 · raw
@+book:String -> @+ch:U32 -> @+rest:String -> Result<&1, &1, ParseErr, Parsed>
def parse_chapter_range_num source · line 421 · raw
@+book:String -> @+ch:U32 -> @r:Result<&1, &1, ParseErr, U32> -> Result<&1, &1, ParseErr, Parsed>
def parse_chapter_range_pair source · line 428 · raw
@+book:String -> @+ch:U32 -> @pair:Pair(String, String) -> Result<&1, &1, ParseErr, Parsed>
def parse_chapter_range_branch source · line 433 · raw
@+book:String -> @+ch:U32 -> @+rest:String -> Result<&1, &1, ParseErr, Parsed>
def parse_after_chapter_sep_go source · line 436 · raw
@+book:String -> @+ch:U32 -> @+rest:String -> @empty:Bool -> @dash:Bool -> Result<&1, &1, ParseErr, Parsed>
def parse_after_chapter_sep_trim source · line 447 · raw
@+book:String -> @+ch:U32 -> @+r:String -> Result<&1, &1, ParseErr, Parsed>
def parse_after_chapter_sep source · line 450 · raw
@+book:String -> @+ch:U32 -> @+rest:String -> Result<&1, &1, ParseErr, Parsed>
def parse_tail_num source · line 453 · raw
@+book:String -> @+rest0:String -> @r:Result<&1, &1, ParseErr, U32> -> Result<&1, &1, ParseErr, Parsed>
def parse_tail_pair source · line 460 · raw
@+book:String -> @pair:Pair(String, String) -> Result<&1, &1, ParseErr, Parsed>
def parse_tail source · line 465 · raw
@+book:String -> @+tail:String -> Result<&1, &1, ParseErr, Parsed>
def parse_passage_book source · line 468 · raw
@+rest:String -> @m:Maybe<&2, String> -> Result<&1, &1, ParseErr, Parsed>
def parse_passage_pair source · line 475 · raw
@pair:Pair(String, String) -> Result<&1, &1, ParseErr, Parsed>
def parse_passage_go source · line 480 · raw
@+s0:String -> @empty:Bool -> Result<&1, &1, ParseErr, Parsed>
def hex_digit_lo source · line 490 · raw
@code:U32 -> @ok:Bool -> Maybe<&2, U32>
def hex_digit_up source · line 497 · raw
@code:U32 -> @ok:Bool -> Maybe<&2, U32>
def hex_digit_low source · line 504 · raw
@code:U32 -> @ok:Bool -> Maybe<&2, U32>
def hex_nibble_af source · line 511 · raw
@+code:U32 -> @dig:Maybe<&2, U32> -> Maybe<&2, U32>
def hex_nibble_az source · line 518 · raw
@+code:U32 -> @dig:Maybe<&2, U32> -> Maybe<&2, U32>
def hex_nibble_from_code source · line 528 · raw
@+code:U32 -> Maybe<&2, U32>
def hex_nibble source · line 534 · raw
@+c:Char -> Maybe<&2, U32>
def hex_byte source · line 539 · raw
@hi:U32 -> @lo:U32 -> U32
def url_decode_go source · line 552 · raw
@fuel:Nat -> @st:DecSt -> @rest:String -> @acc:String -> String
def url_decode source · line 606 · raw
@+s:String -> String
def is_query_or_hash source · line 614 · raw
@+c:Char -> Bool
def take_until_qh_go source · line 617 · raw
@fuel:Nat -> @st:CutSt -> @rest:String -> @acc:String -> String
def strip_query source · line 642 · raw
@+s:String -> String
def take_until_slash_go source · line 645 · raw
@fuel:Nat -> @st:CutSt -> @rest:String -> @acc:String -> String
def last_path_segment source · line 670 · raw
@+s:String -> String
def strip_tr_go source · line 688 · raw
@fuel:Nat -> @ph:TrPh -> @rest:String -> @+n:Nat -> @+orig:String -> String
def strip_tr_suffix_rev source · line 723 · raw
@+s:String -> @rev:String -> String
def strip_tr_suffix source · line 736 · raw
@+s:String -> String
def parse_passage_trim source · line 739 · raw
@+s0:String -> Result<&1, &1, ParseErr, Parsed>
def parse_passage source · line 742 · raw
@+input:String -> Result<&1, &1, ParseErr, Parsed>
def looks_like_url source · line 746 · raw
@+s:String -> Bool
def pick_url_ref_go source · line 767 · raw
@+share:String -> @+fallback:String -> @empty:Bool -> String
def pick_url_ref source · line 774 · raw
@+share:String -> @+fallback:String -> String
def extract_url_ref source · line 777 · raw
@+s:String -> String
def parse_any_go source · line 780 · raw
@+s:String -> @is_url:Bool -> Result<&1, &1, ParseErr, Parsed>
def parse_any_trim source · line 787 · raw
@+s:String -> Result<&1, &1, ParseErr, Parsed>
def parse_any source · line 790 · raw
@+input:String -> Result<&1, &1, ParseErr, Parsed>
def canonical_of_r source · line 794 · raw
@r:Result<&1, &1, ParseErr, Parsed> -> String
String-only probe for linkify (avoids Result across modules)
def try_canonical source · line 803 · raw
@+input:String -> String
def rev_parsed source · line 809 · raw
@xs:List<&2, Parsed> -> @acc:List<&2, Parsed> -> List<&2, Parsed>
def canon_of source · line 816 · raw
@+p:Parsed -> String
def seen_has_go source · line 825 · raw
@fuel:Nat -> @ph:ShPh -> @+c:String -> @xs:List<&2, String> -> Bool
def seen_has source · line 844 · raw
@+c:String -> @+xs:List<&2, String> -> Bool
def find_push_dedup source · line 852 · raw
@dup:Bool -> @+p:Parsed -> @acc:List<&2, Parsed> -> @seen:List<&2, String> -> Pair(List<&2, Parsed>, List<&2, String>)
def find_push_done source · line 864 · raw
@+p:Parsed -> @acc:List<&2, Parsed> -> @+seen:List<&2, String> -> Pair(List<&2, Parsed>, List<&2, String>)
def find_push_r source · line 867 · raw
@r:Result<&1, &1, ParseErr, Parsed> -> @acc:List<&2, Parsed> -> @seen:List<&2, String> -> Pair(List<&2, Parsed>, List<&2, String>)
def find_try_tok_empty source · line 878 · raw
@empty:Bool -> @+tok:String -> @acc:List<&2, Parsed> -> @seen:List<&2, String> -> Pair(List<&2, Parsed>, List<&2, String>)
def find_try_tok source · line 890 · raw
@+tok:String -> @acc:List<&2, Parsed> -> @seen:List<&2, String> -> Pair(List<&2, Parsed>, List<&2, String>)
def str_drop_n_go source · line 897 · raw
@fuel:Nat -> @n:Nat -> @s:String -> String
def str_drop_n source · line 912 · raw
@+n:Nat -> @+s:String -> String
def is_alnum_c source · line 915 · raw
@+c:Char -> Bool
def fa_url_ph_tok source · line 933 · raw
@+utok:String -> FaPh
def fa_url_ph source · line 936 · raw
@+rest:String -> FaPh
def fa_ref_ph_tok source · line 939 · raw
@+rtok:String -> FaPh
def fa_ref_ph source · line 942 · raw
@+rest:String -> FaPh
def fa_got_from_pair source · line 945 · raw
@+tok:String -> @pair:Pair(List<&2, Parsed>, List<&2, String>) -> FaPh
def find_any_go source · line 953 · raw
@fuel:Nat -> @ph:FaPh -> @+rest:String -> @+acc:List<&2, Parsed> -> @+seen:List<&2, String> -> List<&2, Parsed>
def find_any source · line 1030 · raw
@+input:String -> List<&2, Parsed>
def err_msg source · line 1042 · raw
@e:ParseErr -> String
def show_ok source · line 1068 · raw
@+canonical:String -> @+display:String -> IO(Unit)
def show_result source · line 1075 · raw
@r:Result<&1, &1, ParseErr, Parsed> -> IO(Unit)
def join_args source · line 1089 · raw
@xs:List<&1, String> -> String
def usage source · line 1098 · raw
IO(Unit)
def show_parsed_list_rest source · line 1101 · raw
@xs:List<&2, Parsed> -> IO(Unit)
def show_parsed_list source · line 1110 · raw
@xs:List<&2, Parsed> -> IO(Unit)
def run_context_v source · line 1119 · raw
@+book:String -> @+chapter:U32 -> @verse:Maybe<&2, U32> -> IO(Unit)
def run_context_r source · line 1126 · raw
@r:Result<&1, &1, ParseErr, Parsed> -> IO(Unit)
def run_context source · line 1135 · raw
@+q:String -> IO(Unit)
def run_query source · line 1138 · raw
@+q:String -> IO(Unit)
def run_all source · line 1141 · raw
@+q:String -> IO(Unit)
def run_complete source · line 1144 · raw
@+q:String -> IO(Unit)
def run_linkify_r source · line 1147 · raw
@r:Result<&1, &1, ParseErr, Parsed> -> @+src:String -> IO(Unit)
def run_linkify source · line 1156 · raw
@+q:String -> @+src:String -> IO(Unit)
def parse_linkify_cli_go source · line 1165 · raw
@fuel:Nat -> @ph:PlfPh -> @xs:List<&1, String> -> IO(Unit)
def parse_linkify_cli source · line 1204 · raw
@xs:List<&1, String> -> IO(Unit)
def run_flag5 source · line 1207 · raw
@+h:String -> @t:List<&1, String> -> @is_all:Bool -> @is_comp:Bool -> @is_ctx:Bool -> @is_link:Bool -> IO(Unit)
def run_args source · line 1226 · raw
@xs:List<&1, String> -> IO(Unit)
def main source · line 1240 · raw
IO(Unit)