commit 6046ad66bf6541fa20d349c16a9c2975694d8e89
parent 5973abcfff84a099e961962728ed0603f1691ac4
Auteur: Loïc Daignault-Pichette <loic@asteride.xyz>
Date: Thu, 30 Apr 2026 10:07:33 -0400
[sty] Refactoriser les règles morphophonologiques
Diffstat:
2 fichiers modifiés, 29 insertions(+), 9 suppressions(-)
diff --git a/tef/morphemes.var b/tef/morphemes.var
@@ -31,3 +31,21 @@ define MSN ["<PlA>"|"<ObvI>"|"<PlObv>"]; # Suffixes nominaux
define Mrphm [MBase|MPPers|MThDec|MThDir|MObv|
MSPers|MNbLc|MTir|MNbNLc|MFus|MSN];
+
+# -------------------------------
+# COMPORTEMENT MORPHOPHONOLOGIQUE
+# -------------------------------
+
+# Cause la chute des morphèmes non-locaux.
+define CMCNLc ["<IndirPrésLc>"|"<IndirPrésNLc>"|"<IndirPassLc>"|
+ "<IndirPassNLc>"|"<DubPrésLc>"|"<DubPrésNLc>"|"<DubPassLc>"|
+ "<DubPassNLc>"];
+
+# Chute du i suivant un i.
+define CMCISI ["<2SgConj>"|"<1SgConj>"|"<1PlExConj>"|"<1PlInConj>"|
+ "<2PlConj>"];
+
+# Chute du a/i suivant une voyelle (sauf u).
+define CMCAISVU ["<IndirPrésLc>"|"<IndirPassLc>"|"<DubPrésLc>"|
+ "<IndirPrésNLc>"|"<IndirPassNLc>"|"<DubPrésNLc>"|
+ "<DubPassNLc>"];
diff --git a/tef/verbes/realisation.xfst b/tef/verbes/realisation.xfst
@@ -79,33 +79,35 @@ define AltMorphemes RealMorphemes
\Mrphm* ["<ThLc>"|"<ThLcI>"|"<ThI>"|"<ThAmu>"]]
.o. [{e} -> [] || [{ei}|{ai}] Mrphm* _ \Mrphm* "<ThNLc>"]
# Suffixe d’obviatif
- .o. [{i} -> [] || [Voy|n|ń] Mrphm* _ \Mrphm* "<3Obv>" $[TVrbe - "+VTI"]]
+ .o. [{i} -> [] || [Voy|n|ń] Mrphm* _
+ \Mrphm* "<3Obv>" $[TVrbe - "+VTI"]]
# Suffixes de personne
- .o. [\Mrphm+ -> [] || _ "<NLc>" Mrphm* \Mrphm* ["<IndirPrésLc>"|"<IndirPrésNLc>"|"<IndirPassLc>"|"<IndirPassNLc>"|"<DubPrésLc>"|"<DubPrésNLc>"|"<DubPassLc>"|"<DubPassNLc>"]]
+ .o. [\Mrphm+ -> [] || _ "<NLc>" Mrphm* \Mrphm* CMCNLc]
.o. [{n} -> [] || [n|ń] Mrphm* _ \Mrphm* "<Lc>" TLex]
.o. [[VoyCourte|û] -> [] || _ MBase \Mrphm+ "<NLc>"]
.o. [{u} -> [] || {n} Mrphm* _ \Mrphm* "<NLc>" $[TVrbe - "+VAI"]]
.o. [{n} -> [] || _ MBase ?* "<NLcConj>" ?* "+Bun"]
.o. [{i} -> [] || [VoyLongue|i|u] Mrphm* _ \Mrphm* "<NLcConj>" ,,
{i} -> [] || {n} Mrphm* _ \Mrphm* "<NLcConj>" $["+VII"]]
- .o. [{n} -> [] || _ Mrphm+ {t} $["+VII"] ,, {t} -> {k} || {n} Mrphm+ _ $["+VII"]]
+ .o. [{n} -> [] || _ Mrphm+ {t} $["+VII"] ,, {t} -> {k} ||
+ {n} Mrphm+ _ $["+VII"]]
.o. [{i} -> [] || [Voy - [u|û]] Mrphm* _ \Mrphm* "<NLcPass>"]
.o. [{i} -> [] || Voy Mrphm* _ \Mrphm* "<LcPass>"]
- .o. [{i} -> [] || [i|î] Mrphm* _ \Mrphm*
- ["<2SgConj>"|"<1SgConj>"|"<1PlExConj>"|"<1PlInConj>"|"<2PlConj>"]]
+ .o. [{i} -> [] || [i|î] Mrphm* _ \Mrphm* CMCISI]
# Tiroir
- .o. [{a} -> [] || [Voy-[u|û]] Mrphm* _ \Mrphm* ["<IndirPrésLc>"|"<IndirPassLc>"|"<DubPrésLc>"]]
+ .o. [[a|i] -> [] || [Voy-[u|û]] Mrphm* _ \Mrphm* CMCAISVU]
.o. [{a} -> [] || {a} Mrphm* _ \Mrphm* ["<DubPassLc>"]]
- .o. [{i} -> [] || [Voy-[u|û]] Mrphm* _ \Mrphm* ["<IndirPrésNLc>"|"<IndirPassNLc>"|"<DubPrésNLc>"|"<DubPassNLc>"]]
.o. [{i} -> [] || _ Mrphm* Voy \Mrphm* "<DubPassLc>"]
- .o. [{a} -> {i} || {ń} Mrphm* _ \Mrphm* ["<IndirPrésLc>"|"<IndirPassLc>"|"<DubPrésLc>"]]
+ .o. [{a} -> {i} || {ń} Mrphm* _ \Mrphm*
+ ["<IndirPrésLc>"|"<IndirPassLc>"|"<DubPrésLc>"]]
.o. [{n} -> [] || _ ["<DubPrésLc>"|"<DubPrésNLc>"] [Mrphm|Traits]* .#.]
# Suffixes de nombre
.o. [{i} -> [] || _ Mrphm* \Mrphm* ["<2Pl>"|"<1Pl>"]]
.o. [{a} -> {i} ||
[n|ń] Mrphm* _ \Mrphm*
["<ObvSgPass>"|"<ObvPlPass>"|"<NtrPlPass>" ?* "+VII"] ,
- [n|ń] ["<DubPrésNLc>"|"<DubPrésLc>"] Mrphm* _ ["<ObvSg>"|"<ObvPl>"|"<NtrPl>"]]
+ [n|ń] ["<DubPrésNLc>"|"<DubPrésLc>"] Mrphm* _
+ ["<ObvSg>"|"<ObvPl>"|"<NtrPl>"]]
# Morphèmes fusionnels
.o. [{i} -> [] || Voy Mrphm* _ \Mrphm* "<NLcPlConj>"];