tef-innu

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

commit 5c007fa19093e90c21c2a0dc5241cd9fa6090179
parent 6766bd41b4c0068194a03ff77335ccb5906b9f77
Auteur: Loïc Daignault-Pichette <loic@asteride.xyz>
Date:   Wed, 15 Oct 2025 15:29:31 -0400

[sty] Faire la réalisation en deux temps

Il m’a semblé que séparer la phase de réalisation et celle d’altération
des morphèmes mène à un programme plus lisible. Aussi, cette façon de
faire permet de faire les altérations aux l’endroits appropriés
puisqu’il n’est plus besoin d’attendre qu’un morphème soit réalisé.

Diffstat:
Mverbes/verbes.xfst | 111++++++++++++++++++++++++++++++++++++++++++-------------------------------------
1 fichier modifié, 59 insertions(+), 52 suppressions(-)

diff --git a/verbes/verbes.xfst b/verbes/verbes.xfst @@ -143,7 +143,7 @@ define MNbLc ["+2Pl"|"+1Pl"]; # Nombre local define MNbNLc ["+NtrPl"|"+ObvSg"|"+ObvPl"| # Nombre non local "+NtrPlPass"|"+ObvSgPass"|"+ObvPlPass"]; -define Morphemes [MPPers|MThDec|MThDir|MObv|MSPers|MNbLc|MNbNLc]; +define Mrphm ["Base"|MPPers|MThDec|MThDir|MObv|MSPers|MNbLc|MNbNLc]; # Les cases seront substituées par le nom de morphème approprié. Elles sont # placées de chaque côté de la base. @@ -220,7 +220,7 @@ define CombMorphemes CombTraits .o. ["+ObvSg" -> "+ObvSgPass" || _ $["+Pass"]] .o. ["+ObvPl" -> "+ObvPlPass" || _ $["+Pass"]] # Idiosyncrasies - .o. [[..] -> "+ThMxt" "+NLc" || "+LcPass" _ $["+2" "+Pl"] $["+Obv"]] + .o. [[..] -> "+2Pl" || "+LcPass" _ $["+2" "+Pl"] $["+Obv"]] .o. ["+LcPass" -> [] || _ $["+Est"] $["+Obv"] $["+2"|"+1"] $["+Sg"]] .o. [[Cases|TGrm|">"] -> []]; @@ -233,62 +233,69 @@ undefine CombTraits # # Documentation: doc/realisation.txt -define Verbes CombMorphemes - # Altérations de la base - .o. [{sh} -> {t} || _ "Base" ~$["+ThLc"] .#.] - .o. [[..] -> {a} || _ "Base" ["+ThLcI"|"+ThI"] $["+u"]] - .o. [{u} -> {a} || _ "Base" ["+ThLcI"|"+ThI"] $["+ua"]] - # Préfixes de personne - .o. ["1+" -> {nit} "1+" , "2+" -> {tshit} "2+"] - .o. [{it} -> [] || _ ["1+"|"2+"] [u|û]] - .o. [ {t} -> [] || _ ["1+"|"2+"] \Voy] - .o. [MPPers -> []] +define RealMorphemes CombMorphemes + # Préfxes de personnes + .o. ["2+" -> {tshit} "2+"] + .o. ["1+" -> {nit} "1+"] # Thème de décalage .o. ["+ThDec" -> {im} "+ThDec"] - .o. [{i} -> [] || Voy "Base" _ {m} "+ThDec"] - .o. [MThDec -> []] - # Thèmes de direction - .o. ["+ThLc" -> {i} "+ThLc" , "+ThLcI" -> {iti} "+ThLcI" , - "+ThMxt" -> {a} "+ThMxt" , "+ThI" -> {ikᵘ} "+ThI" , - "+ThNLc" -> {e} "+ThNLc" , "+ThAmu" -> {amᵘ} "+ThAmu"] - .o. [{i} -> [] || [n|ń] "Base" _ "+ThLc"] - .o. [[i|a] -> [] || - Voy "Base" _ - ["+ThLc"|{ti} "+ThLcI"|{kᵘ} ["+ThI"]|{mᵘ} "+ThAmu"]] - .o. [{ᵘ} -> [] || _ "+ThAmu" "+3Obv"] - .o. [{e} -> [] || [{ei}|{ai}] "Base" _ "+ThNLc"] - .o. [MThDir -> []] - # Suffixe d’obviatif + # Thème de direction + .o. ["+ThLc" -> {i} "+ThLc"] + .o. ["+ThLcI" -> {iti} "+ThLcI"] + .o. ["+ThMxt" -> {a} "+ThMxt"] + .o. ["+ThI" -> {ikᵘ} "+ThI"] + .o. ["+ThNLc" -> {e} "+ThNLc"] + .o. ["+ThAmu" -> {amᵘ} "+ThAmu"] + # Suffixe d’obviation .o. ["+3Obv" -> {iń} "+3Obv"] - .o. [{i} -> [] || [Voy|n|ń] ("Base") _ {ń} "+3Obv" $[TVrbe - "+VTI"]] - .o. [MObv -> []] # Suffixes de personne - .o. ["+Lc" -> {n} "+Lc" , "+NLc" -> {u} "+NLc"] - .o. ["+LcPass" -> {iti} "+LcPass" , "+NLcPass" -> {ipan} "+NLcPass"] - .o. [{n} -> [] || [n|ń] "Base" _ "+Lc" TLex] - .o. [[VoyCourte|û] -> [] || _ "Base" {u} "+NLc"] - .o. [{u} -> [] || {n} "Base" _ "+NLc" $[TVrbe - "+VAI"]] - .o. [{i} -> [] || [Voy - [u|û]] ("Base") _ {pan} "+NLcPass"] - .o. [{i} -> [] || Voy ("Base") _ {ti} "+LcPass"] - .o. [{i} -> [] || _ "+LcPass" {a}] - .o. [MSPers -> []] + .o. ["+Lc" -> {n} "+Lc"] + .o. ["+LcPass" -> {iti} "+LcPass"] + .o. ["+NLc" -> {u} "+NLc"] + .o. ["+NLcPass" -> {ipan} "+NLcPass"] # Nombre local - .o. ["+2Pl" -> {au} "+2Pl" , "+1Pl" -> {an} "+1Pl"] - .o. [{i} -> [] || _ [{au} "+2Pl"|{an} "+1Pl"]] - .o. [MNbLc -> []] + .o. ["+2Pl" -> {au} "+2Pl"] + .o. ["+1Pl" -> {an} "+1Pl"] # Nombre non local .o. ["+NtrPl" -> {a} "+NtrPl" , - "+NtrPlPass" -> {i} "+NtrPlPass" || _ $["+VII"]] + "+NtrPlPass" -> {a} "+NtrPlPass" || _ $["+VII"]] .o. ["+NtrPl" -> {at} "+NtrPl" , "+NtrPlPass" -> {at} "+NtrPlPass" || _ ~$["+VII"] .#.] .o. ["+ObvSg" -> {a} "+ObvSg" , - "+ObvSgPass" -> {i} "+ObvSgPass" || _ ~$["+VII"] .#.] - .o. ["+ObvPl" -> {a} "+ObvPl" , "+ObvPlPass" -> {i} "+ObvPlPass"] - .o. [{i} -> {a} || \[n|ń] Morphemes* _ MNbNLc] - .o. [MNbNLc -> []] - .o. ["Base" -> []] - # Retirer les traits lexicaux - .o. [TLex -> []]; + "+ObvSgPass" -> {a} "+ObvSgPass" || _ ~$["+VII"] .#.] + .o. ["+ObvPl" -> {a} "+ObvPl" , "+ObvPlPass" -> {a} "+ObvPlPass"]; + +define AltMorphemes RealMorphemes + # Base + .o. [{sh} -> {t} || _ "Base" ~$["+ThLc"] .#.] + .o. [[..] -> {a} || _ "Base" \Mrphm* ["+ThLcI"|"+ThI"] $["+u"]] + .o. [{u} -> {a} || _ "Base" \Mrphm* ["+ThLcI"|"+ThI"] $["+ua"]] + .o. [{ᵘ} -> [] || _ "+ThAmu" Mrphm* \Mrphm* "+3Obv"] + # Préfixes de personne + .o. [{it} -> [] || _ ["2+"|"1+"] [u|û]] + .o. [ {t} -> [] || _ ["2+"|"1+"] \Voy] + # Thème de décalage + .o. [{i} -> [] || Voy Mrphm* _ \Mrphm* "+ThDec"] + # Thème de direction + .o. [{i} -> [] || [n|ń] Mrphm* _ \Mrphm* "+ThLc"] + .o. [[i|a] -> [] || Voy Mrphm* _ + \Mrphm* ["+ThLc"|"+ThLcI"|"+ThI"|"+ThAmu"]] + .o. [{e} -> [] || [{ei}|{ai}] Mrphm* _ \Mrphm* "+ThNLc"] + # Suffixe d’obviatif + .o. [{i} -> [] || [Voy|n|ń] Mrphm* _ \Mrphm* "+3Obv" $[TVrbe - "+VTI"]] + # Suffixes de personne + .o. [{n} -> [] || [n|ń] Mrphm* _ \Mrphm* "+Lc" TLex] + .o. [[VoyCourte|û] -> [] || _ "Base" \Mrphm* "+NLc"] + .o. [{u} -> [] || {n} Mrphm* _ \Mrphm *"+NLc" $[TVrbe - "+VAI"]] + .o. [{i} -> [] || [Voy - [u|û]] Mrphm* _ \Mrphm* "+NLcPass"] + .o. [{i} -> [] || Voy Mrphm* _ \Mrphm* "+LcPass"] + # Suffixes de nombre + .o. [{i} -> [] || _ Mrphm* \Mrphm* ["+2Pl"|"+1Pl"]] + .o. [{a} -> {i} || [n|ń] Mrphm* _ + \Mrphm* ["+ObvSgPass"|"+ObvPlPass"|"+NtrPlPass" ?* "+VII"]] + # Retirer quelques traits + .o. [TLex -> []] + .o. [Mrphm -> []]; undefine CombMorphemes @@ -297,12 +304,12 @@ undefine CombMorphemes # ----------- define Ortho [[] <- TAcc] - .o. Verbes + .o. AltMorphemes .o. [ᵘ -> [] || _ u] .o. [â -> a ,, î -> i ,, û -> u] .o. [ᵘ -> u || _ ?]; -undefine Verbes +undefine AltMorphemes # ------------------ # FORMES DE CITATION @@ -321,8 +328,8 @@ define FC [[[] <- TVrbe || _ TVrbe] .o. [[TraitsCitation .o. Ortho] TVrbe]].i ?*; -define Final FC .o. Ortho; -push Final +define Verbes FC .o. Ortho; +push Verbes # --------- # NETTOYAGE