2021-02-18 21:44:01 +01:00
/ * !
* Lunr languages , ` French ` language
* https : //github.com/MihaiValentin/lunr-languages
*
* Copyright 2014 , Mihai Valentin
* http : //www.mozilla.org/MPL/
* /
/ * !
* based on
* Snowball JavaScript Library v0 . 3
* http : //code.google.com/p/urim/
* http : //snowball.tartarus.org/
*
* Copyright 2010 , Oleg Mazko
* http : //www.mozilla.org/MPL/
* /
/ * *
* export the module via AMD , CommonJS or as a browser global
* Export code from https : //github.com/umdjs/umd/blob/master/returnExports.js
* /
2021-02-18 22:21:36 +01:00
( function ( root , factory ) {
if ( typeof define === "function" && define . amd ) {
2021-02-18 21:44:01 +01:00
// AMD. Register as an anonymous module.
2021-02-18 22:21:36 +01:00
define ( factory ) ;
} else if ( typeof exports === "object" ) {
2021-02-18 21:44:01 +01:00
/ * *
* Node . Does not work with strict CommonJS , but
* only CommonJS - like environments that support module . exports ,
* like Node .
* /
2021-02-18 22:21:36 +01:00
module . exports = factory ( ) ;
2021-02-18 21:44:01 +01:00
} else {
// Browser globals (root is window)
factory ( ) ( root . lunr ) ;
}
2021-02-18 22:21:36 +01:00
} ) ( this , function ( ) {
2021-02-18 21:44:01 +01:00
/ * *
* Just return a value to define the module export .
* This example returns an object , but the module
* can return a function as the exported value .
* /
2021-02-18 22:21:36 +01:00
return function ( lunr ) {
2021-02-18 21:44:01 +01:00
/* throw error if lunr is not yet included */
2021-02-18 22:21:36 +01:00
if ( "undefined" === typeof lunr ) {
throw new Error (
"Lunr is not present. Please include / require Lunr before this script."
) ;
2021-02-18 21:44:01 +01:00
}
/* throw error if lunr stemmer support is not yet included */
2021-02-18 22:21:36 +01:00
if ( "undefined" === typeof lunr . stemmerSupport ) {
throw new Error (
"Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script."
) ;
2021-02-18 21:44:01 +01:00
}
/* register specific locale function */
2021-02-18 22:21:36 +01:00
lunr . fr = function ( ) {
2021-02-18 21:44:01 +01:00
this . pipeline . reset ( ) ;
this . pipeline . add (
lunr . fr . trimmer ,
lunr . fr . stopWordFilter ,
lunr . fr . stemmer
) ;
// for lunr version 2
// this is necessary so that every searched word is also stemmed before
// in lunr <= 1 this is not needed, as it is done using the normal pipeline
if ( this . searchPipeline ) {
this . searchPipeline . reset ( ) ;
2021-02-18 22:21:36 +01:00
this . searchPipeline . add ( lunr . fr . stemmer ) ;
2021-02-18 21:44:01 +01:00
}
} ;
/* lunr trimmer function */
2021-02-18 22:21:36 +01:00
lunr . fr . wordCharacters =
"A-Za-z\xAA\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02E0-\u02E4\u1D00-\u1D25\u1D2C-\u1D5C\u1D62-\u1D65\u1D6B-\u1D77\u1D79-\u1DBE\u1E00-\u1EFF\u2071\u207F\u2090-\u209C\u212A\u212B\u2132\u214E\u2160-\u2188\u2C60-\u2C7F\uA722-\uA787\uA78B-\uA7AD\uA7B0-\uA7B7\uA7F7-\uA7FF\uAB30-\uAB5A\uAB5C-\uAB64\uFB00-\uFB06\uFF21-\uFF3A\uFF41-\uFF5A" ;
lunr . fr . trimmer = lunr . trimmerSupport . generateTrimmer (
lunr . fr . wordCharacters
) ;
2021-02-18 21:44:01 +01:00
2021-02-18 22:21:36 +01:00
lunr . Pipeline . registerFunction ( lunr . fr . trimmer , "trimmer-fr" ) ;
2021-02-18 21:44:01 +01:00
/* lunr stemmer function */
2021-02-18 22:21:36 +01:00
lunr . fr . stemmer = ( function ( ) {
2021-02-18 21:44:01 +01:00
/* create the wrapped stemmer object */
var Among = lunr . stemmerSupport . Among ,
SnowballProgram = lunr . stemmerSupport . SnowballProgram ,
2021-02-18 22:21:36 +01:00
st = new ( function FrenchStemmer ( ) {
var a _0 = [
new Among ( "col" , - 1 , - 1 ) ,
new Among ( "par" , - 1 , - 1 ) ,
new Among ( "tap" , - 1 , - 1 ) ,
2021-02-18 21:44:01 +01:00
] ,
2021-02-18 22:21:36 +01:00
a _1 = [
new Among ( "" , - 1 , 4 ) ,
new Among ( "I" , 0 , 1 ) ,
new Among ( "U" , 0 , 2 ) ,
new Among ( "Y" , 0 , 3 ) ,
2021-02-18 21:44:01 +01:00
] ,
a _2 = [
2021-02-18 22:21:36 +01:00
new Among ( "iqU" , - 1 , 3 ) ,
new Among ( "abl" , - 1 , 3 ) ,
new Among ( "I\u00E8r" , - 1 , 4 ) ,
new Among ( "i\u00E8r" , - 1 , 4 ) ,
new Among ( "eus" , - 1 , 2 ) ,
new Among ( "iv" , - 1 , 1 ) ,
2021-02-18 21:44:01 +01:00
] ,
a _3 = [
2021-02-18 22:21:36 +01:00
new Among ( "ic" , - 1 , 2 ) ,
new Among ( "abil" , - 1 , 1 ) ,
new Among ( "iv" , - 1 , 3 ) ,
2021-02-18 21:44:01 +01:00
] ,
2021-02-18 22:21:36 +01:00
a _4 = [
new Among ( "iqUe" , - 1 , 1 ) ,
new Among ( "atrice" , - 1 , 2 ) ,
new Among ( "ance" , - 1 , 1 ) ,
new Among ( "ence" , - 1 , 5 ) ,
new Among ( "logie" , - 1 , 3 ) ,
new Among ( "able" , - 1 , 1 ) ,
new Among ( "isme" , - 1 , 1 ) ,
new Among ( "euse" , - 1 , 11 ) ,
new Among ( "iste" , - 1 , 1 ) ,
new Among ( "ive" , - 1 , 8 ) ,
new Among ( "if" , - 1 , 8 ) ,
new Among ( "usion" , - 1 , 4 ) ,
new Among ( "ation" , - 1 , 2 ) ,
new Among ( "ution" , - 1 , 4 ) ,
new Among ( "ateur" , - 1 , 2 ) ,
new Among ( "iqUes" , - 1 , 1 ) ,
new Among ( "atrices" , - 1 , 2 ) ,
new Among ( "ances" , - 1 , 1 ) ,
new Among ( "ences" , - 1 , 5 ) ,
new Among ( "logies" , - 1 , 3 ) ,
new Among ( "ables" , - 1 , 1 ) ,
new Among ( "ismes" , - 1 , 1 ) ,
new Among ( "euses" , - 1 , 11 ) ,
new Among ( "istes" , - 1 , 1 ) ,
new Among ( "ives" , - 1 , 8 ) ,
new Among ( "ifs" , - 1 , 8 ) ,
new Among ( "usions" , - 1 , 4 ) ,
new Among ( "ations" , - 1 , 2 ) ,
new Among ( "utions" , - 1 , 4 ) ,
new Among ( "ateurs" , - 1 , 2 ) ,
new Among ( "ments" , - 1 , 15 ) ,
new Among ( "ements" , 30 , 6 ) ,
new Among ( "issements" , 31 , 12 ) ,
new Among ( "it\u00E9s" , - 1 , 7 ) ,
new Among ( "ment" , - 1 , 15 ) ,
new Among ( "ement" , 34 , 6 ) ,
new Among ( "issement" , 35 , 12 ) ,
new Among ( "amment" , 34 , 13 ) ,
new Among ( "emment" , 34 , 14 ) ,
new Among ( "aux" , - 1 , 10 ) ,
new Among ( "eaux" , 39 , 9 ) ,
new Among ( "eux" , - 1 , 1 ) ,
new Among ( "it\u00E9" , - 1 , 7 ) ,
2021-02-18 21:44:01 +01:00
] ,
a _5 = [
2021-02-18 22:21:36 +01:00
new Among ( "ira" , - 1 , 1 ) ,
new Among ( "ie" , - 1 , 1 ) ,
new Among ( "isse" , - 1 , 1 ) ,
new Among ( "issante" , - 1 , 1 ) ,
new Among ( "i" , - 1 , 1 ) ,
new Among ( "irai" , 4 , 1 ) ,
new Among ( "ir" , - 1 , 1 ) ,
new Among ( "iras" , - 1 , 1 ) ,
new Among ( "ies" , - 1 , 1 ) ,
new Among ( "\u00EEmes" , - 1 , 1 ) ,
new Among ( "isses" , - 1 , 1 ) ,
new Among ( "issantes" , - 1 , 1 ) ,
new Among ( "\u00EEtes" , - 1 , 1 ) ,
new Among ( "is" , - 1 , 1 ) ,
new Among ( "irais" , 13 , 1 ) ,
new Among ( "issais" , 13 , 1 ) ,
new Among ( "irions" , - 1 , 1 ) ,
new Among ( "issions" , - 1 , 1 ) ,
new Among ( "irons" , - 1 , 1 ) ,
new Among ( "issons" , - 1 , 1 ) ,
new Among ( "issants" , - 1 , 1 ) ,
new Among ( "it" , - 1 , 1 ) ,
new Among ( "irait" , 21 , 1 ) ,
new Among ( "issait" , 21 , 1 ) ,
new Among ( "issant" , - 1 , 1 ) ,
new Among ( "iraIent" , - 1 , 1 ) ,
new Among ( "issaIent" , - 1 , 1 ) ,
new Among ( "irent" , - 1 , 1 ) ,
new Among ( "issent" , - 1 , 1 ) ,
new Among ( "iront" , - 1 , 1 ) ,
new Among ( "\u00EEt" , - 1 , 1 ) ,
new Among ( "iriez" , - 1 , 1 ) ,
new Among ( "issiez" , - 1 , 1 ) ,
new Among ( "irez" , - 1 , 1 ) ,
new Among ( "issez" , - 1 , 1 ) ,
2021-02-18 21:44:01 +01:00
] ,
2021-02-18 22:21:36 +01:00
a _6 = [
new Among ( "a" , - 1 , 3 ) ,
new Among ( "era" , 0 , 2 ) ,
new Among ( "asse" , - 1 , 3 ) ,
new Among ( "ante" , - 1 , 3 ) ,
new Among ( "\u00E9e" , - 1 , 2 ) ,
new Among ( "ai" , - 1 , 3 ) ,
new Among ( "erai" , 5 , 2 ) ,
new Among ( "er" , - 1 , 2 ) ,
new Among ( "as" , - 1 , 3 ) ,
new Among ( "eras" , 8 , 2 ) ,
new Among ( "\u00E2mes" , - 1 , 3 ) ,
new Among ( "asses" , - 1 , 3 ) ,
new Among ( "antes" , - 1 , 3 ) ,
new Among ( "\u00E2tes" , - 1 , 3 ) ,
new Among ( "\u00E9es" , - 1 , 2 ) ,
new Among ( "ais" , - 1 , 3 ) ,
new Among ( "erais" , 15 , 2 ) ,
new Among ( "ions" , - 1 , 1 ) ,
new Among ( "erions" , 17 , 2 ) ,
new Among ( "assions" , 17 , 3 ) ,
new Among ( "erons" , - 1 , 2 ) ,
new Among ( "ants" , - 1 , 3 ) ,
new Among ( "\u00E9s" , - 1 , 2 ) ,
new Among ( "ait" , - 1 , 3 ) ,
new Among ( "erait" , 23 , 2 ) ,
new Among ( "ant" , - 1 , 3 ) ,
new Among ( "aIent" , - 1 , 3 ) ,
new Among ( "eraIent" , 26 , 2 ) ,
new Among ( "\u00E8rent" , - 1 , 2 ) ,
new Among ( "assent" , - 1 , 3 ) ,
new Among ( "eront" , - 1 , 2 ) ,
new Among ( "\u00E2t" , - 1 , 3 ) ,
new Among ( "ez" , - 1 , 2 ) ,
new Among ( "iez" , 32 , 2 ) ,
new Among ( "eriez" , 33 , 2 ) ,
new Among ( "assiez" , 33 , 3 ) ,
new Among ( "erez" , 32 , 2 ) ,
new Among ( "\u00E9" , - 1 , 2 ) ,
2021-02-18 21:44:01 +01:00
] ,
2021-02-18 22:21:36 +01:00
a _7 = [
new Among ( "e" , - 1 , 3 ) ,
new Among ( "I\u00E8re" , 0 , 2 ) ,
new Among ( "i\u00E8re" , 0 , 2 ) ,
new Among ( "ion" , - 1 , 1 ) ,
new Among ( "Ier" , - 1 , 2 ) ,
new Among ( "ier" , - 1 , 2 ) ,
new Among ( "\u00EB" , - 1 , 4 ) ,
2021-02-18 21:44:01 +01:00
] ,
a _8 = [
2021-02-18 22:21:36 +01:00
new Among ( "ell" , - 1 , - 1 ) ,
new Among ( "eill" , - 1 , - 1 ) ,
new Among ( "enn" , - 1 , - 1 ) ,
new Among ( "onn" , - 1 , - 1 ) ,
new Among ( "ett" , - 1 , - 1 ) ,
2021-02-18 21:44:01 +01:00
] ,
2021-02-18 22:21:36 +01:00
g _v = [
17 ,
65 ,
16 ,
1 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
128 ,
130 ,
103 ,
8 ,
5 ,
2021-02-18 21:44:01 +01:00
] ,
2021-02-18 22:21:36 +01:00
g _keep _with _s = [
1 ,
65 ,
20 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
0 ,
128 ,
2021-02-18 21:44:01 +01:00
] ,
2021-02-18 22:21:36 +01:00
I _p2 ,
I _p1 ,
I _pV ,
sbp = new SnowballProgram ( ) ;
this . setCurrent = function ( word ) {
2021-02-18 21:44:01 +01:00
sbp . setCurrent ( word ) ;
} ;
2021-02-18 22:21:36 +01:00
this . getCurrent = function ( ) {
2021-02-18 21:44:01 +01:00
return sbp . getCurrent ( ) ;
} ;
function habr1 ( c1 , c2 , v _1 ) {
if ( sbp . eq _s ( 1 , c1 ) ) {
sbp . ket = sbp . cursor ;
if ( sbp . in _grouping ( g _v , 97 , 251 ) ) {
sbp . slice _from ( c2 ) ;
sbp . cursor = v _1 ;
return true ;
}
}
return false ;
}
function habr2 ( c1 , c2 , v _1 ) {
if ( sbp . eq _s ( 1 , c1 ) ) {
sbp . ket = sbp . cursor ;
sbp . slice _from ( c2 ) ;
sbp . cursor = v _1 ;
return true ;
}
return false ;
}
function r _prelude ( ) {
var v _1 , v _2 ;
while ( true ) {
v _1 = sbp . cursor ;
if ( sbp . in _grouping ( g _v , 97 , 251 ) ) {
sbp . bra = sbp . cursor ;
v _2 = sbp . cursor ;
2021-02-18 22:21:36 +01:00
if ( habr1 ( "u" , "U" , v _1 ) ) continue ;
2021-02-18 21:44:01 +01:00
sbp . cursor = v _2 ;
2021-02-18 22:21:36 +01:00
if ( habr1 ( "i" , "I" , v _1 ) ) continue ;
2021-02-18 21:44:01 +01:00
sbp . cursor = v _2 ;
2021-02-18 22:21:36 +01:00
if ( habr2 ( "y" , "Y" , v _1 ) ) continue ;
2021-02-18 21:44:01 +01:00
}
sbp . cursor = v _1 ;
sbp . bra = v _1 ;
if ( ! habr1 ( "y" , "Y" , v _1 ) ) {
sbp . cursor = v _1 ;
if ( sbp . eq _s ( 1 , "q" ) ) {
sbp . bra = sbp . cursor ;
2021-02-18 22:21:36 +01:00
if ( habr2 ( "u" , "U" , v _1 ) ) continue ;
2021-02-18 21:44:01 +01:00
}
sbp . cursor = v _1 ;
2021-02-18 22:21:36 +01:00
if ( v _1 >= sbp . limit ) return ;
2021-02-18 21:44:01 +01:00
sbp . cursor ++ ;
}
}
}
function habr3 ( ) {
while ( ! sbp . in _grouping ( g _v , 97 , 251 ) ) {
2021-02-18 22:21:36 +01:00
if ( sbp . cursor >= sbp . limit ) return true ;
2021-02-18 21:44:01 +01:00
sbp . cursor ++ ;
}
while ( ! sbp . out _grouping ( g _v , 97 , 251 ) ) {
2021-02-18 22:21:36 +01:00
if ( sbp . cursor >= sbp . limit ) return true ;
2021-02-18 21:44:01 +01:00
sbp . cursor ++ ;
}
return false ;
}
function r _mark _regions ( ) {
var v _1 = sbp . cursor ;
I _pV = sbp . limit ;
I _p1 = I _pV ;
I _p2 = I _pV ;
2021-02-18 22:21:36 +01:00
if (
sbp . in _grouping ( g _v , 97 , 251 ) &&
sbp . in _grouping ( g _v , 97 , 251 ) &&
sbp . cursor < sbp . limit
)
2021-02-18 21:44:01 +01:00
sbp . cursor ++ ;
else {
sbp . cursor = v _1 ;
if ( ! sbp . find _among ( a _0 , 3 ) ) {
sbp . cursor = v _1 ;
do {
if ( sbp . cursor >= sbp . limit ) {
sbp . cursor = I _pV ;
break ;
}
sbp . cursor ++ ;
} while ( ! sbp . in _grouping ( g _v , 97 , 251 ) ) ;
}
}
I _pV = sbp . cursor ;
sbp . cursor = v _1 ;
if ( ! habr3 ( ) ) {
I _p1 = sbp . cursor ;
2021-02-18 22:21:36 +01:00
if ( ! habr3 ( ) ) I _p2 = sbp . cursor ;
2021-02-18 21:44:01 +01:00
}
}
function r _postlude ( ) {
var among _var , v _1 ;
while ( true ) {
v _1 = sbp . cursor ;
sbp . bra = v _1 ;
among _var = sbp . find _among ( a _1 , 4 ) ;
2021-02-18 22:21:36 +01:00
if ( ! among _var ) break ;
2021-02-18 21:44:01 +01:00
sbp . ket = sbp . cursor ;
switch ( among _var ) {
case 1 :
sbp . slice _from ( "i" ) ;
break ;
case 2 :
sbp . slice _from ( "u" ) ;
break ;
case 3 :
sbp . slice _from ( "y" ) ;
break ;
case 4 :
2021-02-18 22:21:36 +01:00
if ( sbp . cursor >= sbp . limit ) return ;
2021-02-18 21:44:01 +01:00
sbp . cursor ++ ;
break ;
}
}
}
function r _RV ( ) {
return I _pV <= sbp . cursor ;
}
function r _R1 ( ) {
return I _p1 <= sbp . cursor ;
}
function r _R2 ( ) {
return I _p2 <= sbp . cursor ;
}
function r _standard _suffix ( ) {
var among _var , v _1 ;
sbp . ket = sbp . cursor ;
among _var = sbp . find _among _b ( a _4 , 43 ) ;
if ( among _var ) {
sbp . bra = sbp . cursor ;
switch ( among _var ) {
case 1 :
2021-02-18 22:21:36 +01:00
if ( ! r _R2 ( ) ) return false ;
2021-02-18 21:44:01 +01:00
sbp . slice _del ( ) ;
break ;
case 2 :
2021-02-18 22:21:36 +01:00
if ( ! r _R2 ( ) ) return false ;
2021-02-18 21:44:01 +01:00
sbp . slice _del ( ) ;
sbp . ket = sbp . cursor ;
if ( sbp . eq _s _b ( 2 , "ic" ) ) {
sbp . bra = sbp . cursor ;
2021-02-18 22:21:36 +01:00
if ( ! r _R2 ( ) ) sbp . slice _from ( "iqU" ) ;
else sbp . slice _del ( ) ;
2021-02-18 21:44:01 +01:00
}
break ;
case 3 :
2021-02-18 22:21:36 +01:00
if ( ! r _R2 ( ) ) return false ;
2021-02-18 21:44:01 +01:00
sbp . slice _from ( "log" ) ;
break ;
case 4 :
2021-02-18 22:21:36 +01:00
if ( ! r _R2 ( ) ) return false ;
2021-02-18 21:44:01 +01:00
sbp . slice _from ( "u" ) ;
break ;
case 5 :
2021-02-18 22:21:36 +01:00
if ( ! r _R2 ( ) ) return false ;
2021-02-18 21:44:01 +01:00
sbp . slice _from ( "ent" ) ;
break ;
case 6 :
2021-02-18 22:21:36 +01:00
if ( ! r _RV ( ) ) return false ;
2021-02-18 21:44:01 +01:00
sbp . slice _del ( ) ;
sbp . ket = sbp . cursor ;
among _var = sbp . find _among _b ( a _2 , 6 ) ;
if ( among _var ) {
sbp . bra = sbp . cursor ;
switch ( among _var ) {
case 1 :
if ( r _R2 ( ) ) {
sbp . slice _del ( ) ;
sbp . ket = sbp . cursor ;
if ( sbp . eq _s _b ( 2 , "at" ) ) {
sbp . bra = sbp . cursor ;
2021-02-18 22:21:36 +01:00
if ( r _R2 ( ) ) sbp . slice _del ( ) ;
2021-02-18 21:44:01 +01:00
}
}
break ;
case 2 :
2021-02-18 22:21:36 +01:00
if ( r _R2 ( ) ) sbp . slice _del ( ) ;
else if ( r _R1 ( ) ) sbp . slice _from ( "eux" ) ;
2021-02-18 21:44:01 +01:00
break ;
case 3 :
2021-02-18 22:21:36 +01:00
if ( r _R2 ( ) ) sbp . slice _del ( ) ;
2021-02-18 21:44:01 +01:00
break ;
case 4 :
2021-02-18 22:21:36 +01:00
if ( r _RV ( ) ) sbp . slice _from ( "i" ) ;
2021-02-18 21:44:01 +01:00
break ;
}
}
break ;
case 7 :
2021-02-18 22:21:36 +01:00
if ( ! r _R2 ( ) ) return false ;
2021-02-18 21:44:01 +01:00
sbp . slice _del ( ) ;
sbp . ket = sbp . cursor ;
among _var = sbp . find _among _b ( a _3 , 3 ) ;
if ( among _var ) {
sbp . bra = sbp . cursor ;
switch ( among _var ) {
case 1 :
2021-02-18 22:21:36 +01:00
if ( r _R2 ( ) ) sbp . slice _del ( ) ;
else sbp . slice _from ( "abl" ) ;
2021-02-18 21:44:01 +01:00
break ;
case 2 :
2021-02-18 22:21:36 +01:00
if ( r _R2 ( ) ) sbp . slice _del ( ) ;
else sbp . slice _from ( "iqU" ) ;
2021-02-18 21:44:01 +01:00
break ;
case 3 :
2021-02-18 22:21:36 +01:00
if ( r _R2 ( ) ) sbp . slice _del ( ) ;
2021-02-18 21:44:01 +01:00
break ;
}
}
break ;
case 8 :
2021-02-18 22:21:36 +01:00
if ( ! r _R2 ( ) ) return false ;
2021-02-18 21:44:01 +01:00
sbp . slice _del ( ) ;
sbp . ket = sbp . cursor ;
if ( sbp . eq _s _b ( 2 , "at" ) ) {
sbp . bra = sbp . cursor ;
if ( r _R2 ( ) ) {
sbp . slice _del ( ) ;
sbp . ket = sbp . cursor ;
if ( sbp . eq _s _b ( 2 , "ic" ) ) {
sbp . bra = sbp . cursor ;
2021-02-18 22:21:36 +01:00
if ( r _R2 ( ) ) sbp . slice _del ( ) ;
else sbp . slice _from ( "iqU" ) ;
2021-02-18 21:44:01 +01:00
break ;
}
}
}
break ;
case 9 :
sbp . slice _from ( "eau" ) ;
break ;
case 10 :
2021-02-18 22:21:36 +01:00
if ( ! r _R1 ( ) ) return false ;
2021-02-18 21:44:01 +01:00
sbp . slice _from ( "al" ) ;
break ;
case 11 :
2021-02-18 22:21:36 +01:00
if ( r _R2 ( ) ) sbp . slice _del ( ) ;
else if ( ! r _R1 ( ) ) return false ;
else sbp . slice _from ( "eux" ) ;
2021-02-18 21:44:01 +01:00
break ;
case 12 :
if ( ! r _R1 ( ) || ! sbp . out _grouping _b ( g _v , 97 , 251 ) )
return false ;
sbp . slice _del ( ) ;
break ;
case 13 :
2021-02-18 22:21:36 +01:00
if ( r _RV ( ) ) sbp . slice _from ( "ant" ) ;
2021-02-18 21:44:01 +01:00
return false ;
case 14 :
2021-02-18 22:21:36 +01:00
if ( r _RV ( ) ) sbp . slice _from ( "ent" ) ;
2021-02-18 21:44:01 +01:00
return false ;
case 15 :
v _1 = sbp . limit - sbp . cursor ;
if ( sbp . in _grouping _b ( g _v , 97 , 251 ) && r _RV ( ) ) {
sbp . cursor = sbp . limit - v _1 ;
sbp . slice _del ( ) ;
}
return false ;
}
return true ;
}
return false ;
}
function r _i _verb _suffix ( ) {
var among _var , v _1 ;
2021-02-18 22:21:36 +01:00
if ( sbp . cursor < I _pV ) return false ;
2021-02-18 21:44:01 +01:00
v _1 = sbp . limit _backward ;
sbp . limit _backward = I _pV ;
sbp . ket = sbp . cursor ;
among _var = sbp . find _among _b ( a _5 , 35 ) ;
if ( ! among _var ) {
sbp . limit _backward = v _1 ;
return false ;
}
sbp . bra = sbp . cursor ;
if ( among _var == 1 ) {
if ( ! sbp . out _grouping _b ( g _v , 97 , 251 ) ) {
sbp . limit _backward = v _1 ;
return false ;
}
sbp . slice _del ( ) ;
}
sbp . limit _backward = v _1 ;
return true ;
}
function r _verb _suffix ( ) {
var among _var , v _2 , v _3 ;
2021-02-18 22:21:36 +01:00
if ( sbp . cursor < I _pV ) return false ;
2021-02-18 21:44:01 +01:00
v _2 = sbp . limit _backward ;
sbp . limit _backward = I _pV ;
sbp . ket = sbp . cursor ;
among _var = sbp . find _among _b ( a _6 , 38 ) ;
if ( ! among _var ) {
sbp . limit _backward = v _2 ;
return false ;
}
sbp . bra = sbp . cursor ;
switch ( among _var ) {
case 1 :
if ( ! r _R2 ( ) ) {
sbp . limit _backward = v _2 ;
return false ;
}
sbp . slice _del ( ) ;
break ;
case 2 :
sbp . slice _del ( ) ;
break ;
case 3 :
sbp . slice _del ( ) ;
v _3 = sbp . limit - sbp . cursor ;
sbp . ket = sbp . cursor ;
if ( sbp . eq _s _b ( 1 , "e" ) ) {
sbp . bra = sbp . cursor ;
sbp . slice _del ( ) ;
2021-02-18 22:21:36 +01:00
} else sbp . cursor = sbp . limit - v _3 ;
2021-02-18 21:44:01 +01:00
break ;
}
sbp . limit _backward = v _2 ;
return true ;
}
function r _residual _suffix ( ) {
2021-02-18 22:21:36 +01:00
var among _var ,
v _1 = sbp . limit - sbp . cursor ,
v _2 ,
v _4 ,
v _5 ;
2021-02-18 21:44:01 +01:00
sbp . ket = sbp . cursor ;
if ( sbp . eq _s _b ( 1 , "s" ) ) {
sbp . bra = sbp . cursor ;
v _2 = sbp . limit - sbp . cursor ;
if ( sbp . out _grouping _b ( g _keep _with _s , 97 , 232 ) ) {
sbp . cursor = sbp . limit - v _2 ;
sbp . slice _del ( ) ;
2021-02-18 22:21:36 +01:00
} else sbp . cursor = sbp . limit - v _1 ;
} else sbp . cursor = sbp . limit - v _1 ;
2021-02-18 21:44:01 +01:00
if ( sbp . cursor >= I _pV ) {
v _4 = sbp . limit _backward ;
sbp . limit _backward = I _pV ;
sbp . ket = sbp . cursor ;
among _var = sbp . find _among _b ( a _7 , 7 ) ;
if ( among _var ) {
sbp . bra = sbp . cursor ;
switch ( among _var ) {
case 1 :
if ( r _R2 ( ) ) {
v _5 = sbp . limit - sbp . cursor ;
if ( ! sbp . eq _s _b ( 1 , "s" ) ) {
sbp . cursor = sbp . limit - v _5 ;
2021-02-18 22:21:36 +01:00
if ( ! sbp . eq _s _b ( 1 , "t" ) ) break ;
2021-02-18 21:44:01 +01:00
}
sbp . slice _del ( ) ;
}
break ;
case 2 :
sbp . slice _from ( "i" ) ;
break ;
case 3 :
sbp . slice _del ( ) ;
break ;
case 4 :
2021-02-18 22:21:36 +01:00
if ( sbp . eq _s _b ( 2 , "gu" ) ) sbp . slice _del ( ) ;
2021-02-18 21:44:01 +01:00
break ;
}
}
sbp . limit _backward = v _4 ;
}
}
function r _un _double ( ) {
var v _1 = sbp . limit - sbp . cursor ;
if ( sbp . find _among _b ( a _8 , 5 ) ) {
sbp . cursor = sbp . limit - v _1 ;
sbp . ket = sbp . cursor ;
if ( sbp . cursor > sbp . limit _backward ) {
sbp . cursor -- ;
sbp . bra = sbp . cursor ;
sbp . slice _del ( ) ;
}
}
}
function r _un _accent ( ) {
2021-02-18 22:21:36 +01:00
var v _1 ,
v _2 = 1 ;
while ( sbp . out _grouping _b ( g _v , 97 , 251 ) ) v _2 -- ;
2021-02-18 21:44:01 +01:00
if ( v _2 <= 0 ) {
sbp . ket = sbp . cursor ;
v _1 = sbp . limit - sbp . cursor ;
if ( ! sbp . eq _s _b ( 1 , "\u00E9" ) ) {
sbp . cursor = sbp . limit - v _1 ;
2021-02-18 22:21:36 +01:00
if ( ! sbp . eq _s _b ( 1 , "\u00E8" ) ) return ;
2021-02-18 21:44:01 +01:00
}
sbp . bra = sbp . cursor ;
sbp . slice _from ( "e" ) ;
}
}
function habr5 ( ) {
if ( ! r _standard _suffix ( ) ) {
sbp . cursor = sbp . limit ;
if ( ! r _i _verb _suffix ( ) ) {
sbp . cursor = sbp . limit ;
if ( ! r _verb _suffix ( ) ) {
sbp . cursor = sbp . limit ;
r _residual _suffix ( ) ;
return ;
}
}
}
sbp . cursor = sbp . limit ;
sbp . ket = sbp . cursor ;
if ( sbp . eq _s _b ( 1 , "Y" ) ) {
sbp . bra = sbp . cursor ;
sbp . slice _from ( "i" ) ;
} else {
sbp . cursor = sbp . limit ;
if ( sbp . eq _s _b ( 1 , "\u00E7" ) ) {
sbp . bra = sbp . cursor ;
sbp . slice _from ( "c" ) ;
}
}
}
2021-02-18 22:21:36 +01:00
this . stem = function ( ) {
2021-02-18 21:44:01 +01:00
var v _1 = sbp . cursor ;
r _prelude ( ) ;
sbp . cursor = v _1 ;
r _mark _regions ( ) ;
sbp . limit _backward = v _1 ;
sbp . cursor = sbp . limit ;
habr5 ( ) ;
sbp . cursor = sbp . limit ;
r _un _double ( ) ;
sbp . cursor = sbp . limit ;
r _un _accent ( ) ;
sbp . cursor = sbp . limit _backward ;
r _postlude ( ) ;
return true ;
2021-02-18 22:21:36 +01:00
} ;
} ) ( ) ;
2021-02-18 21:44:01 +01:00
/* and return a function that stems a word for the current locale */
2021-02-18 22:21:36 +01:00
return function ( token ) {
2021-02-18 21:44:01 +01:00
// for lunr version 2
if ( typeof token . update === "function" ) {
2021-02-18 22:21:36 +01:00
return token . update ( function ( word ) {
2021-02-18 21:44:01 +01:00
st . setCurrent ( word ) ;
st . stem ( ) ;
return st . getCurrent ( ) ;
2021-02-18 22:21:36 +01:00
} ) ;
} else {
// for lunr version <= 1
2021-02-18 21:44:01 +01:00
st . setCurrent ( token ) ;
st . stem ( ) ;
return st . getCurrent ( ) ;
}
2021-02-18 22:21:36 +01:00
} ;
2021-02-18 21:44:01 +01:00
} ) ( ) ;
2021-02-18 22:21:36 +01:00
lunr . Pipeline . registerFunction ( lunr . fr . stemmer , "stemmer-fr" ) ;
2021-02-18 21:44:01 +01:00
2021-02-18 22:21:36 +01:00
lunr . fr . stopWordFilter = lunr . generateStopWordFilter (
"ai aie aient aies ait as au aura aurai auraient aurais aurait auras aurez auriez aurions aurons auront aux avaient avais avait avec avez aviez avions avons ayant ayez ayons c ce ceci celà ces cet cette d dans de des du elle en es est et eu eue eues eurent eus eusse eussent eusses eussiez eussions eut eux eûmes eût eûtes furent fus fusse fussent fusses fussiez fussions fut fûmes fût fûtes ici il ils j je l la le les leur leurs lui m ma mais me mes moi mon même n ne nos notre nous on ont ou par pas pour qu que quel quelle quelles quels qui s sa sans se sera serai seraient serais serait seras serez seriez serions serons seront ses soi soient sois soit sommes son sont soyez soyons suis sur t ta te tes toi ton tu un une vos votre vous y à étaient étais était étant étiez étions été étée étées étés êtes" . split (
" "
)
) ;
2021-02-18 21:44:01 +01:00
2021-02-18 22:21:36 +01:00
lunr . Pipeline . registerFunction ( lunr . fr . stopWordFilter , "stopWordFilter-fr" ) ;
2021-02-18 21:44:01 +01:00
} ;
2021-02-18 22:21:36 +01:00
} ) ;