: parse-ref ( strref -- Book/Chapter/Verse ) " " str-split :v $v vec-popback /* The vector and it's rear element \*/ ":" str-split splat :verse :chapter /* Contains the rest of the elements which make up the book name \*/ " " str-join :book<dict> $book "$$$" "" str-replace <<-book $chapter <<-chapter $verse <<-verse ;: load-esv ( -- esv ) "ESV.txt" open-file-reader :r
<vector> :verses <vector> :refs[ $r .EOF not ] $r .EOF not [ $r .read-line :line $line "$$$" str-contains [ $refs $line parse-ref $verses len 1 - <<-idx vec-append :refs ] $r .read-line :line $line "$$$" str-contains [ $refs $line parse-ref $verses len 1 - <<-idx vec-append :refs [ $verses $line vec-append :verses ] $verses $line vec-append :verses if ] while ;load-esv