@orama/stemmers
Version:
Stemmers for Orama
1 lines • 4.81 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,h=0,n=0,c=p;;){var u,o=t+(s-t>>>1),a=0,f=h<n?h:n,l=r[o];for(u=f;u<l[0].length;u++){if(i+f==e){a=-1;break}if(0!=(a=this.j.charCodeAt(i+f)-l[0].charCodeAt(u)))break;f++}if(0>a?(s=o,n=f):(t=o,h=f),1>=s-t){if(0<t||s==t||c)break;c=g}}for(;;){if(h>=(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,h=0,n=0,c=p;;){var u,o=t+(s-t>>1),a=0,f=h<n?h:n,l=r[o];for(u=l[0].length-1-f;0<=u;u--){if(i-f==e){a=-1;break}if(0!=(a=this.j.charCodeAt(i-1-f)-l[0].charCodeAt(u)))break;f++}if(0>a?(s=o,n=f):(t=o,h=f),1>=s-t){if(0<t||s==t||c)break;c=g}}for(;;){if(h>=(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(){var r=new C,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]],s=[["dd",-1,-1],["gd",-1,-1],["nn",-1,-1],["dt",-1,-1],["gt",-1,-1],["kt",-1,-1],["tt",-1,-1]],i=[["ig",-1,1],["lig",0,1],["els",-1,1],["fullt",-1,3],["l\xf6st",-1,2]],e=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],h=[119,127,149],n=0,c=0;this.l=function(){var u=r.cursor;r:{c=r.a;var o=r.cursor,a=r.cursor+3;if(!(a>r.a)){for(r.cursor=a,n=r.cursor,r.cursor=o;;){if(o=r.cursor,r.i(e,97,246)){r.cursor=o;break}if(r.cursor=o,r.cursor>=r.a)break r;r.cursor++}for(;!r.k(e,97,246);){if(r.cursor>=r.a)break r;r.cursor++}(c=r.cursor)<n&&(c=n)}}if(r.cursor=u,r.f=r.cursor,r.cursor=r.a,u=r.a-r.cursor,!(r.cursor<c))if(a=r.f,r.f=c,r.d=r.cursor,0==(o=r.h(t)))r.f=a;else switch(r.c=r.cursor,r.f=a,o){case 1:r.e();break;case 2:r.n(h,98,121)&&r.e()}return r.cursor=r.a-u,u=r.a-r.cursor,r.cursor<c||(o=r.f,r.f=c,a=r.a-r.cursor,0==r.h(s)?r.f=o:(r.cursor=r.a-a,r.d=r.cursor,r.cursor<=r.f?r.f=o:(r.cursor--,r.c=r.cursor,r.e()&&(r.f=o)))),r.cursor=r.a-u,u=r.a-r.cursor,!function(){var t;if(!(r.cursor<c)){var s=r.f;if(r.f=c,r.d=r.cursor,0!=(t=r.h(i)))switch(r.c=r.cursor,t){case 1:if(!r.e())return;break;case 2:if(!r.b("l\xf6s"))return;break;case 3:if(!r.b("full"))return}r.f=s}}(),r.cursor=r.a-u,r.cursor=r.f,g},this.stemWord=function(t){return r.p(t),this.l(),r.j}}let stemmerInstance=new stem;function stemmer(r){return stemmerInstance.stemWord(r)}let language="swedish";