forked from GitHub/gf-core
fixed double infinitives in Dutch
This commit is contained in:
@@ -431,52 +431,13 @@ param
|
|||||||
_ => AAttr
|
_ => AAttr
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
--
|
|
||||||
---- This is used when forming determiners that are like adjectives.
|
|
||||||
--
|
|
||||||
-- appAdj : Adjective -> Number => Gender => Case => Str = \adj ->
|
|
||||||
-- let
|
|
||||||
-- ad : GenNum -> Case -> Str = \gn,c ->
|
|
||||||
-- adj.s ! Posit ! AMod gn c
|
|
||||||
-- in
|
|
||||||
-- \\n,g,c => case n of {
|
|
||||||
-- Sg => ad (GSg g) c ;
|
|
||||||
-- _ => ad GPl c
|
|
||||||
-- } ;
|
|
||||||
--
|
|
||||||
---- This auxiliary gives the forms in each degree of adjectives.
|
|
||||||
--
|
|
||||||
-- adjForms : (x1,x2 : Str) -> AForm => Str = \teuer,teur ->
|
|
||||||
-- table {
|
|
||||||
-- APred => teuer ;
|
|
||||||
-- AMod (GSg Masc) c =>
|
|
||||||
-- caselist (teur+"er") (teur+"en") (teur+"em") (teur+"es") ! c ;
|
|
||||||
-- AMod (GSg Fem) c =>
|
|
||||||
-- caselist (teur+"e") (teur+"e") (teur+"er") (teur+"er") ! c ;
|
|
||||||
-- AMod (GSg Neut) c =>
|
|
||||||
-- caselist (teur+"es") (teur+"es") (teur+"em") (teur+"es") ! c ;
|
|
||||||
-- AMod GPl c =>
|
|
||||||
-- caselist (teur+"e") (teur+"e") (teur+"en") (teur+"er") ! c
|
|
||||||
-- } ;
|
|
||||||
--
|
|
||||||
---- For $Verb$.
|
|
||||||
--
|
|
||||||
-- VPC : Type = {
|
|
||||||
-- s : Bool => Agr => VPForm => { -- True = prefix glued to verb
|
|
||||||
-- fin : Str ; -- hat
|
|
||||||
-- inf : Str -- wollen
|
|
||||||
-- }
|
|
||||||
-- } ;
|
|
||||||
--
|
|
||||||
|
|
||||||
oper VP : Type = {
|
oper VP : Type = {
|
||||||
s : VVerb ;
|
s : VVerb ;
|
||||||
a1 : Polarity => Str ; -- niet
|
a1 : Polarity => Str ; -- niet
|
||||||
n2 : Agr => Str ; -- dich
|
n2 : Agr => Str ; -- dich
|
||||||
a2 : Str ; -- heute
|
a2 : Str ; -- heute
|
||||||
isAux : Bool ; -- is a double infinitive
|
isAux : Bool ; -- is a double infinitive
|
||||||
inf : Str ; -- sagen
|
inf : Str * Bool ; -- sagen (True = non-empty)
|
||||||
ext : Str -- dass sie kommt
|
ext : Str -- dass sie kommt
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -492,7 +453,8 @@ param
|
|||||||
} ;
|
} ;
|
||||||
a2 : Str = [] ;
|
a2 : Str = [] ;
|
||||||
isAux = isAux ; ----
|
isAux = isAux ; ----
|
||||||
inf,ext : Str = []
|
inf : Str * Bool = <[],False> ;
|
||||||
|
ext : Str = []
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
negation : Polarity => Str = table {
|
negation : Polarity => Str = table {
|
||||||
@@ -548,7 +510,7 @@ param
|
|||||||
n2 = vp.n2 ;
|
n2 = vp.n2 ;
|
||||||
a2 = vp.a2 ;
|
a2 = vp.a2 ;
|
||||||
isAux = vp.isAux ; ----
|
isAux = vp.isAux ; ----
|
||||||
inf = inf ++ vp.inf ;
|
inf = <inf ++ vp.inf.p1, True> ;
|
||||||
ext = vp.ext
|
ext = vp.ext
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -578,7 +540,13 @@ param
|
|||||||
neg = vp.a1 ! b ;
|
neg = vp.a1 ! b ;
|
||||||
obj = vp.n2 ! agr ;
|
obj = vp.n2 ! agr ;
|
||||||
compl = obj ++ neg ++ vp.a2 ++ vp.s.prefix ;
|
compl = obj ++ neg ++ vp.a2 ++ vp.s.prefix ;
|
||||||
inf = vp.inf ++ verb.p2 ;
|
inf =
|
||||||
|
case <vp.isAux, vp.inf.p2, a> of { --# notpresent
|
||||||
|
<True,True,Anter> => vp.s.s ! VInf ++ vp.inf.p1 ; --# notpresent
|
||||||
|
_ => --# notpresent
|
||||||
|
vp.inf.p1 ++ verb.p2
|
||||||
|
} --# notpresent
|
||||||
|
;
|
||||||
extra = vp.ext ;
|
extra = vp.ext ;
|
||||||
inffin =
|
inffin =
|
||||||
case <a,vp.isAux> of { --# notpresent
|
case <a,vp.isAux> of { --# notpresent
|
||||||
@@ -604,7 +572,7 @@ param
|
|||||||
\\agr => vp.n2 ! agr ++ vp.a2,
|
\\agr => vp.n2 ! agr ++ vp.a2,
|
||||||
vp.a1 ! Pos ++
|
vp.a1 ! Pos ++
|
||||||
if_then_Str isAux [] "te" ++ vp.s.s ! VInf,
|
if_then_Str isAux [] "te" ++ vp.s.s ! VInf,
|
||||||
vp.inf ++ vp.ext
|
vp.inf.p1 ++ vp.ext
|
||||||
> ;
|
> ;
|
||||||
|
|
||||||
useInfVP : Bool -> VP -> Str = \isAux,vp ->
|
useInfVP : Bool -> VP -> Str = \isAux,vp ->
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ concrete SentenceDut of Sentence = CatDut ** open ResDut, Prelude in {
|
|||||||
} ;
|
} ;
|
||||||
agr = {g = Utr ; n = ps.p3 ; p = P2} ; ---- P2? -- g does not matter
|
agr = {g = Utr ; n = ps.p3 ; p = P2} ; ---- P2? -- g does not matter
|
||||||
verb = vp.s.s ! ps.p1 ;
|
verb = vp.s.s ! ps.p1 ;
|
||||||
inf = vp.inf ;
|
inf = vp.inf.p1 ;
|
||||||
in
|
in
|
||||||
verb ++ ps.p2 ++
|
verb ++ ps.p2 ++
|
||||||
vp.n2 ! agr ++ vp.a1 ! pol ++ vp.a2 ++ inf ++ vp.ext
|
vp.n2 ! agr ++ vp.a1 ! pol ++ vp.a2 ++ inf ++ vp.ext
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ concrete StructuralDut of Structural = CatDut, Prelude **
|
|||||||
most_Predet = mkPredet "meeste" "meeste" ;
|
most_Predet = mkPredet "meeste" "meeste" ;
|
||||||
much_Det = mkDet "veel" "veel" Sg ;
|
much_Det = mkDet "veel" "veel" Sg ;
|
||||||
|
|
||||||
must_VV = auxVV (mkV "moeten" "moest" "gemoete") ;
|
must_VV = auxVV (mkV "moeten" "moest" "gemoeten") ;
|
||||||
|
|
||||||
only_Predet = {s = \\_,_ => "slechts"} ;
|
only_Predet = {s = \\_,_ => "slechts"} ;
|
||||||
no_Utt = ss "neen" ;
|
no_Utt = ss "neen" ;
|
||||||
|
|||||||
Reference in New Issue
Block a user