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:
| M | verbes/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