352
353
354
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
|
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
|
-
-
-
-
+
-
-
-
-
-
-
-
-
+
-
-
+
-
-
+
-
|
let c_m = (document.getElementById("up_v_m").checked) ? "m" : "_";
let c_ae = (document.getElementById("up_v_ae").checked) ? "e" : "_";
let c_aa = (document.getElementById("up_v_aa").checked) ? "a" : "_";
let sVerbTag = c_i + c_t + c_n + c_p + c_m + c_ae + c_aa;
if (!sVerbTag.endsWith("__") && !sVerbTag.startsWith("____")) {
let sVerbPattern = document.getElementById("verb_pattern").value.trim();
if (sVerbPattern.length == 0) {
if (!sLemma.endsWith("er") && !sLemma.endsWith("ir")) {
break;
}
// tables de conjugaison du 1er et du 2e groupe
// utilisation du générateur de conjugaison
let cGroup = (sLemma.endsWith("er")) ? "1" : "2";
for (let [nCut, sAdd, sFlexTags, sPattern] of this._getConjRules(sLemma)) {
if (!sPattern || RegExp(sPattern).test(sLemma)) {
this.addFlexion(sLemma.slice(0,-nCut)+sAdd, sLemma, ":V" + cGroup + "_" + sVerbTag + sFlexTags);
}
}
// participes passés
let bPpasVar = (document.getElementById("up_partpas").checked) ? "var" : "invar";
let bVarPpas = document.getElementById("up_partpas").checked;
let lPpasRules = (sLemma.endsWith("er")) ? oConj["V1_ppas"][bPpasVar] : oConj["V2_ppas"][bPpasVar];
for (let [nCut, sAdd, sFlexTags, sPattern] of lPpasRules) {
for (let [sFlexion, sFlexTags] of conj_generator.conjugate(sLemma, sVerbTag, bVarPpas)) {
if (!sPattern || RegExp(sPattern).test(sLemma)) {
this.addFlexion(sLemma.slice(0,-nCut)+sAdd, sLemma, ":V" + cGroup + "_" + sVerbTag + sFlexTags);
this.addFlexion(sFlexion, sLemma, sFlexTags);
}
}
} else {
// copie du motif d’un autre verbe : utilisation du conjugueur
if (conj.isVerb(sVerbPattern)) {
let oVerb = new Verb(sLemma, sVerbPattern);
for (let [sTag1, dFlex] of oVerb.dConj.entries()) {
if (sTag1 !== ":Q") {
|
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
|
429
430
431
432
433
434
435
436
437
438
439
440
441
442
|
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
|
this.show();
}
catch (e) {
showError(e);
}
},
_getConjRules: function (sVerb) {
if (sVerb.endsWith("ir")) {
// deuxième groupe
return oConj["V2"];
} else if (sVerb.endsWith("er")) {
// premier groupe, conjugaison en fonction de la terminaison du lemme
// 5 lettres
if (sVerb.slice(-5) in oConj["V1"]) {
return oConj["V1"][sVerb.slice(-5)];
}
// 4 lettres
if (sVerb.slice(-4) in oConj["V1"]) {
if (sVerb.endsWith("eler") || sVerb.endsWith("eter")) {
return oConj["V1"][sVerb.slice(-4)]["1"];
}
return oConj["V1"][sVerb.slice(-4)];
}
// 3 lettres
if (sVerb.slice(-3) in oConj["V1"]) {
return oConj["V1"][sVerb.slice(-3)];
}
return oConj["V1"]["er"];
} else {
// troisième groupe
return [ [0, "", ":Y/*", false] ];
}
},
getRadioValue: function (sName) {
if (document.querySelector('input[name="' + sName + '"]:checked')) {
return document.querySelector('input[name="' + sName + '"]:checked').value;
}
return null;
},
|