~/bend-docscommunity

parse.bend checks

raw source on the hub · import 0x0bf236f7bc3ba21b1b36cad3c0ecfa7c/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

type DigSt source · line 74 · raw

Data

type RangeKind source · line 152 · raw

Data

type ParseErr source · line 158 · raw

Data

type Parsed source · line 167 · raw

Data

type DecSt source · line 543 · raw

Data

Single recursive decoder — Maybe results passed as DecSt fields (no computed match)

type CutSt source · line 609 · raw

Data

type TrPh source · line 682 · raw

Data

type ShPh source · line 821 · raw

Data

type FaPh source · line 939 · raw

Data

type PlfPh source · line 1180 · raw

Data

After --linkify: optional --src <tag> / --rewrite-existing (rewrite ignored on single-ref path).

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_push_r_tok_done source · line 879 · raw

@+tok:String -> @pair:Pair(List<&2, Parsed>, List<&2, String>) -> Pair(String, Pair(List<&2, Parsed>, List<&2, String>))

On parse failure return "" consume-tok so FaGot advances one char (not the false token).

def find_push_r_tok source · line 887 · raw

@+tok:String -> @r:Result<&1, &1, ParseErr, Parsed> -> @acc:List<&2, Parsed> -> @seen:List<&2, String> -> Pair(String, Pair(List<&2, Parsed>, List<&2, String>))

def find_try_tok_empty source · line 899 · raw

@empty:Bool -> @+tok:String -> @acc:List<&2, Parsed> -> @seen:List<&2, String> -> Pair(String, Pair(List<&2, Parsed>, List<&2, String>))

def find_try_tok source · line 911 · raw

@+tok:String -> @acc:List<&2, Parsed> -> @seen:List<&2, String> -> Pair(String, Pair(List<&2, Parsed>, List<&2, String>))

def str_drop_n_go source · line 918 · raw

@fuel:Nat -> @n:Nat -> @s:String -> String

def str_drop_n source · line 933 · raw

@+n:Nat -> @+s:String -> String

def is_alnum_c source · line 936 · raw

@+c:Char -> Bool

def fa_url_ph_tok source · line 954 · raw

@+utok:String -> FaPh

def fa_url_ph source · line 957 · raw

@+rest:String -> FaPh

def fa_ref_ph_tok source · line 960 · raw

@+rtok:String -> FaPh

def fa_ref_ph source · line 963 · raw

@+rest:String -> FaPh

def fa_got_from_pair source · line 966 · raw

@pair:Pair(String, Pair(List<&2, Parsed>, List<&2, String>)) -> FaPh

def find_any_go source · line 973 · raw

@fuel:Nat -> @ph:FaPh -> @+rest:String -> @+acc:List<&2, Parsed> -> @+seen:List<&2, String> -> List<&2, Parsed>

def find_any source · line 1050 · raw

@+input:String -> List<&2, Parsed>

def err_msg source · line 1062 · raw

@e:ParseErr -> String

def show_ok source · line 1088 · raw

@+canonical:String -> @+display:String -> IO(Unit)

def show_result source · line 1095 · raw

@r:Result<&1, &1, ParseErr, Parsed> -> IO(Unit)

def join_args source · line 1109 · raw

@xs:List<&1, String> -> String

def usage source · line 1118 · raw

IO(Unit)

def show_parsed_list_rest source · line 1121 · raw

@xs:List<&2, Parsed> -> IO(Unit)

def show_parsed_list source · line 1130 · raw

@xs:List<&2, Parsed> -> IO(Unit)

def run_context_v source · line 1139 · raw

@+book:String -> @+chapter:U32 -> @verse:Maybe<&2, U32> -> IO(Unit)

def run_context_r source · line 1146 · raw

@r:Result<&1, &1, ParseErr, Parsed> -> IO(Unit)

def run_context source · line 1155 · raw

@+q:String -> IO(Unit)

def run_query source · line 1158 · raw

@+q:String -> IO(Unit)

def run_all source · line 1161 · raw

@+q:String -> IO(Unit)

def run_complete source · line 1164 · raw

@+q:String -> IO(Unit)

def run_linkify_r source · line 1167 · raw

@r:Result<&1, &1, ParseErr, Parsed> -> @+src:String -> IO(Unit)

def run_linkify source · line 1176 · raw

@+q:String -> @+src:String -> IO(Unit)

def parse_linkify_cli_go source · line 1185 · raw

@fuel:Nat -> @ph:PlfPh -> @xs:List<&1, String> -> IO(Unit)

def parse_linkify_cli source · line 1224 · raw

@xs:List<&1, String> -> IO(Unit)

def run_flag5 source · line 1227 · 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 1246 · raw

@xs:List<&1, String> -> IO(Unit)

def main source · line 1260 · raw

IO(Unit)