@orama/stemmers
Version:
Stemmers for Orama
1 lines • 4.56 kB
JavaScript
function r(){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!1;var i=this.j.charCodeAt(this.cursor);return!(i>t)&&!(i<s)&&0!=(r[(i-=s)>>>3]&1<<(7&i))&&(this.cursor++,!0)},this.n=function(r,s,t){if(this.cursor<=this.f)return!1;var i=this.j.charCodeAt(this.cursor-1);return!(i>t)&&!(i<s)&&0!=(r[(i-=s)>>>3]&1<<(7&i))&&(this.cursor--,!0)},this.k=function(r,s,t){if(this.cursor>=this.a)return!1;var i=this.j.charCodeAt(this.cursor);return i>t||i<s?(this.cursor++,!0):0==(r[(i-=s)>>>3]&1<<(7&i))&&(this.cursor++,!0)},this.q=function(r,s,t){if(this.cursor<=this.f)return!1;var i=this.j.charCodeAt(this.cursor-1);return i>t||i<s?(this.cursor--,!0):0==(r[(i-=s)>>>3]&1<<(7&i))&&(this.cursor--,!0)},this.m=function(r){return!(this.a-this.cursor<r.length)&&this.j.slice(this.cursor,this.cursor+r.length)==r&&(this.cursor+=r.length,!0)},this.g=function(r){return!(this.cursor-this.f<r.length)&&this.j.slice(this.cursor-r.length,this.cursor)==r&&(this.cursor-=r.length,!0)},this.o=function(r){for(var s=0,t=r.length,i=this.cursor,h=this.a,c=0,u=0,e=!1;;){var n,o=s+(t-s>>>1),a=0,f=c<u?c:u,l=r[o];for(n=f;n<l[0].length;n++){if(i+f==h){a=-1;break}if(0!=(a=this.j.charCodeAt(i+f)-l[0].charCodeAt(n)))break;f++}if(0>a?(t=o,u=f):(s=o,c=f),1>=t-s){if(0<s||t==s||e)break;e=!0}}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,h=this.f,c=0,u=0,e=!1;;){var n,o=s+(t-s>>1),a=0,f=c<u?c:u,l=r[o];for(n=l[0].length-1-f;0<=n;n--){if(i-f==h){a=-1;break}if(0!=(a=this.j.charCodeAt(i-1-f)-l[0].charCodeAt(n)))break;f++}if(0>a?(t=o,u=f):(s=o,c=f),1>=t-s){if(0<s||t==s||e)break;e=!0}}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)},this.b=function(r){var s=!1;return this.t()&&(this.s(this.c,this.d,r),s=!0),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)}}let s=new function(){var s=new r,t=[["a",-1,1],["arna",0,1],["erna",0,1],["heterna",2,1],["orna",0,1],["ad",-1,1],["e",-1,1],["ade",6,1],["ande",6,1],["arne",6,1],["are",6,1],["aste",6,1],["en",-1,1],["anden",12,1],["aren",12,1],["heten",12,1],["ern",-1,1],["ar",-1,1],["er",-1,1],["heter",18,1],["or",-1,1],["s",-1,2],["as",21,1],["arnas",22,1],["ernas",22,1],["ornas",22,1],["es",21,1],["ades",26,1],["andes",26,1],["ens",21,1],["arens",29,1],["hetens",29,1],["erns",21,1],["at",-1,1],["andet",-1,1],["het",-1,1],["ast",-1,1]],i=[["dd",-1,-1],["gd",-1,-1],["nn",-1,-1],["dt",-1,-1],["gt",-1,-1],["kt",-1,-1],["tt",-1,-1]],h=[["ig",-1,1],["lig",0,1],["els",-1,1],["fullt",-1,3],["l\xf6st",-1,2]],c=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],u=[119,127,149],e=0,n=0;this.l=function(){var r=s.cursor;r:{n=s.a;var o=s.cursor,a=s.cursor+3;if(!(a>s.a)){for(s.cursor=a,e=s.cursor,s.cursor=o;;){if(o=s.cursor,s.i(c,97,246)){s.cursor=o;break}if(s.cursor=o,s.cursor>=s.a)break r;s.cursor++}for(;!s.k(c,97,246);){if(s.cursor>=s.a)break r;s.cursor++}(n=s.cursor)<e&&(n=e)}}if(s.cursor=r,s.f=s.cursor,s.cursor=s.a,r=s.a-s.cursor,!(s.cursor<n))if(a=s.f,s.f=n,s.d=s.cursor,0==(o=s.h(t)))s.f=a;else switch(s.c=s.cursor,s.f=a,o){case 1:s.e();break;case 2:s.n(u,98,121)&&s.e()}return s.cursor=s.a-r,r=s.a-s.cursor,s.cursor<n||(o=s.f,s.f=n,a=s.a-s.cursor,0==s.h(i)?s.f=o:(s.cursor=s.a-a,s.d=s.cursor,s.cursor<=s.f?s.f=o:(s.cursor--,s.c=s.cursor,s.e()&&(s.f=o)))),s.cursor=s.a-r,r=s.a-s.cursor,!function(){var r;if(!(s.cursor<n)){var t=s.f;if(s.f=n,s.d=s.cursor,0!=(r=s.h(h)))switch(s.c=s.cursor,r){case 1:if(!s.e())return;break;case 2:if(!s.b("l\xf6s"))return;break;case 3:if(!s.b("full"))return}s.f=t}}(),s.cursor=s.a-r,s.cursor=s.f,!0},this.stemWord=function(r){return s.p(r),this.l(),s.j}};export function stemmer(r){return s.stemWord(r)}export const language="swedish";