sedra-parse
Version:
Parse Sedra 3 text database records and build JavaScript representation
27 lines (26 loc) • 8.64 kB
JavaScript
/**
* @file Parse Sedra 3 text database records and return their JavaScript representation
* @version 1.1.8
* @author Greg Borota
* @copyright (c) 2017 Greg Borota.
* @license MIT
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("sedra-cal")):"function"==typeof define&&define.amd?define(["exports","sedra-cal"],r):r(e.sedraParse={},e.sedraCal)}(this,function(e,r){"use strict";var o=/0:\d+,("[A-Z;/*-]+")(,.+)\r\n/gm,a=/1:\d+,(?:0:(\d+,)|(NULL,))("[A-Z;/ -]+")(,.+)\r\n/gm,t=/2:(\d+),(?:1:(\d+)|(NULL)),("[A-Z;/a' -]+"),(".+"),(.+)\r\n/gm,l=/.*(([^;]+[i]+[^;]+)|([^;]+[i]+[;]+[aoeiu]+)).*/,w=/.*(([^O]+[u]+[^O]+)|([^O]+[u]+[O]+[aoeiu]+)).*/,n=function(e){var o=0,a=Object.create(null,{words:{value:"",enumerable:!0,writable:!0},noY:{value:"",enumerable:!0,writable:!0},noW:{value:"",enumerable:!0,writable:!0}});return a.words=e.replace(t,function(e,t,n,u,s,b,c){for(var i=parseInt(t,10),d="";o<i;)d+=",",++o;return l.test(b)&&(a.noY+=(a.noY?",":"")+i),w.test(b)&&(a.noW+=(a.noW?",":"")+i),d+"w("+(u?"null":n)+","+r.toCal(s.replace(' "','"'))+","+r.toCal(b)+","+c+")"}),a.words="Object.freeze(["+a.words+"]);",a.noY="Object.freeze(["+a.noY+"]);",a.noW="Object.freeze(["+a.noW+"]);",a},u={',"w/ &YuORoA&"':',"w/ &Twuro)&"',',"w/ &Ya;BuOT,oA&"':',"w/ &Taybwut,o)&"',',"w/ &XuOM&"':',"w/ &qwum&"',',"w/ &XoLoA&"':',"w/ &qolo)&"',',"w/ &XaR/oA&"':',"w/ &qarco)&"',',"w/ &XD,oM&"':',"w/ &qd,om&"',',"w/ &WaAeL&"':',"w/ &$a)el&"',',"w/ &WLoMoA&"':',"w/ &$lomo)&"',',"w/ &T\'LoT,&"':',"w/ &t\'lot,&"',',"w/ &RuOKoA&"':',"w/ &rwuxo)&"',',"w/ &NuORoA& "':',"w/ &nwuro)&"',',"w/ &NoSeB&"':',"w/ &noseb&"',',"w/ &MeN&"':',"w/ &men&"',',"w/ &LoA&"':',"w/ &lo)&"',',"w/ &LKeM&"':',"w/ &lxem&"',',"w/ &L&"':',"w/ &l&"',',"w/ &KaSi;R&"':',"w/ &xasyir&"',',"w/ &EaL&"':',"w/ &(al&"',',"w/ &EaL& "':',"w/ &(al&"',',"w/ &Ea;NoA&"':',"w/ &(ayno)&"',',"w/ &EBaD&"':',"w/ &(bad&"',',"w/ &D\'LoA&"':',"w/ &d\'lo)&"',",\"w/ &D'B,a;T'oA&\"":",\"w/ &d'b,ayt'o)&\"",',"w/ &D\'&"':',"w/ &d\'&"',',"w/ &Be;T,&"':',"w/ &byet,&"',',"w/ &B\'e;T,&"':',"w/ &b\'yet,&"',',"w/ &B\'RuOK&"':',"w/ &b\'rwux&"',',"w/ &B\'LeB,oA&"':',"w/ &b\'leb,o)&"',',"w/ &B\'G,eN&"':',"w/ &b\'g,en&"',',"w/ &B\'+&"':',"w/ &b\'+&"',',"w/ &B\'&"':',"w/ &b\'&"',',"w/ &AaIe+*A&"':',"w/ &)ape+*)&"',',"w/ &AaI\'e+*A&"':',"w/ &)ap\'e+*)&"',',"w/ &AKD&"':',"w/ &)xd&"',',"w/ &;aMoA&"':',"w/ &yamo)&"',',"constr. w/ &YaENoA&"':',"constr. w/ &Ta(no)&"',',"constr. w/ &XoLoA&"':',"constr. w/ &qolo)&"',',"constr. w/ &WaB,*YeA&"':',"constr. w/ &$ab,*Te)&"',',"constr. w/ &RuOKoA&"':',"constr. w/ &rwuxo)&"',',"constr. w/ &Mi;*T,eA&"':',"constr. w/ &myi*t,e)&"',',"constr. w/ &IuOMoA&"':',"constr. w/ &pwumo)&"',',"constr. w/ &C\'oHNuOT,oA&"':',"constr. w/ &k\'ohnwut,o)&"',',"constr. w/ &B\'eSRoA&"':',"constr. w/ &b\'esro)&"',',"constr. w/ &Ai;Da;*oA&"':',"constr. w/ &)yiday*o)&"',',"constr. w/ &Ai;D,oA&"':',"constr. w/ &)yid,o)&"',',"constr. w/ &AaIe+*A&"':',"constr. w/ &)ape+*)&"',',"constr. w/ &;iD,aET\'oA&"':',"constr. w/ &yid,a(t\'o)&"',',"always w/ &AeC,aL&"':',"always w/ &)ek,al&"',',"abs. w/ &MeN&"':',"abs. w/ &men&"',',"= &MoNoA& + &H_uO&"':',"= &mono)& + &h_wu&"',',"= &MeN& + &C\'oA&, of time:"':',"= &men& + &k\'o)&, of time:"',',"= &MaN& + &H_uO&"':',"= &man& + &h_wu&"',',"= &LoA& + &HuO&"':',"= &lo)& + &hwu&"',',"= &HuO& + &HuO&"':',"= &hwu& + &hwu&"',',"= &HoNoA& + &HuO&"':',"= &hono)& + &hwu&"',',"= &C\'uL& + &A_NoW&"':',"= &k\'ul& + &)_no$&"',',"= &C\'aD,& + &HuO&"':',"= &k\'ad,& + &hwu&"',',"= &B\'aR& + &A_NoWoA&"':',"= &b\'ar& + &)_no$o)&"',',"= &AoI,& + &LoA&"':',"= &)op,& + &lo)&"',',"= &AoI,& + &LaN&"':',"= &)op,& + &lan&"',',"= &Aa;C\'oA& + &H_uO&"':',"= &)ayk\'o)& + &h_wu&"',',"(w/*L*)"':',"(w/*l*)"',',"(w/*DLA*)"':',"(w/*dl)*)"',',"(w/*D*)"':',"(w/*d*)"',',"(w/*A;DA*)"':',"(w/*)yd)*)"',',"(w/*;XDA*)"':',"(w/*yqd)*)"',',"(w/ *RB*)"':',"(w/ *rb*)"',',"(w/ *M/A*)"':',"(w/ *mc)*)"',',"(w/ *D*)"':',"(w/ *d*)"',',"(w/ *AIA*)"':',"(w/ *)p)*)"',',"(*CL-KD___KD*) "':',"(*kl-xd___xd*)"',',"(*A;T D__OA;T*)"':',"(*)yt d__w)yt*)"',',"&YoB,& as adv."':',"&Tob,& as adv."',',"&WoX*La; WaB,*YeA&"':',"&$oq*lay $ab,*Te)&"',",\"&T'iT'oA I,aC'i;HT'oA&\"":",\"&t'it'o) p,ak'yiht'o)&\"",',"&MoR;oA /B,aAOuT,&"':',"&moryo) cb,a)wut,&"',",\"&MeC'oA OMeC'oA&\"":",\"&mek'o) wmek'o)&\"",',"&KaD, KaD,&"':',"&xad, xad,&"',',"&DMeN ;uOLI,oNeH DeAI;XoORoS&"':',"&dmen ywulp,oneh de)pyqwOros&"'},s=/3:(\d+),(?:1:(\d+)|(NULL))(,".*")(,".*")(,".*")(,".*")(,-?\d+,)([01])\r\n/gm,b=/4:(\d+),(?:1:(\d+)|(NULL))(,.+)\r\n/gm,c=function(e){var r=0,o=Object.create(null,{etymology:{value:"",enumerable:!0,writable:!0},lids:{value:"",enumerable:!0,writable:!0}}),a={},t=e.replace(b,function(e,o,t,l,w){t&&(a[t]=o);var n=",t("+(l?"null":t)+w.replace(/\\/g,"\\\\")+")",u=parseInt(o,10);return r+1!==u&&(n=","+n),r=u,n});return o.etymology="Object.freeze(["+t+"]);",o.lids="Object.freeze("+JSON.stringify(a).replace(/"/g,"")+");",o},i=/^0:-?\d+,(\d{2})(\d{2})(\d{3})(\d{2}),(\d+),.+$/,d=function(e){return Object.freeze(Object.create(null,{book:{value:parseInt(e[1],10),enumerable:!0},chapter:{value:parseInt(e[2],10),enumerable:!0},verse:{value:parseInt(e[3],10),enumerable:!0},index:{value:parseInt(e[4],10),enumerable:!0},wordId:{value:16777215&parseInt(e[5],10),enumerable:!0}}))},A=function(e){for(var r=[],o=Object.create(null,{books:{value:0,enumerable:!0,writable:!0},chapters:{value:0,enumerable:!0,writable:!0},verses:{value:0,enumerable:!0,writable:!0},words:{value:0,enumerable:!0,writable:!0}}),a=e.split(/\r\n/),t=0,l=a.length-1;t<l;t++){var w=d(i.exec(a[t])),n=o[w.book];n||(n=Object.create(null,{chapters:{value:0,enumerable:!0,writable:!0},verses:{value:0,enumerable:!0,writable:!0},words:{value:0,enumerable:!0,writable:!0},rollupBooks:{value:o.books,enumerable:!0,writable:!0},rollupChapters:{value:o.chapters,enumerable:!0,writable:!0},rollupVerses:{value:o.verses,enumerable:!0,writable:!0},rollupWords:{value:o.words,enumerable:!0,writable:!0}}),o[w.book]=n,o.books+=1);var u=n[w.chapter];u||(u=Object.create(null,{verses:{value:0,enumerable:!0,writable:!0},words:{value:0,enumerable:!0,writable:!0},rollupChapters:{value:o.chapters,enumerable:!0,writable:!0},rollupVerses:{value:o.verses,enumerable:!0,writable:!0},rollupWords:{value:o.words,enumerable:!0,writable:!0}}),n[w.chapter]=u,n.chapters+=1,o.chapters+=1,r.push([w.book,w.chapter,0]));var s=u[w.verse];s||(s=[],u[w.verse]=s,u.verses+=1,n.verses+=1,o.verses+=1,r.push([w.book,w.chapter,w.verse])),o.words+=1,n.words+=1,u.words+=1,s[w.index-1]=w.wordId}return Object.freeze(Object.create(null,{ubs:{value:JSON.stringify(o).replace(/"/g,"")+";",enumerable:!0},reference:{value:JSON.stringify(r).replace(/"/g,"")+";",enumerable:!0}}))};e.getRoots=function(e){return"Object.freeze(["+e.replace(o,function(e,o,a){return",r("+r.toCal(o)+a+")"})+"]);"},e.getLexemes=function(e){return"Object.freeze(["+e.replace(a,function(e,o,a,t,l){return",l("+(a?"null,":o)+r.toCal(t.replace(' "','"'))+l+")"})+"]);"},e.getWords=function(e){return Object.freeze(n(e))},e.getEnglish=function(e){var r=null,o=Object.create(null,{english:{value:"",enumerable:!0,writable:!0},lids:{value:"",enumerable:!0,writable:!0}}),a={},t=e.replace(s,function(e,o,t,l,w,n,s,b,c,i){return a[r=l?r:t]||(a[r]=[]),a[r].push(o),",e("+r+w+n+s+(',""'===b?b:u[b]||b)+c+("1"===i?"true":"false")+")"});return o.english="Object.freeze(["+t+"]);",o.lids="Object.freeze("+JSON.stringify(a).replace(/"/g,"")+");",Object.freeze(o)},e.getEtymology=function(e){return Object.freeze(c(e))},e.getUbs=function(e){return A(e)},Object.defineProperty(e,"__esModule",{value:!0})});