tef-innu

Transducteur à états finis de l’innu
git clone git://git.asteride.xyz/tef-innu.git
Journaux | Fichiers | Références

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:
Mtef/morphemes.var | 18++++++++++++++++++
Mtef/verbes/realisation.xfst | 20+++++++++++---------
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>"];