1
0
forked from GitHub/gf-rgl

(Dut) Fix ordinals and superlatives

This commit is contained in:
Inari Listenmaa
2018-07-03 18:25:14 +02:00
parent 6eaee8e4c1
commit 730fd6501c
5 changed files with 32 additions and 23 deletions

View File

@@ -50,7 +50,8 @@ lin
tr (th [] ++ th (heading positive_Parameter) ++ th (heading comparative_Parameter) ++ tr (th [] ++ th (heading positive_Parameter) ++ th (heading comparative_Parameter) ++
th (heading superlative_Parameter)) ++ th (heading superlative_Parameter)) ++
tr (th (heading predicative_Parameter) ++ gforms APred) ++ tr (th (heading predicative_Parameter) ++ gforms APred) ++
tr (th (heading attributive_Parameter) ++ gforms AAttr) ++ tr (th (heading attributive_Parameter) ++ gforms (AAttr Utr)) ++
tr (th (heading attributive_Parameter) ++ gforms (AAttr Neutr)) ++
tr (th (heading partitive_Parameter) ++ gforms AGen) tr (th (heading partitive_Parameter) ++ gforms AGen)
) )
in { t = "a" ; in { t = "a" ;

View File

@@ -314,7 +314,7 @@ sun_N = mkN "zon" utrum ;
swell_V = zwellen_V ; swell_V = zwellen_V ;
swim_V = zwemmen_V ; swim_V = zwemmen_V ;
switch8off_V2 = mkV2 "schakelen" ; switch8off_V2 = mkV2 "schakelen" ;
switch8on_V2 = mkV2 (mkV "op" (mkV "schakelen")) ; switch8on_V2 = mkV2 (mkV "aan" (mkV "zetten")) ;
table_N = mkN "tabel" utrum ; table_N = mkN "tabel" utrum ;
tail_N = mkN "staart" utrum ; tail_N = mkN "staart" utrum ;
teach_V2 = mkV2 "leren" ; teach_V2 = mkV2 "leren" ;

View File

@@ -86,13 +86,15 @@ concrete NounDut of Noun = CatDut ** open ResDut, Prelude in {
OrdDigits numeral = {s = \\af => numeral.s ! NOrd af} ; OrdDigits numeral = {s = \\af => numeral.s ! NOrd af} ;
NumNumeral numeral = {s = \\g,c => numeral.s ! NCard g c; n = numeral.n } ; NumNumeral numeral = {s = \\g,c => numeral.s ! NCard g c; n = numeral.n } ;
OrdNumeral numeral = {s = \\af => numeral.s ! NOrd af} ; OrdNumeral numeral = {s = let tiende : AForm => Str = \\af => numeral.s ! NOrd af
in table {APred => tiende ! AAttr Utr ;
af => tiende ! af} } ;
AdNum adn num = {s = \\g,c => adn.s ++ num.s!g!c; n = num.n } ; AdNum adn num = {s = \\g,c => adn.s ++ num.s!g!c; n = num.n } ;
OrdSuperl a = {s = a.s ! Superl} ; OrdSuperl a = {s = addHetPred (a.s ! Superl) } ; -- het warmst in APred, rest normal
OrdNumeralSuperl n a = {s = \\af => n.s ! NOrd af ++ a.s ! Superl ! af} ; OrdNumeralSuperl n a = {s = addHetPred (\\af => n.s ! NOrd af ++ a.s ! Superl ! af) } ;
DefArt = noMerge ** { DefArt = noMerge ** {
s = \\_,n,g => case <n,g> of {<Sg,Neutr> => "het" ; _ => "de"} ; s = \\_,n,g => case <n,g> of {<Sg,Neutr> => "het" ; _ => "de"} ;

View File

@@ -211,7 +211,9 @@ oper
--. --.
mkOrd : A -> Ord = \a -> lin Ord {s = a.s ! Posit} ; mkOrd : A -> Ord = \a ->
lin Ord {s = table { APred => "de" ++ a.s ! Posit ! APred ;
af => a.s ! Posit ! af } } ;
mkN = overload { mkN = overload {
mkN : (bank : Str) -> N mkN : (bank : Str) -> N

View File

@@ -76,16 +76,16 @@ resource ResDut = ParamX ** open Prelude, Predef in {
} ; } ;
param param
AForm = APred | AAttr | AGen ; AForm = APred | AAttr Gender | AGen ;
oper oper
Adjective = {s : Degree => AForm => Str} ; Adjective = {s : Degree => AForm => Str} ;
mkAdjective : (_,_,_,_,_ : Str) -> Adjective = \ap,aa,ag,ac,as -> { mkAdjective : (_,_,_,_,_ : Str) -> Adjective = \ap,aa,ag,ac,as -> {
s = table { s = table {
Posit => table {APred => ap ; AAttr => aa ; AGen => ag} ; Posit => table {AAttr Utr => aa ; AGen => ag ; _ => ap } ;
Compar => table {APred => ac ; AAttr => ac + "e" ; AGen => ac + "s"} ; ---- Compar => table {AAttr Utr => ac + "e" ; AGen => ac + "s" ; _ => ac } ; ----
Superl => table {APred => as ; AAttr => as + "e" ; AGen => as + "s"} ---- Superl => table {AAttr Utr => as + "e" ; AGen => as + "s" ; _ => as } ----
} }
} ; } ;
@@ -115,7 +115,11 @@ resource ResDut = ParamX ** open Prelude, Predef in {
_ => endCons s + "e" _ => endCons s + "e"
} ; } ;
in reg2Adjective s se ; in reg2Adjective s se ;
addHetPred : (AForm => Str) -> (AForm => Str) = \tiend_warmst ->
table {APred => "het" ++ tiend_warmst ! APred ;
af => tiend_warmst ! af } ;
param param
VForm = VForm =
VInf -- zijn VInf -- zijn
@@ -154,9 +158,9 @@ param
VPresSg3 | VImp3 => aait; -- hij/zij aait VPresSg3 | VImp3 => aait; -- hij/zij aait
VPastSg => aaide; -- ik aaide --# notpresent VPastSg => aaide; -- ik aaide --# notpresent
VPastPl => aaiden; -- hij/zij/het/wij aaiden --# notpresent VPastPl => aaiden; -- hij/zij/het/wij aaiden --# notpresent
VPerf APred => geaaid ; -- ik heb geaaid VPerf (AAttr Utr)=> geaaide ; -- geaaide X
VPerf AAttr => geaaide ; -- geaaide X
VPerf AGen => geaaid + "s" ; -- iets geaaids VPerf AGen => geaaid + "s" ; -- iets geaaids
VPerf (APred|_) => geaaid ; -- ik heb geaaid
VPresPart => aaien + "de" ; VPresPart => aaien + "de" ;
VGer => aaien + "d" VGer => aaien + "d"
} }
@@ -316,9 +320,9 @@ param
VImp2 => "wees" ; VImp2 => "wees" ;
VImp3 => "weest" ; VImp3 => "weest" ;
VImpPl => "wezen" ; VImpPl => "wezen" ;
VPerf APred => "geweest" ; VPerf (AAttr Utr) => "geweeste" ;
VPerf AAttr => "geweeste" ;
VPerf AGen => "geweests" ; VPerf AGen => "geweests" ;
VPerf (APred|_) => "geweest" ;
VPresPart => "zijnde" ; VPresPart => "zijnde" ;
VGer => "wezend" VGer => "wezend"
} ; } ;
@@ -341,9 +345,9 @@ param
VImp2 => "heb" ; VImp2 => "heb" ;
VImp3 => "heeft" ; VImp3 => "heeft" ;
VImpPl => "hebben" ; VImpPl => "hebben" ;
VPerf APred => "gehad" ; VPerf (AAttr Utr) => "gehadde" ;
VPerf AAttr => "gehadde" ;
VPerf AGen => "gehads" ; VPerf AGen => "gehads" ;
VPerf (APred|_) => "gehad" ;
VPresPart => "hebbende" ; VPresPart => "hebbende" ;
VGer => "hebbend" VGer => "hebbend"
} ; } ;
@@ -366,9 +370,9 @@ param
VImp2 => "zoud" ; ---- not used VImp2 => "zoud" ; ---- not used
VImp3 => "zoudt" ; VImp3 => "zoudt" ;
VImpPl => "zouden" ; ---- VImpPl => "zouden" ; ----
VPerf APred => "gezoudt" ; VPerf (AAttr Utr) => "gezoude" ;
VPerf AAttr => "gezoude" ;
VPerf AGen => "gezouds" ; VPerf AGen => "gezouds" ;
VPerf (APred|_) => "gezoudt" ;
VPresPart => "zullende" ; VPresPart => "zullende" ;
VGer => "zullend" VGer => "zullend"
} ; } ;
@@ -391,9 +395,9 @@ param
VImp2 => "kan" ; ---- not used VImp2 => "kan" ; ---- not used
VImp3 => "kan" ; VImp3 => "kan" ;
VImpPl => "kunnen" ; ---- VImpPl => "kunnen" ; ----
VPerf APred => "gekund" ; VPerf (AAttr Utr) => "gekunde" ;
VPerf AAttr => "gekunde" ;
VPerf AGen => "gekunds" ; VPerf AGen => "gekunds" ;
VPerf (APred|_) => "gekund" ;
VPresPart => "kunnende" ; VPresPart => "kunnende" ;
VGer => "kunnend" VGer => "kunnend"
} ; } ;
@@ -523,8 +527,8 @@ param
agrAdj : Gender -> Adjf -> NForm -> AForm = \g,a,n -> agrAdj : Gender -> Adjf -> NForm -> AForm = \g,a,n ->
case <a,g,n> of { case <a,g,n> of {
<Strong,Neutr,NF Sg _> => APred ; <Strong,Neutr,NF Sg _> => AAttr Neutr ;
_ => AAttr _ => AAttr Utr
} ; } ;
param NegPosition = BeforeObjs | AfterObjs | BetweenObjs; param NegPosition = BeforeObjs | AfterObjs | BetweenObjs;