packages feed

gf-3.6: lib/src/latin/IrregLat.gf

--# -path=.:prelude:../abstract:../common

concrete IrregLat of IrregLatAbs = CatLat ** open Prelude, ParadigmsLat, ResLat in {
--
--flags optimize=values ;
--

  lin
    -- Bayer-Lindauer 93 1
    be_V =
      let
	pres_stem = "s" ;
	pres_ind_base = "su" ;
	pres_conj_base = "si" ;
	impf_ind_base = "era" ;
	impf_conj_base = "esse" ;
	fut_I_base = "eri" ;
	imp_base = "es" ;
	perf_stem = "fu" ;
	perf_ind_base = "fu" ;
	perf_conj_base = "fueri" ;
	pqperf_ind_base = "fuera" ;
	pqperf_conj_base = "fuisse" ;
	fut_II_base = "fueri" ;
	part_stem = "fut" ;
	verb = mkVerb "esse" pres_stem pres_ind_base pres_conj_base impf_ind_base impf_conj_base fut_I_base
    	  imp_base perf_stem perf_ind_base perf_conj_base pqperf_ind_base pqperf_conj_base fut_II_base part_stem ;
      in
      {
	act = 
	  table {
    	    VAct VSim (VPres VInd)  n  p  => 
	      table Number [ table Person [ "sum" ; "es" ; "est" ] ;
    			     table Person [ "sumus" ; "estis" ; "sunt" ]
    	      ] ! n ! p ;
    	    a => verb.act ! a
	  };
	pass =
	  \\_ => "######" ; -- no passive forms 
	inf =
	  verb.inf ;
	imp =
	  table {
	    VImp1 Sg => "es" ;
	    VImp1 Pl => "este" ;
	    VImp2 Pl P2 => "estote" ;
	    a => verb.imp ! a
	  } ;
	sup =
	  \\_ => "######" ; -- no supin forms
	ger =
	  \\_ => "######" ; -- no gerund forms
	geriv = 
	  \\_ => "######" ; -- no gerundive forms
	part = table {
	  VActFut =>
	    verb.part ! VActFut ;
	  VActPres => 
	    \\_ => "######" ; -- no such participle
	  VPassPerf =>
	    \\_ => "######" -- no such participle
	  }
      } ;

    -- Bayer-Lindauer 93 2.2
    can_VV = 
      let
    	pres_stem = "pos" ;
    	pres_ind_base = "pos" ;
    	pres_conj_base = "possi" ;
    	impf_ind_base = "potera" ;
    	impf_conj_base = "posse" ;
    	fut_I_base = "poteri" ;
    	imp_base = "" ;
    	perf_stem = "potu" ;
    	perf_ind_base = "potu" ;
    	perf_conj_base = "potueri" ;
    	pqperf_ind_base = "potuera" ;
    	pqperf_conj_base = "potuisse" ;
    	fut_II_base = "potueri" ;
    	part_stem = "" ;
    	verb = mkVerb "posse" pres_stem pres_ind_base pres_conj_base impf_ind_base impf_conj_base fut_I_base
    	  imp_base perf_stem perf_ind_base perf_conj_base pqperf_ind_base pqperf_conj_base fut_II_base part_stem ;
      in
      {
    	act =
    	  table {
    	    VAct VSim (VPres VInd)  n  p  => 
	      table Number [ table Person [ "possum" ; "potes" ; "potest" ] ;
    			     table Person [ "possumus" ; "potestis" ; "possunt" ]
    	      ] ! n ! p ;
    	    a => verb.act ! a
    	  } ;
    	pass = 
    	  \\_ => "######" ; -- no passive forms
    	inf = 
	  table {
	    VInfActFut _ => "######" ;
	    a => verb.inf ! a
	  } ;
    	imp = 
	  \\_ => "######" ;
    	sup = 
	  \\_ => "######" ;
    	ger =
	  \\_ => "######" ;
    	geriv =
	  \\_ => "######" ;
    	part = table {
	  VActFut =>
    	    \\_ => "######" ; -- no such participle
    	  VActPres => 
	    \\_ => "######" ; -- no such participle
    	  VPassPerf =>
    	    \\_ => "######" -- no such participle
	  } ;
    	isAux = False
      };

    -- Bayer-Lindauer 94
    bring_V = 
      let
    	pres_stem = "fer" ;
    	pres_ind_base = "fer" ;
    	pres_conj_base = "fera" ;
    	impf_ind_base = "fereba" ;
    	impf_conj_base = "ferre" ;
    	fut_I_base = "fere" ;
    	imp_base = "fer" ;
    	perf_stem = "tul" ;
    	perf_ind_base = "tul" ;
    	perf_conj_base = "tuleri" ;
    	pqperf_ind_base = "tulera" ;
    	pqperf_conj_base = "tulisse" ;
    	fut_II_base = "tuleri" ;
    	part_stem = "lat" ;
    	verb = mkVerb "ferre" pres_stem pres_ind_base pres_conj_base impf_ind_base impf_conj_base fut_I_base
    	  imp_base perf_stem perf_ind_base perf_conj_base pqperf_ind_base pqperf_conj_base fut_II_base part_stem ;
      in
      {
    	act =
	  table {
	    VAct VSim (VPres VInd) n p => 
	      table Number [ table Person [ "fero" ; "fers" ; "fert" ] ;
			     table Person [ "ferimus" ; "fertis" ; "ferunt" ] 
	      ] ! n ! p ;
	    a => verb.act ! a
	  } ;
    	pass = 
	  table {
	    VPass (VPres VInd) n p => 
	      table Number [ table Person [ "feror" ; "ferris" ; "fertur" ] ;
			     table Person [ "ferimur" ; "ferimini" ; "feruntur" ]
	      ] ! n ! p ;
	    a => verb.pass ! a
	  } ;
    	inf = 
	  verb.inf ;	  
    	imp =
	  table {
	    VImp1 n => table Number [ "fer" ; "ferte" ] ! n ;
	    VImp2 Sg ( P2 | P3 ) => "ferto" ;
	    VImp2 Pl P2 => "fertote" ;
	    a => verb.imp ! a 
	  } ; 
    	sup = 
	  verb.sup ;
    	ger =
	  verb.ger ;
    	geriv =
	  verb.geriv ;
    	part = verb.part ;
      };

    -- Bayer-Lindauer 95
    want_V = 
      let
	pres_stem = "vel" ;
	pres_ind_base = "vol" ;
	pres_conj_base = "veli" ;
	impf_ind_base = "voleba" ;
	impf_conj_base = "volle" ;
	fut_I_base = "vole" ;
	imp_base = "" ;
	perf_stem = "volu" ;
	perf_ind_base = "volu" ;
	perf_conj_base = "volueri" ;
	pqperf_ind_base = "voluera" ;
	pqperf_conj_base = "voluisse" ;
	fut_II_base = "volueri" ;
	part_stem = "volet" ;
	verb = mkVerb "velle" pres_stem pres_ind_base pres_conj_base impf_ind_base impf_conj_base fut_I_base
    	  imp_base perf_stem perf_ind_base perf_conj_base pqperf_ind_base pqperf_conj_base fut_II_base part_stem ;
      in
      {
	act =
	  table {
	    VAct VSim (VPres VInd)  n  p  => 
	      table Number [ table Person [ "volo" ; "vis" ; "vult" ] ;
    			     table Person [ "volumus" ; "vultis" ; "volunt" ]
    	      ] ! n ! p ;
    	    a => verb.act ! a
	  } ;
	  pass =
	    \\_ => "######" ;
	  ger = 
	    verb.ger ;
	  geriv =
	    verb.geriv ;
	  imp = 
	    \\_ => "######" ;
	  inf = 
	    verb.inf ;
	  part = table {
	    VActFut =>
	      \\_ => "######" ;
	    VActPres =>
	      verb.part ! VActPres ;
	    VPassPerf =>
	      \\_ => "######"
	    } ; 
	  sup =
	    verb.sup ;
      } ;

    -- Bayer-Lindauer 96 1
    go_V = 
      let
	pres_stem = "i" ;
	pres_ind_base = "i" ;
	pres_conj_base = "ea" ;
	impf_ind_base = "iba" ;
	impf_conj_base = "ire" ;
	fut_I_base = "ibi" ;
	imp_base = "i" ;
	perf_stem = "i" ;
	perf_ind_base = "i" ;
	perf_conj_base = "ieri" ;
	pqperf_ind_base = "iera" ;
	pqperf_conj_base = "isse" ;
	fut_II_base = "ieri" ;
	part_stem = "it" ;
	verb = mkVerb "ire" pres_stem pres_ind_base pres_conj_base impf_ind_base impf_conj_base fut_I_base
    	  imp_base perf_stem perf_ind_base perf_conj_base pqperf_ind_base pqperf_conj_base fut_II_base part_stem ;
      in
      {
	act =
	  table {
	    VAct VSim (VPres VInd)  n  p  => 
	      table Number [ table Person [ "eo" ; "is" ; "it" ] ;
    			     table Person [ "imus" ; "itis" ; "eunt" ]
    	      ] ! n ! p ;
	    VAct VAnt (VPres VInd)  Sg P2 => "isti" ;
	    VAct VAnt (VPres VInd)  Pl P2 => "istis" ;
    	    a => verb.act ! a
	  } ;
	pass = 
	  \\_ => "######"; -- no passive forms
	ger = 
	  table VGerund [ "eundum" ; "eundi" ; "eundo" ; "eundo" ] ;
	geriv =
	  verb.geriv ;
	imp =
	  table {
	    VImp2 Pl P3 => "eunto" ;
	    a => verb.imp ! a
	  } ;
	inf =
	  table {
	    VInfActPerf _ => "isse" ;
	    a =>verb.inf ! a
	  };
	part = table {
	  VActFut => 
	    verb.part ! VActFut ;
	  VActPres => 
	    table {
	      Ag ( Fem | Masc ) n c =>
		( mkNoun ( "iens" ) ( "euntem" ) ( "euntis" ) 
		    ( "eunti" ) ( "eunte" ) ( "iens" ) 
		    ( "euntes" ) ( "euntes" ) ( "euntium" ) 
		    ( "euntibus" ) 
 		    Masc ).s ! n ! c ;
	      Ag Neutr n c =>
		( mkNoun ( "iens" ) ( "iens" ) ( "euntis" ) 
		    ( "eunti" ) ( "eunte" ) ( "iens" ) 
		    ( "euntia" ) ( "euntia" ) ( "euntium" ) 
		    ( "euntibus" ) 
 		    Masc ).s ! n ! c
	    } ;
	  VPassPerf => 
	    \\_ => "######" -- no such participle
	  } ;
	sup = 
	  \\_ => "######" -- really no such form?
      } ;

    -- Bayer-Lindauer 97
    become_V = 
      let
	pres_stem = "fi" ;
	pres_ind_base = "fi" ;
	pres_conj_base = "fia" ;
	impf_ind_base = "fieba" ;
	impf_conj_base = "fiere" ;
	fut_I_base = "fie" ;
	imp_base = "fi" ;
	perf_stem = "" ;
	perf_ind_base = "" ;
	perf_conj_base = "" ;
	pqperf_ind_base = "" ;
	pqperf_conj_base = "" ;
	fut_II_base = "" ;
	part_stem = "fact" ;

	verb = 
	  mkVerb "fieri" pres_stem pres_ind_base pres_conj_base impf_ind_base impf_conj_base fut_I_base imp_base
	  perf_stem perf_ind_base perf_conj_base pqperf_ind_base pqperf_conj_base fut_II_base part_stem ;
      in
      {
	act = 
	  table {
	    VAct VSim (VPres VInd) Sg P1 => "fio" ;
	    VAct VAnt _            _  _  => "######" ; -- perfect expressed by participle
	    a => verb.act ! a 
	  } ;
	pass =
	  \\_ => "######" ; -- no passive forms
	ger =
	  \\_ => "######" ; -- no gerund form
	geriv = 
	  \\_ => "######" ; -- no gerundive form
	imp = 
	  verb.imp ;
	inf = 
	  table {
	    VInfActPerf _ => "factus" ;
	    VInfActFut Masc => "futurum" ;
	    VInfActFut Fem => "futura" ;
	    VInfActFut Neutr => "futurum" ;
	    a => verb.inf ! a
	  } ;
	part = table {
	  VActFut =>
	    \\_ => "######" ; -- no such participle
	  VActPres => 
	    \\_ => "######" ; -- no such participle
	  VPassPerf =>
	    verb.part ! VPassPerf
	  } ;
	sup = 
	  \\_ => "######" -- no supin
      } ;

    -- Source ?
    rain_V =
      {
	act = 
	  table {
	    VAct VSim (VPres VInd) Sg P3 => "pluit" ;
	    VAct VSim (VPres VInd) Pl P3 => "pluunt" ;
	    VAct VSim (VImpf VInd) Sg P3 => "pluebat" ;
	    VAct VSim (VImpf VInd) Pl P3 => "pluebant" ;
	    VAct VSim VFut Sg P3 => "pluet" ;
	    VAct VSim VFut Pl P3 => "pluent" ;
	    VAct VAnt (VPres VInd) Sg P3 => "pluvit" ;
	    VAct VAnt (VPres VInd) Pl P3 => "pluverunt" ;
	    VAct VAnt (VImpf VInd) Sg P3 => "pluverat" ;
	    VAct VAnt (VImpf VInd) Pl P3 => "pluverat" ;
	    VAct VAnt VFut Sg P3 => "pluverit" ;
	    VAct VAnt VFut Pl P3 => "pluverint" ;
	    VAct VSim (VPres VConj) Sg P3 => "pluat" ;
	    VAct VSim (VPres VConj) Pl P3 => "pluant" ;
	    VAct VSim (VImpf VConj) Sg P3 => "plueret" ; 
	    VAct VSim (VImpf VConj) Pl P3 => "pluerent" ;
	    VAct VAnt (VPres VConj) Sg P3 => "pluverit" ;
	    VAct VAnt (VPres VConj) Pl P3 => "pluverint" ;
	    VAct VAnt (VImpf VConj) Sg P3 => "pluvisset" ;
	    VAct VAnt (VImpf VConj) Pl P3 => "pluvissent" ;
	    _ => "######" -- no such forms
	  } ;
	pass = 
	  \\_ => "######" ; -- no passive forms
	inf = table {
	  VInfActPres => "pluere" ;
	  VInfActPerf _ => "pluvisse" ;
	  _ => "######"
	  } ;
	imp =
	  table {
	    VImp2 Sg ( P2 | P3 ) => "pluito" ;
	    VImp2 Pl P2 => "pluitote" ;
	    VImp2 Pl P3 => "pluunto" ;
	    _ => "######" 
	  } ;
	ger = 
	  \\_ => "######" ; -- no gerund forms
	geriv = 
	  \\_ => "######" ; -- no gerundive forms
	sup = 
	  \\_ => "######" ; -- no supin forms
	part = table { 
	  VActPres =>
	    \\_ => "pluens" ;
	  VActFut =>
	    \\_ => "######" ; -- no such participle
	  VPassPerf =>
	    \\_ => "######" -- no such participle
	  }
      } ;

    -- Bayer-Lindauer 98
    hate_V = 
      let  
	pres_stem = "" ;
	pres_ind_base = "" ;
	pres_conj_base = "" ;
	impf_ind_base = "" ;
	impf_conj_base = "" ;
	fut_I_base = "" ;
	imp_base = "" ;
	perf_stem = "od" ;
	perf_ind_base = "od" ;
	perf_conj_base = "oderi" ;
	pqperf_ind_base = "odera" ;
	pqperf_conj_base = "odissem" ;
	fut_II_base = "oderi" ;
	part_stem = "os" ;
	verb = 
	  mkVerb "odisse" pres_stem pres_ind_base pres_conj_base impf_ind_base impf_conj_base fut_I_base imp_base
	  perf_stem perf_ind_base perf_conj_base pqperf_ind_base pqperf_conj_base fut_II_base part_stem ;
      in {
	act = table {
	  VAct VSim t n p => verb.act ! VAct VAnt t n p ;
	  _ => "######" -- no such verb forms
	  } ;
	pass = \\_ => "######" ; -- no passive forms 
	ger = \\_ => "######" ; -- no gerund forms
	geriv = \\_ => "######" ; -- no gerundive forms
	imp = \\_ => "######" ; -- no imperative form
	inf = table {
	  VInfActPres => verb.inf ! VInfActPres ;
	  VInfActFut g => verb.inf ! VInfActFut g ; -- really ?
	  _ => "######"
	  } ;
	part = table {
	  VActFut => 
	    verb.part ! VActFut ;
	  VActPres => 
	    \\_ => "######" ; -- no such participle form
	  VPassPerf => 
	    \\_ => "######" -- no such participle form
	  } ;
	sup = \\_ => "######" ; -- no such supine form
      } ;
}