Grammalecte  Diff

Differences From Artifact [0e3b56e9e5]:

To Artifact [6057617be0]:


104
105
106
107
108
109
110
111


112
113
114
115
116
117
118
104
105
106
107
108
109
110

111
112
113
114
115
116
117
118
119







-
+
+







    [';S', " : symbole (unité de mesure)"],

    ['/*', ""],
    ['/C', " {classique}"],
    ['/M', ""],
    ['/R', " {réforme}"],
    ['/A', ""],
    ['/X', ""]
    ['/X', ""],
    ['/L', " {latin}"]
]);

const _dPFX = new Map([
    ['d', "(de), déterminant épicène invariable"],
    ['l', "(le/la), déterminant masculin/féminin singulier"],
    ['j', "(je), pronom personnel sujet, 1ʳᵉ pers., épicène singulier"],
    ['m', "(me), pronom personnel objet, 1ʳᵉ pers., épicène singulier"],
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371

372

373
374
375
376
377


378
379
380


381
382
383
384



385
386
387


388
389
390
391
392
393
394
395
396









397
398
399
400
401
402
403
404
405
406

407
408
409
410
411
412
413

414
415
416
417
418
419
420
356
357
358
359
360
361
362

363
364
365
366
367
368
369
370
371
372

373





374
375
376


377
378




379
380
381
382


383
384









385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402

403
404
405
406
407
408
409

410
411
412
413
414
415
416
417







-









+
-
+
-
-
-
-
-
+
+

-
-
+
+
-
-
-
-
+
+
+

-
-
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+









-
+






-
+







    }

    getListOfTokensReduc (sText, bInfo = true) {
        let aTokenList = this.getListOfTokens(sText.replace("'", "’").trim(), false);
        let iKey = 0;
        let aElem = [];
        let aRes = null;
        let isType = {'WORD':1,'ELPFX':1};
        do {
            let oToken = aTokenList[iKey]
            let aLocution = this.oLocution[this._unifyStr(oToken.sValue)];
            let bStop = false;
            let bOk = false;
            let iKeyTree = iKey + 1;
            let sTokenTmpKey = '';
            let aTokenTempList = [];
            aTokenTempList.push(oToken);
            if ( oToken.sType == "WORD" || oToken.sType == "ELPFX" ){
            while (!bStop && typeof aLocution !== "undefined") {
                while (!bStop && typeof aLocution !== "undefined") {
                if (iKeyTree > aTokenList.length){
                    break;
                }
                let sTokenNextType = '';
                let oTokenNext = aTokenList[iKeyTree];
                    let oTokenNext = aTokenList[iKeyTree];
                    iKeyTree++;

                if ( typeof oTokenNext !== "undefined" ) {
                    aLocution = aLocution[this._unifyStr(oTokenNext.sValue)];
                    if ( typeof oTokenNext !== "undefined" ) {
                        aLocution = aLocution[this._unifyStr(oTokenNext.sValue)];
                    sTokenNextType = oTokenNext.sType;
                } else {
                    aLocution = "undefined";
                }
                    } else {
                        aLocution = "undefined";
                    }

                if ( sTokenNextType in isType && typeof aLocution !== "undefined") {
                    sTokenTmpKey = Object.keys(aLocution)[0];
                    if ( typeof aLocution !== "undefined" && iKeyTree <= aTokenList.length) {
                        sTokenTmpKey = Object.keys(aLocution)[0];
                    iKeyTree++;
                    aTokenTempList.push(oTokenNext);
                } else if ( !(sTokenNextType in isType) || typeof aLocution == "undefined") {
                    bStop = true;
                    if ( sTokenTmpKey.substring(0, 1) == ':' ) {
                        bOk = true;
                    }
                }
            };
                        aTokenTempList.push(oTokenNext);
                    } else if ( typeof aLocution == "undefined" || iKeyTree > aTokenList.length) {
                        bStop = true;
                        if ( sTokenTmpKey.substring(0, 1) == ':' ) {
                            bOk = true;
                        }
                    }
                };
            }

            if ( bOk ){
                let sWord = '';
                for (let oTokenWord of aTokenTempList) {
                    sWord += oTokenWord.sValue+' ';
                }
                iKey = iKey + aTokenTempList.length-1;
                let oTokenLocution = {
                    'nEnd':aTokenTempList[aTokenTempList.length-1].nEnd,
                    'niKeyTree':aTokenTempList[0].niKeyTree,
                    'nStart':aTokenTempList[0].nStart,
                    'sType':"LOC",
                    'sValue':sWord.replace('’ ','’').trim()
                };
                if (bInfo) {
                    let aFormatedTag = [];
                    for (let sTagMulti of sTokenTmpKey.split('|') ){
                        aFormatedTag.push( this._formatTags(sTagMulti).replace(/(\(él.\))/g,'').trim() );
                        aFormatedTag.push( this._formatTags(sTagMulti).replace(/( \(él.\))/g,'') );
                    }
                    aElem.push({
                        sType: oTokenLocution.sType,
                        sValue: oTokenLocution.sValue,
                        aLabel: aFormatedTag
                    });
                } else {