| 
259
260
261
262
263
264
265
266
267
268
269
270
271272
273
274
275
276
277
278
279
280
281 | 
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
 | 
-
+
-
-
-
 | 
            }
        }
    }
    // search sPattern
    return lMorph.some(sMorph  =>  (sMorph.search(sPattern) !== -1));
}
function g_morph0 (oToken, sPattern, sNegPattern="", nLeft=null, nRight=nullfunction g_morph0 (oToken, sPattern, sNegPattern="", nLeft=null, nRight=null) {
    // analyse a token, return True if <sNegPattern> not in morphologies and <sPattern> in morphologies
    let lMorph;
    if (nLeft !== null) {
        let sValue = (nRight !== null) ? oToken["sValue"].slice(nLeft, nRight) : oToken["sValue"].slice(nLeft);
        lMorph = gc_engine.oSpellChecker.getMorph(sValue);, bMemorizeMorph=true) {} else {
        lMorph = gc_engine.oSpellChecker.getMorph(oToken["sValue"]);
    }
    if (lMorph.length == 0) {
        return false;
    }
    // check negative condition        if (bMemorizeMorph) {            oToken["lMorph"] = lMorph;        } |