diff --git a/src/latin/ParadigmsLat.gf b/src/latin/ParadigmsLat.gf index cedb844cc..38f396324 100644 --- a/src/latin/ParadigmsLat.gf +++ b/src/latin/ParadigmsLat.gf @@ -34,6 +34,10 @@ oper abl : Case = Abl ; voc : Case = ResLat.Voc ; + plural : Number = Pl ; + singular : Number = Sg ; + missing : Coordinator = Missing ; + mkN = overload { mkN : (verbum : Str) -> N = \n -> lin N ( noun n ) ; @@ -41,9 +45,10 @@ oper = \x,y,z -> lin N ( noun_ngg x y z ) ; } ; - pluralN = ResLat.pluralN ; - singularN = ResLat.singularN ; - constN = ResLat.constN ; + pluralN : N -> N = \n -> lin N (ResLat.pluralNoun n) ; + singularN : N -> N = \n -> lin N (ResLat.singularNoun n) ; + constN : Str -> Gender-> N = \s,g -> lin N (ResLat.constNoun s g); + mkA = overload { mkA : (verbum : Str) -> A -- Nominative masculine = \n -> lin A ( adj n ** {isPre = False } ) ; @@ -68,7 +73,7 @@ oper False => let a = adj n in { s = table { Posit => a.s ! Posit ; _ => \\_ => nonExist } ; adv = a.adv } } ** { isPre = False } ) } ; - + constA : Str -> A = \s -> lin A (ResLat.constAdj s) ; mkV = overload { mkV : (tacere : Str) -> V @@ -82,7 +87,7 @@ oper V0 : Type = V; mkV0 = overload { mkV0 : V -> V0 = \v -> lin V0 v ; -- Same as in english, don't know if it's working - mkV0 : Str -> V0 = \v -> lin V0 (mkImpersonal v) ; + mkV0 : Str -> V0 = \v -> lin V0 (impersonalVerb v) ; } ; mkV2 = overload { @@ -94,6 +99,7 @@ oper = \v,p -> lin V2 ( v ** { c = p } ) ; } ; + constV : Str -> Verb = \s -> lin V (ResLat.constVerb s) ; mkAdv = overload { mkAdv : Str -> Adv diff --git a/src/latin/ResLat.gf b/src/latin/ResLat.gf index c5bb1cff1..cd2a2f1f6 100644 --- a/src/latin/ResLat.gf +++ b/src/latin/ResLat.gf @@ -56,7 +56,7 @@ param -- massable = cn.massable; } ; - pluralN : Noun -> Noun = \n -> + pluralNoun : Noun -> Noun = \n -> { s = table { Pl => n.s ! Pl ; @@ -68,7 +68,7 @@ param -- massable = n.massable ; }; - singularN : Noun -> Noun = \n -> + singularNoun : Noun -> Noun = \n -> lin N { s = table { Sg => n.s ! Sg ; @@ -79,7 +79,7 @@ param postap = n.postap -- massable = n.massable ; }; - constN : Str -> Gender -> Noun = \s,g -> + constNoun : Str -> Gender -> Noun = \s,g -> { s = \\_,_ => s ; g = g } ; param @@ -194,7 +194,10 @@ param emptyAdj : Adjective = { s = \\_,_ => "" ; comp_adv = "" ; super_adv = "" ; adv = { s = \\_ => "" } } ; --- verbs + constAdj : Str -> Adjective = \a -> + { s = \\_,_ => a ; comp_adv = "" ; super_adv = "" ; adv = { s = \\_ => "" } } ; + + -- verbs param VActForm = VAct VAnter VTense Number Person ; @@ -750,7 +753,7 @@ param } ; -- at the moment only fills present tense - mkImpersonal : Str -> Verb = \s -> + impersonalVerb : Str -> Verb = \s -> { act = table { VAct VSim (VPres VInd) Sg P1 => s ; @@ -764,7 +767,20 @@ param part = \\_,_ => nonExist ; sup = \\_ => nonExist ; } ; - + + constVerb : Str -> Verb = \s -> + { + act = table { + _ => s + } ; + pass = \\_ => nonExist ; + imp = \\_ => nonExist ; + inf = \\_ => nonExist ; + ger = \\_ => nonExist ; + geriv = \\_ => nonExist ; + part = \\_,_ => nonExist ; + sup = \\_ => nonExist ; + } ; actPresEnding : Number -> Person -> Str = useEndingTable <"m", "s", "t", "mus", "tis", "nt"> ;