@orama/stemmers
Version:
Stemmers for Orama
1 lines • 6.25 kB
JavaScript
"use strict";function _export(r,s){for(var t in s)Object.defineProperty(r,t,{enumerable:!0,get:Object.getOwnPropertyDescriptor(s,t).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,s,t){if(this.cursor>=this.a)return p;var i=this.j.charCodeAt(this.cursor);return i>t||i<s||0==(r[(i-=s)>>>3]&1<<(7&i))?p:(this.cursor++,g)},this.n=function(r,s,t){if(this.cursor<=this.f)return p;var i=this.j.charCodeAt(this.cursor-1);return i>t||i<s||0==(r[(i-=s)>>>3]&1<<(7&i))?p:(this.cursor--,g)},this.k=function(r,s,t){if(this.cursor>=this.a)return p;var i=this.j.charCodeAt(this.cursor);return i>t||i<s||0==(r[(i-=s)>>>3]&1<<(7&i))?(this.cursor++,g):p},this.q=function(r,s,t){if(this.cursor<=this.f)return p;var i=this.j.charCodeAt(this.cursor-1);return i>t||i<s||0==(r[(i-=s)>>>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 s=0,t=r.length,i=this.cursor,e=this.a,c=0,u=0,o=p;;){var n,h=s+(t-s>>>1),a=0,f=c<u?c:u,l=r[h];for(n=f;n<l[0].length;n++){if(i+f==e){a=-1;break}if(0!=(a=this.j.charCodeAt(i+f)-l[0].charCodeAt(n)))break;f++}if(0>a?(t=h,u=f):(s=h,c=f),1>=t-s){if(0<s||t==s||o)break;o=g}}for(;;){if(c>=(l=r[s])[0].length&&(this.cursor=i+l[0].length,4>l.length||(s=l[3](this),this.cursor=i+l[0].length,s)))return l[2];if(0>(s=l[1]))return 0}},this.h=function(r){for(var s=0,t=r.length,i=this.cursor,e=this.f,c=0,u=0,o=p;;){var n,h=s+(t-s>>1),a=0,f=c<u?c:u,l=r[h];for(n=l[0].length-1-f;0<=n;n--){if(i-f==e){a=-1;break}if(0!=(a=this.j.charCodeAt(i-1-f)-l[0].charCodeAt(n)))break;f++}if(0>a?(t=h,u=f):(s=h,c=f),1>=t-s){if(0<s||t==s||o)break;o=g}}for(;;){if(c>=(l=r[s])[0].length&&(this.cursor=i-l[0].length,4>l.length||(s=l[3](this),this.cursor=i-l[0].length,s)))return l[2];if(0>(s=l[1]))return 0}},this.s=function(r,s,t){var i=t.length-(s-r);return this.j=this.j.slice(0,r)+t+this.j.slice(s),this.a+=i,this.cursor>=s?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 s=p;return this.t()&&(this.s(this.c,this.d,r),s=g),s},this.e=function(){return this.b("")},this.r=function(r,s,t){s=this.s(r,s,t),r<=this.c&&(this.c+=s),r<=this.d&&(this.d+=s)},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(){var r=new C,s=[["",-1,5],["U",0,2],["Y",0,1],["\xe4",0,3],["\xf6",0,4],["\xfc",0,2]],t=[["e",-1,2],["em",-1,1],["en",-1,2],["ern",-1,1],["er",-1,1],["s",-1,3],["es",5,2]],i=[["en",-1,1],["er",-1,1],["st",-1,2],["est",2,1]],e=[["ig",-1,1],["lich",-1,1]],c=[["end",-1,1],["ig",-1,2],["ung",-1,1],["lich",-1,3],["isch",-1,2],["ik",-1,2],["heit",-1,3],["keit",-1,4]],u=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,8,0,32,8],o=[117,30,5],n=[117,30,4],h=0,a=0,f=0;this.l=function(){var l=r.cursor;return!function(){for(var s=r.cursor;;){var t=r.cursor;r:{s:{var i=r.cursor;if(r.c=r.cursor,r.m("\xdf")){if(r.d=r.cursor,!r.b("ss"))return;break s}if(r.cursor=i,r.cursor>=r.a)break r;r.cursor++}continue}r.cursor=t;break}for(r.cursor=s;;){s=r.cursor;r:{for(;;){t=r.cursor;t:if(r.i(u,97,252)){r.c=r.cursor;i:{if(i=r.cursor,r.m("u")&&(r.d=r.cursor,r.i(u,97,252))){if(!r.b("U"))return;break i}if(r.cursor=i,!r.m("y")||(r.d=r.cursor,!r.i(u,97,252)))break t;if(!r.b("Y"))return}r.cursor=t;break}if(r.cursor=t,r.cursor>=r.a)break r;r.cursor++}continue}r.cursor=s;break}}(),r.cursor=l,l=r.cursor,!function(){a=f=r.a;var s=r.cursor,t=r.cursor+3;if(!(t>r.a)){for(r.cursor=t,h=r.cursor,r.cursor=s;!r.i(u,97,252);){if(r.cursor>=r.a)return;r.cursor++}for(;!r.k(u,97,252);){if(r.cursor>=r.a)return;r.cursor++}for((f=r.cursor)<h&&(f=h);!r.i(u,97,252);){if(r.cursor>=r.a)return;r.cursor++}for(;!r.k(u,97,252);){if(r.cursor>=r.a)return;r.cursor++}a=r.cursor}}(),r.cursor=l,r.f=r.cursor,r.cursor=r.a,!function(){var s,u=r.a-r.cursor;r:if(r.d=r.cursor,0!=(s=r.h(t))&&(r.c=r.cursor,f<=r.cursor))switch(s){case 1:if(!r.e())return;break;case 2:if(!r.e())return;if(s=r.a-r.cursor,r.d=r.cursor,r.g("s"))if(r.c=r.cursor,r.g("nis")){if(!r.e())return}else r.cursor=r.a-s;else r.cursor=r.a-s;break;case 3:if(!r.n(o,98,116))break r;if(!r.e())return}r.cursor=r.a-u,u=r.a-r.cursor;r:if(r.d=r.cursor,0!=(s=r.h(i))&&(r.c=r.cursor,f<=r.cursor))switch(s){case 1:if(!r.e())return;break;case 2:if(!r.n(n,98,116)||(s=r.cursor-3)<r.f)break r;if(r.cursor=s,!r.e())return}r.cursor=r.a-u,u=r.a-r.cursor;r:if(r.d=r.cursor,0!=(s=r.h(c))&&(r.c=r.cursor,a<=r.cursor))switch(s){case 1:if(!r.e())return;s=r.a-r.cursor;s:if(r.d=r.cursor,r.g("ig")){r.c=r.cursor;var h=r.a-r.cursor;if(r.g("e")){r.cursor=r.a-s;break s}if(r.cursor=r.a-h,a<=r.cursor){if(!r.e())return}else r.cursor=r.a-s}else r.cursor=r.a-s;break;case 2:if(s=r.a-r.cursor,r.g("e"))break r;if(r.cursor=r.a-s,!r.e())return;break;case 3:if(!r.e())return;s=r.a-r.cursor;s:{if((r.d=r.cursor,h=r.a-r.cursor,!r.g("er"))&&(r.cursor=r.a-h,!r.g("en"))){r.cursor=r.a-s;break s}if(r.c=r.cursor,f<=r.cursor){if(!r.e())return}else r.cursor=r.a-s}break;case 4:if(!r.e())return;if(s=r.a-r.cursor,r.d=r.cursor,0==r.h(e))r.cursor=r.a-s;else if(r.c=r.cursor,a<=r.cursor){if(!r.e())return}else r.cursor=r.a-s}r.cursor=r.a-u}(),r.cursor=r.f,l=r.cursor,!function(){for(var t;;){var i=r.cursor;r:if(r.c=r.cursor,0!=(t=r.o(s))){switch(r.d=r.cursor,t){case 1:if(!r.b("y"))return;break;case 2:if(!r.b("u"))return;break;case 3:if(!r.b("a"))return;break;case 4:if(!r.b("o"))return;break;case 5:if(r.cursor>=r.a)break r;r.cursor++}continue}r.cursor=i;break}}(),r.cursor=l,g},this.stemWord=function(s){return r.p(s),this.l(),r.j}}let stemmerInstance=new stem;function stemmer(r){return stemmerInstance.stemWord(r)}let language="german";