tef-innu

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

lexical.xfst (3648B)


      1 # ==============
      2 # MODULE LEXICAL
      3 # ==============
      4 #
      5 # Former le lexique.
      6 
      7 load defined tf/orthographe.def
      8 load defined tf/traits.def
      9 
     10 # Charger et terminer de construire le lexique non-productif.
     11 define NProductif [[@stxt"tf/verbes/lexique.lexs" TDial]
     12 	 # Les verbes en « +Run » n’existent que dans l’ouest. Leurs homologues
     13 	 # en « +Ru » n’existent que dans l’est. Ces paires de verbes portent
     14 	 # toutes « +Run » dans le lexique.
     15 	.o. [[..] -> ["+e"|"+o"] || _ "+Rûn"]
     16 	.o. [[..] -> "+Rû" || "+e" ?* _ ?* "+Rûn"]
     17 	.o. [n -> [] || _ \LettreOrtho* "+e" ?* "+Rûn"]
     18 	.o. ["+Rûn" -> [] || "+Rû" ?* _]].l;
     19 
     20 # Créer le lexique productif.
     21 # Les traits accidentels sont inutils aux formes productives.
     22 define Productif [LettreOrtho-ᵘ]* LettreOrtho "+Prod"
     23 	(TId) TRacineV TVrbe TDial;
     24 
     25 # Fusionner les lexiques et les rendre cohérents.
     26 define Lexique [NProductif|Productif]
     27 	# Certaines racines sont spécifiques à l’Est.
     28 	- [$["+e"] & ~$["+Est"]]
     29 	# Certaines racines sont spécifiques à l’Ouest.
     30 	- [$["+o"] & ~$["+Ouest"]]
     31 
     32 	# Contraindres les traits de racine selon la classe de verbes
     33 	- [$["+Râ"]   & ~$["+VII"|"+VAI"              ]]
     34 	- [$["+Rau"]  & ~$[       "+VAI"              ]]
     35 	- [$["+Re"]   & ~$["+VII"|"+VAI"              ]]
     36 	- [$["+Ri"]   & ~$["+VII"|"+VAI"|       "+VTA"]]
     37 	- [$["+Rî"]   & ~$["+VII"|"+VAI"              ]]
     38 	- [$["+Rm"]   & ~$[                     "+VTA"]]
     39 	- [$["+Rn"]   & ~$["+VII"|"+VAI"|       "+VTA"]]
     40 	- [$["+Rń"]   & ~$["+VII"                     ]]
     41 	- [$["+Rshu"] & ~$[                     "+VTA"]]
     42 	- [$["+Rsh"]  & ~$[                     "+VTA"]]
     43 	- [$["+Ru"]   & ~$["+VII"|"+VAI"|       "+VTA"]]
     44 	- [$["+Rû"]   & ~$["+VII"|"+VAI"              ]]
     45 	- [$["+Rua"]  & ~$[                     "+VTA"]]
     46 	- [$["+Rûn"]  & ~$["+VII"                     ]]
     47 	- [$["+RC"]   & ~$[              "+VTI"       ]]
     48 	- [$["+RD"]   & ~$[              "+VTI"|"+VTA"]]
     49 
     50 	# Contraindre les traits identificateurs selon la forme de citation
     51 	- [$["+IdItau"] & ~[{itau} \LettreOrtho*]]
     52 
     53 	# Contraindre les traits de racine selon la forme de citation
     54 	- [$["+Râ"                     ] & ~[?* {au}        \LettreOrtho*]]
     55 	- [$["+Rau"                    ] & ~[?* {au}        \LettreOrtho*]]
     56 	- [$["+Re"                     ] & ~[?* {eu}        \LettreOrtho*]]
     57 	- [$["+Ri"   ?* ["+VII"|"+VAI"]] & ~[?*  u          \LettreOrtho*]]
     58 	- [$["+Ri"   ?*  "+VTA"        ] & ~[?* {ieu}       \LettreOrtho*]]
     59 	- [$["+Rî"                     ] & ~[?* {iu}        \LettreOrtho*]]
     60 	- [$["+Rm"                     ] & ~[?* {meu}       \LettreOrtho*]]
     61 	- [$["+Rn"   ?*  "+VII"        ] & ~[?*  n          \LettreOrtho*]]
     62 	- [$["+Rn"   ?*  "+VAI"        ] & ~[?* [n|ń]  u    \LettreOrtho*]]
     63 	- [$["+Rn"   ?*  "+VTA"        ] & ~[?* [n|ń] {eu}  \LettreOrtho*]]
     64 	- [$["+Rń"                     ] & ~[?* {ńu}        \LettreOrtho*]]
     65 	- [$["+Rshu"                   ] & ~[?* {shueu}     \LettreOrtho*]]
     66 	- [$["+Ru"   ?* ["+VII"|"+VAI"]] & ~[?* \ń u        \LettreOrtho*]]
     67 	- [$["+Ru"   ?*  "+VTA"        ] & ~[?* {ueu}       \LettreOrtho*]]
     68 	- [$["+Rû"   ?* ["+VII"|"+VAI"]] & ~[?*  u          \LettreOrtho*]]
     69 	- [$["+Rua"                    ] & ~[?* {ueu}       \LettreOrtho*]]
     70 	- [$["+Rûn"                    ] & ~[?* {un}        \LettreOrtho*]]
     71 	- [$["+RC"                     ] & ~[?* Cons {amᵘ}  \LettreOrtho*]]
     72 	- [$["+RD"   ?*  "+VTI"        ] & ~[?* [a|e] {imᵘ} \LettreOrtho*]]
     73 	- [$["+RD"   ?*  "+VTA"        ] & ~[?* [a|e] {ueu} \LettreOrtho*]];
     74 
     75 # Ajouter le trait facultatif de longueur de la voyelle initiale.
     76 read regex [Lexique .o. [[..] (->) TVILngr || \TIdVoc _ (TIdVoc) TVrbe]].l;