@orama/stemmers
Version:
Stemmers for Orama
1 lines • 5.27 kB
JavaScript
"use strict";function _export(r,t){for(var s in t)Object.defineProperty(r,s,{enumerable:!0,get:Object.getOwnPropertyDescriptor(t,s).get})}Object.defineProperty(exports,"__esModule",{value:!0}),_export(exports,{get language(){return language},get stemmer(){return stemmer}});var g=!0,p=!1;function C(){this.p=function(r){this.j=r,this.cursor=0,this.a=this.j.length,this.f=0,this.c=this.cursor,this.d=this.a},this.z=function(){return this.j},this.w=function(r){this.j=r.j,this.cursor=r.cursor,this.a=r.a,this.f=r.f,this.c=r.c,this.d=r.d},this.i=function(r,t,s){if(this.cursor>=this.a)return p;var i=this.j.charCodeAt(this.cursor);return i>s||i<t||0==(r[(i-=t)>>>3]&1<<(7&i))?p:(this.cursor++,g)},this.n=function(r,t,s){if(this.cursor<=this.f)return p;var i=this.j.charCodeAt(this.cursor-1);return i>s||i<t||0==(r[(i-=t)>>>3]&1<<(7&i))?p:(this.cursor--,g)},this.k=function(r,t,s){if(this.cursor>=this.a)return p;var i=this.j.charCodeAt(this.cursor);return i>s||i<t||0==(r[(i-=t)>>>3]&1<<(7&i))?(this.cursor++,g):p},this.q=function(r,t,s){if(this.cursor<=this.f)return p;var i=this.j.charCodeAt(this.cursor-1);return i>s||i<t||0==(r[(i-=t)>>>3]&1<<(7&i))?(this.cursor--,g):p},this.m=function(r){return this.a-this.cursor<r.length||this.j.slice(this.cursor,this.cursor+r.length)!=r?p:(this.cursor+=r.length,g)},this.g=function(r){return this.cursor-this.f<r.length||this.j.slice(this.cursor-r.length,this.cursor)!=r?p:(this.cursor-=r.length,g)},this.o=function(r){for(var t=0,s=r.length,i=this.cursor,e=this.a,u=0,c=0,n=p;;){var o,h=t+(s-t>>>1),a=0,f=u<c?u:c,l=r[h];for(o=f;o<l[0].length;o++){if(i+f==e){a=-1;break}if(0!=(a=this.j.charCodeAt(i+f)-l[0].charCodeAt(o)))break;f++}if(0>a?(s=h,c=f):(t=h,u=f),1>=s-t){if(0<t||s==t||n)break;n=g}}for(;;){if(u>=(l=r[t])[0].length&&(this.cursor=i+l[0].length,4>l.length||(t=l[3](this),this.cursor=i+l[0].length,t)))return l[2];if(0>(t=l[1]))return 0}},this.h=function(r){for(var t=0,s=r.length,i=this.cursor,e=this.f,u=0,c=0,n=p;;){var o,h=t+(s-t>>1),a=0,f=u<c?u:c,l=r[h];for(o=l[0].length-1-f;0<=o;o--){if(i-f==e){a=-1;break}if(0!=(a=this.j.charCodeAt(i-1-f)-l[0].charCodeAt(o)))break;f++}if(0>a?(s=h,c=f):(t=h,u=f),1>=s-t){if(0<t||s==t||n)break;n=g}}for(;;){if(u>=(l=r[t])[0].length&&(this.cursor=i-l[0].length,4>l.length||(t=l[3](this),this.cursor=i-l[0].length,t)))return l[2];if(0>(t=l[1]))return 0}},this.s=function(r,t,s){var i=s.length-(t-r);return this.j=this.j.slice(0,r)+s+this.j.slice(t),this.a+=i,this.cursor>=t?this.cursor+=i:this.cursor>r&&(this.cursor=r),i},this.t=function(){return 0>this.c||this.c>this.d||this.d>this.a||this.a>this.j.length?p:g},this.b=function(r){var t=p;return this.t()&&(this.s(this.c,this.d,r),t=g),t},this.e=function(){return this.b("")},this.r=function(r,t,s){t=this.s(r,t,s),r<=this.c&&(this.c+=t),r<=this.d&&(this.d+=t)},this.u=function(){var r="";return this.t()&&(r=this.j.slice(this.c,this.d)),r},this.v=function(){return this.j.slice(0,this.a)}}function stem(){function r(){return(i.d=i.cursor,0==i.h(c))?p:(i.c=i.cursor,i.e())?(f-=1,g):p}function t(){return i.i(h,97,117)?g:p}function s(){var r;if(i.c=i.cursor,0!=(r=i.o(o)))switch(i.d=i.cursor,r){case 1:if(!i.e())break;a=2,f-=1;break;case 2:if(!i.b("ajar"))break;f-=1;break;case 3:if(!i.e())break;a=4,f-=1;break;case 4:if(!i.b("ajar"))break;a=4,f-=1}}var i=new C,e=[["kah",-1,1],["lah",-1,1],["pun",-1,1]],u=[["nya",-1,1],["ku",-1,1],["mu",-1,1]],c=[["i",-1,1,function(){if(!(2>=a))return p;var r=i.a-i.cursor;return i.g("s")?p:(i.cursor=i.a-r,g)}],["an",-1,1,function(){return 1==a?p:g}],["kan",1,1,function(){return 3==a||2==a?p:g}]],n=[["di",-1,1],["ke",-1,2],["me",-1,1],["mem",2,5],["men",2,1],["meng",4,1],["meny",4,3,t],["pem",-1,6],["pen",-1,2],["peng",8,2],["peny",8,4,t],["ter",-1,1]],o=[["be",-1,3,function(){return i.k(h,97,117)&&i.m("er")?g:p}],["belajar",0,4],["ber",0,3],["pe",-1,1],["pelajar",3,2],["per",3,1]],h=[17,65,16],a=0,f=0;this.l=function(){f=0;for(var t=i.cursor;;){var c=i.cursor;r:{for(;!i.i(h,97,117);){if(i.cursor>=i.a)break r;i.cursor++}f+=1;continue}i.cursor=c;break}if(i.cursor=t,!(2<f)||(a=0,i.f=i.cursor,i.cursor=i.a,t=i.a-i.cursor,i.d=i.cursor,0!=i.h(e)&&(i.c=i.cursor,i.e()&&(f-=1)),i.cursor=i.a-t,!(2<f))||(t=i.a-i.cursor,i.d=i.cursor,0!=i.h(u)&&(i.c=i.cursor,i.e()&&(f-=1)),i.cursor=i.a-t,i.cursor=i.f,!(2<f)))return p;t:{if(c=i.cursor,t=i.cursor,function(){var r;if(i.c=i.cursor,0==(r=i.o(n)))return p;switch(i.d=i.cursor,r){case 1:if(!i.e())return p;a=1,f-=1;break;case 2:if(!i.e())return p;a=3,f-=1;break;case 3:if(a=1,!i.b("s"))return p;f-=1;break;case 4:if(a=3,!i.b("s"))return p;f-=1;break;case 5:a=1,f-=1;t:{r=i.cursor;var t=i.cursor;if(i.i(h,97,117)){if(i.cursor=t,!i.b("p"))return p;break t}if(i.cursor=r,!i.e())return p}break;case 6:a=3,f-=1;t:{if(r=i.cursor,t=i.cursor,i.i(h,97,117)){if(i.cursor=t,!i.b("p"))return p;break t}if(i.cursor=r,!i.e())return p}}return g}()){c=i.cursor;var o=i.cursor;2<f&&(i.f=i.cursor,i.cursor=i.a,r()&&(i.cursor=i.f,i.cursor=o,2<f&&s())),i.cursor=c,i.cursor=t;break t}i.cursor=c,t=i.cursor,s(),i.cursor=t,t=i.cursor,2<f&&(i.f=i.cursor,i.cursor=i.a,r()&&(i.cursor=i.f)),i.cursor=t}return g},this.stemWord=function(r){return i.p(r),this.l(),i.j}}let stemmerInstance=new stem;function stemmer(r){return stemmerInstance.stemWord(r)}let language="indonesian";