mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-24 03:52:50 -06:00
Dutch syntax complete (but not checked)
This commit is contained in:
@@ -14,46 +14,44 @@ concrete AdjectiveDut of Adjective = CatDut ** open ResDut, Prelude in
|
|||||||
s = \\af => a.s ! Compar ! af ++ "dan" ++ np.s ! NPNom ;
|
s = \\af => a.s ! Compar ! af ++ "dan" ++ np.s ! NPNom ;
|
||||||
isPre = True
|
isPre = True
|
||||||
} ;
|
} ;
|
||||||
-- CAdvAP ad ap np = {
|
CAdvAP ad ap np = {
|
||||||
-- s = \\af => ad.s ++ ap.s ! af ++ ad.p ++ np.s ! Nom ;
|
s = \\af => ad.s ++ ap.s ! af ++ ad.p ++ np.s ! NPNom ;
|
||||||
-- isPre = False
|
isPre = False
|
||||||
-- } ;
|
} ;
|
||||||
-- UseComparA a = {
|
UseComparA a = {
|
||||||
-- s = \\af => a.s ! Compar ! af ;
|
s = \\af => a.s ! Compar ! af ;
|
||||||
-- isPre = True
|
isPre = True
|
||||||
-- } ;
|
} ;
|
||||||
-- AdjOrd a = {
|
AdjOrd a = {
|
||||||
-- s = a.s ;
|
s = a.s ;
|
||||||
-- isPre = True
|
isPre = True
|
||||||
-- } ;
|
} ;
|
||||||
--
|
|
||||||
---- $SuperlA$ belongs to determiner syntax in $Noun$.
|
-- $SuperlA$ belongs to determiner syntax in $Noun$.
|
||||||
--
|
|
||||||
-- ComplA2 a np = {
|
ComplA2 a np = {
|
||||||
-- s = \\af => a.s ! Posit ! af ++ appPrep a.c2 np.s ;
|
s = \\af => a.s ! Posit ! af ++ appPrep a.c2 np.s ;
|
||||||
-- isPre = True
|
isPre = True
|
||||||
-- } ;
|
} ;
|
||||||
--
|
|
||||||
-- ReflA2 a = {
|
ReflA2 a = {
|
||||||
-- s = \\af => a.s ! Posit ! APred ++ appPrep a.c2 (reflPron ! agrP3 Sg) ; --- agr
|
s = \\af => a.s ! Posit ! APred ++ appPrep a.c2 (\\_ => reflPron ! agrP3 Sg) ; --- agr
|
||||||
-- isPre = True
|
isPre = True
|
||||||
-- } ;
|
} ;
|
||||||
--
|
|
||||||
-- SentAP ap sc = {
|
SentAP ap sc = {
|
||||||
-- s = \\a => ap.s ! a ++ sc.s ;
|
s = \\a => ap.s ! a ++ sc.s ;
|
||||||
-- isPre = False
|
isPre = False
|
||||||
-- } ;
|
} ;
|
||||||
--
|
|
||||||
-- AdAP ada ap = {
|
AdAP ada ap = {
|
||||||
-- s = \\a => ada.s ++ ap.s ! a ;
|
s = \\a => ada.s ++ ap.s ! a ;
|
||||||
-- isPre = ap.isPre
|
isPre = ap.isPre
|
||||||
-- } ;
|
} ;
|
||||||
--
|
|
||||||
-- UseA2 a = {
|
UseA2 a = {
|
||||||
-- s = a.s ! Posit ;
|
s = a.s ! Posit ;
|
||||||
-- isPre = True
|
isPre = True
|
||||||
-- } ;
|
} ;
|
||||||
--
|
|
||||||
--}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,12 +4,12 @@ concrete AdverbDut of Adverb = CatDut ** open ResDut, Prelude in {
|
|||||||
lin
|
lin
|
||||||
PositAdvAdj a = {s = a.s ! Posit ! APred} ;
|
PositAdvAdj a = {s = a.s ! Posit ! APred} ;
|
||||||
|
|
||||||
-- ComparAdvAdj cadv a np = {
|
ComparAdvAdj cadv a np = {
|
||||||
-- s = cadv.s ++ a.s ! Posit ! APred ++ cadv.p ++ np.s ! Nom
|
s = cadv.s ++ a.s ! Posit ! APred ++ cadv.p ++ np.s ! NPNom
|
||||||
-- } ;
|
} ;
|
||||||
-- ComparAdvAdjS cadv a s = {
|
ComparAdvAdjS cadv a s = {
|
||||||
-- s = cadv.s ++ a.s ! Posit ! APred ++ cadv.p ++ s.s ! Sub
|
s = cadv.s ++ a.s ! Posit ! APred ++ cadv.p ++ s.s ! Sub
|
||||||
-- } ;
|
} ;
|
||||||
|
|
||||||
PrepNP prep np = {s = appPrep prep.s np.s} ;
|
PrepNP prep np = {s = appPrep prep.s np.s} ;
|
||||||
|
|
||||||
@@ -17,6 +17,6 @@ concrete AdverbDut of Adverb = CatDut ** open ResDut, Prelude in {
|
|||||||
|
|
||||||
SubjS subj s = {s = subj.s ++ s.s ! Sub} ;
|
SubjS subj s = {s = subj.s ++ s.s ! Sub} ;
|
||||||
|
|
||||||
-- AdnCAdv cadv = {s = cadv.s ++ conjThan} ;
|
AdnCAdv cadv = {s = cadv.s ++ conjThan} ;
|
||||||
--
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,49 +1,42 @@
|
|||||||
concrete ConjunctionDut of Conjunction =
|
concrete ConjunctionDut of Conjunction =
|
||||||
CatDut ** open ResDut, Coordination, Prelude in
|
CatDut ** open ResDut, Coordination, Prelude in {
|
||||||
{
|
|
||||||
--{
|
flags optimize=all_subs ;
|
||||||
--
|
|
||||||
-- flags optimize=all_subs ;
|
lin
|
||||||
--
|
|
||||||
-- lin
|
ConjS conj ss = conjunctDistrTable Order conj ss ;
|
||||||
--
|
|
||||||
-- ConjS conj ss = conjunctDistrTable Order conj ss ;
|
ConjAdv conj ss = conjunctDistrSS conj ss ;
|
||||||
--
|
|
||||||
-- ConjAdv conj ss = conjunctDistrSS conj ss ;
|
ConjNP conj ss = conjunctDistrTable NPCase conj ss ** {
|
||||||
--
|
a = {g = Utr ; n = conjNumber conj.n ss.a.n ; p = ss.a.p}
|
||||||
-- ConjNP conj ss = conjunctDistrTable Case conj ss ** {
|
} ;
|
||||||
-- a = {g = Fem ; n = conjNumber conj.n ss.a.n ; p = ss.a.p}
|
|
||||||
-- } ;
|
ConjAP conj ss = conjunctDistrTable AForm conj ss ** {
|
||||||
--
|
isPre = ss.isPre
|
||||||
-- ConjAP conj ss = conjunctDistrTable AForm conj ss ** {
|
} ;
|
||||||
-- isPre = ss.isPre
|
|
||||||
-- } ;
|
ConjRS conj ss = conjunctDistrTable2 Gender Number conj ss ;
|
||||||
--
|
|
||||||
-- ConjRS conj ss = conjunctDistrTable GenNum conj ss ** {
|
-- These fun's are generated from the list cat's.
|
||||||
-- c = ss.c
|
|
||||||
-- } ;
|
BaseS = twoTable Order ;
|
||||||
--
|
ConsS = consrTable Order comma ;
|
||||||
--
|
BaseAdv = twoSS ;
|
||||||
---- These fun's are generated from the list cat's.
|
ConsAdv = consrSS comma ;
|
||||||
--
|
BaseNP x y = twoTable NPCase x y ** {a = conjAgr x.a y.a} ;
|
||||||
-- BaseS = twoTable Order ;
|
ConsNP xs x = consrTable NPCase comma xs x ** {a = conjAgr xs.a x.a} ;
|
||||||
-- ConsS = consrTable Order comma ;
|
BaseAP x y = twoTable AForm x y ** {isPre = andB x.isPre y.isPre} ;
|
||||||
-- BaseAdv = twoSS ;
|
ConsAP xs x = consrTable AForm comma xs x ** {isPre = andB xs.isPre x.isPre} ;
|
||||||
-- ConsAdv = consrSS comma ;
|
BaseRS x y = twoTable2 Gender Number x y ** {c = y.c} ;
|
||||||
-- BaseNP x y = twoTable Case x y ** {a = conjAgr x.a y.a} ;
|
ConsRS xs x = consrTable2 Gender Number comma xs x ;
|
||||||
-- ConsNP xs x = consrTable Case comma xs x ** {a = conjAgr xs.a x.a} ;
|
|
||||||
-- BaseAP x y = twoTable AForm x y ** {isPre = andB x.isPre y.isPre} ;
|
lincat
|
||||||
-- ConsAP xs x = consrTable AForm comma xs x ** {isPre = andB xs.isPre x.isPre} ;
|
[S] = {s1,s2 : Order => Str} ;
|
||||||
-- BaseRS x y = twoTable GenNum x y ** {c = y.c} ;
|
[Adv] = {s1,s2 : Str} ;
|
||||||
-- ConsRS xs x = consrTable GenNum comma xs x ** {c = xs.c} ;
|
[NP] = {s1,s2 : NPCase => Str ; a : Agr} ;
|
||||||
--
|
[AP] = {s1,s2 : AForm => Str ; isPre : Bool} ;
|
||||||
-- lincat
|
[RS] = {s1,s2 : Gender => Number => Str} ;
|
||||||
-- [S] = {s1,s2 : Order => Str} ;
|
|
||||||
-- [Adv] = {s1,s2 : Str} ;
|
|
||||||
-- [NP] = {s1,s2 : Case => Str ; a : Agr} ;
|
|
||||||
-- [AP] = {s1,s2 : AForm => Str ; isPre : Bool} ;
|
|
||||||
-- [RS] = {s1,s2 : GenNum => Str ; c : Case} ;
|
|
||||||
--
|
|
||||||
--}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,50 +1,50 @@
|
|||||||
concrete IdiomDut of Idiom = CatDut **
|
concrete IdiomDut of Idiom = CatDut **
|
||||||
open MorphoDut, ParadigmsDut, Prelude in
|
open MorphoDut, ParadigmsDut, IrregDut, Prelude in {
|
||||||
{
|
|
||||||
--{
|
flags optimize=all_subs ;
|
||||||
--
|
|
||||||
-- flags optimize=all_subs ;
|
lin
|
||||||
--
|
ImpersCl vp = mkClause "'t" (agrP3 Sg) vp ;
|
||||||
-- lin
|
GenericCl vp = mkClause "men" (agrP3 Sg) vp ;
|
||||||
-- ImpersCl vp = mkClause "es" (agrP3 Sg) vp ;
|
|
||||||
-- GenericCl vp = mkClause "man" (agrP3 Sg) vp ;
|
CleftNP np rs = mkClause "'t" (agrP3 Sg)
|
||||||
--
|
(insertExtrapos (rs.s ! np.a.g ! np.a.n) ----
|
||||||
-- CleftNP np rs = mkClause "es" (agrP3 Sg)
|
(insertObj (\\_ => np.s ! NPNom) (predV zijn_V))) ;
|
||||||
-- (insertExtrapos (rs.s ! gennum np.a.g np.a.n) ----
|
|
||||||
-- (insertObj (\\_ => np.s ! rs.c) (predV MorphoDut.sein_V))) ;
|
CleftAdv ad s = mkClause "'t" (agrP3 Sg)
|
||||||
--
|
(insertExtrapos (conjThat ++ s.s ! Sub)
|
||||||
-- CleftAdv ad s = mkClause "es" (agrP3 Sg)
|
(insertObj (\\_ => ad.s) (predV zijn_V))) ;
|
||||||
-- (insertExtrapos (conjThat ++ s.s ! Sub)
|
|
||||||
-- (insertObj (\\_ => ad.s) (predV MorphoDut.sein_V))) ;
|
ExistNP np =
|
||||||
--
|
mkClause "er" (agrP3 np.a.n)
|
||||||
--
|
(insertObj (\\_ => np.s ! NPNom)
|
||||||
-- ExistNP np =
|
(predV zijn_V)) ;
|
||||||
-- mkClause "es" (agrP3 Sg)
|
|
||||||
-- (insertObj (\\_ => appPrep geben.c2 np.s)
|
ExistIP ip = {
|
||||||
-- (predV geben)) ;
|
s = \\t,a,p =>
|
||||||
--
|
let
|
||||||
-- ExistIP ip = {
|
cls =
|
||||||
-- s = \\m,t,a,p =>
|
(mkClause "er" (agrP3 ip.n) (predV zijn_V)).s ! t ! a ! p ;
|
||||||
-- let
|
who = ip.s ! NPNom
|
||||||
-- cls =
|
in table {
|
||||||
-- (mkClause "es" (agrP3 Sg) (predV geben)).s ! m ! t ! a ! p ;
|
QDir => who ++ cls ! Inv ;
|
||||||
-- who = ip.s ! Acc
|
QIndir => who ++ cls ! Sub
|
||||||
-- in table {
|
}
|
||||||
-- QDir => who ++ cls ! Inv ;
|
} ;
|
||||||
-- QIndir => who ++ cls ! Sub
|
|
||||||
-- }
|
ProgrVP = insertAdv "even" ; ----
|
||||||
-- } ;
|
|
||||||
--
|
ImpPl1 vp =
|
||||||
-- ProgrVP = insertAdv "eben" ; ----
|
let
|
||||||
--
|
v = laten_V ;
|
||||||
-- ImpPl1 vp = {s =
|
vpi = infVP True vp ;
|
||||||
-- (mkClause "wir" {g = Fem ; n = Pl ; p = P1} vp).s !
|
vvp = insertExtrapos vpi.p3 (
|
||||||
-- MConjunct ! Pres ! Simul ! Pos ! Inv
|
insertInf vpi.p2 (
|
||||||
-- } ;
|
insertObj vpi.p1 (
|
||||||
--
|
predVGen True v))) ;
|
||||||
-- oper
|
in
|
||||||
-- geben = dirV2 (mk6V "geben" "gibt" "gib" "gab" "gäbe" "gegeben") ;
|
{s = (mkClause "we" {g = Utr ; n = Pl ; p = P1} vvp).s !
|
||||||
--}
|
Pres ! Simul ! Pos ! Inv
|
||||||
--
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,28 +28,28 @@ concrete NounDut of Noun = CatDut ** open ResDut, Prelude in {
|
|||||||
a = np.a
|
a = np.a
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- PPartNP np v2 = {
|
PPartNP np v2 = {
|
||||||
-- s = \\c => np.s ! c ++ v2.s ! VPastPart APred ; --- invar part
|
s = \\c => np.s ! c ++ v2.s ! VPerf ; -- invar part
|
||||||
-- a = np.a
|
a = np.a
|
||||||
-- } ;
|
} ;
|
||||||
--
|
|
||||||
-- AdvNP np adv = {
|
AdvNP np adv = {
|
||||||
-- s = \\c => np.s ! c ++ adv.s ;
|
s = \\c => np.s ! c ++ adv.s ;
|
||||||
-- a = np.a
|
a = np.a
|
||||||
-- } ;
|
} ;
|
||||||
--
|
|
||||||
-- DetQuantOrd quant num ord =
|
DetQuantOrd quant num ord =
|
||||||
-- let
|
let
|
||||||
-- n = num.n ;
|
n = num.n ;
|
||||||
-- a = quant.a
|
a = quant.a
|
||||||
-- in {
|
in {
|
||||||
-- s = \\g,c => quant.s ! num.isNum ! n ! g ! c ++
|
s = \\g => quant.s ! num.isNum ! n ! g ++
|
||||||
-- num.s!g!c ++ ord.s ! agrAdj g (adjfCase a c) n c ;
|
num.s ++ ord.s ! agrAdj g quant.a (NF n Nom) ;
|
||||||
-- sp = \\g,c => quant.sp ! n ! g ! c ++
|
sp = \\g => quant.sp ! n ! g ++
|
||||||
-- num.s!g!c ++ ord.s ! agrAdj g (adjfCase a c) n c ;
|
num.s ++ ord.s ! agrAdj g quant.a (NF n Nom) ;
|
||||||
-- n = n ;
|
n = n ;
|
||||||
-- a = a
|
a = a
|
||||||
-- } ;
|
} ;
|
||||||
|
|
||||||
DetQuant quant num =
|
DetQuant quant num =
|
||||||
let
|
let
|
||||||
@@ -62,12 +62,11 @@ concrete NounDut of Noun = CatDut ** open ResDut, Prelude in {
|
|||||||
a = a
|
a = a
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
--
|
PossPron p = {
|
||||||
-- PossPron p = {
|
s = \\_,n,g => p.unstressed.poss ;
|
||||||
-- s = \\_,n,g,c => p.s ! NPPoss (gennum g n) c ;
|
sp = \\n,g => p.substposs ;
|
||||||
-- sp = \\n,g,c => p.s ! NPPoss (gennum g n) c ;
|
a = Strong
|
||||||
-- a = Strong --- need separately weak for Pl ?
|
} ;
|
||||||
-- } ;
|
|
||||||
|
|
||||||
NumCard n = {s = n.s ! Utr ! Nom ; n = n.n ; isNum = True} ;
|
NumCard n = {s = n.s ! Utr ! Nom ; n = n.n ; isNum = True} ;
|
||||||
|
|
||||||
@@ -116,29 +115,29 @@ concrete NounDut of Noun = CatDut ** open ResDut, Prelude in {
|
|||||||
g = n.g
|
g = n.g
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- ComplN2 f x = {
|
ComplN2 f x = {
|
||||||
-- s = \\_,n,c => f.s ! n ! c ++ appPrep f.c2 x.s ;
|
s = \\_,nc => f.s ! nc ++ appPrep f.c2 x.s ;
|
||||||
-- g = f.g
|
g = f.g
|
||||||
-- } ;
|
} ;
|
||||||
--
|
|
||||||
-- ComplN3 f x = {
|
ComplN3 f x = {
|
||||||
-- s = \\n,c => f.s ! n ! c ++ appPrep f.c2 x.s ;
|
s = \\nc => f.s ! nc ++ appPrep f.c2 x.s ;
|
||||||
-- g = f.g ;
|
g = f.g ;
|
||||||
-- c2 = f.c3
|
c2 = f.c3
|
||||||
-- } ;
|
} ;
|
||||||
--
|
|
||||||
-- Use2N3 f = {
|
Use2N3 f = {
|
||||||
-- s = f.s ;
|
s = f.s ;
|
||||||
-- g = f.g ;
|
g = f.g ;
|
||||||
-- c2 = f.c2
|
c2 = f.c2
|
||||||
-- } ;
|
} ;
|
||||||
--
|
|
||||||
-- Use3N3 f = {
|
Use3N3 f = {
|
||||||
-- s = f.s ;
|
s = f.s ;
|
||||||
-- g = f.g ;
|
g = f.g ;
|
||||||
-- c2 = f.c3
|
c2 = f.c3
|
||||||
-- } ;
|
} ;
|
||||||
--
|
|
||||||
AdjCN ap cn =
|
AdjCN ap cn =
|
||||||
let
|
let
|
||||||
g = cn.g
|
g = cn.g
|
||||||
@@ -155,28 +154,26 @@ concrete NounDut of Noun = CatDut ** open ResDut, Prelude in {
|
|||||||
g = cn.g
|
g = cn.g
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- RelNP np rs = {
|
RelNP np rs = {
|
||||||
-- s = \\c => np.s ! c ++ "," ++ rs.s ! gennum np.a.g np.a.n ;
|
s = \\c => np.s ! c ++ "," ++ rs.s ! np.a.g ! np.a.n ;
|
||||||
-- a = np.a ;
|
a = np.a ;
|
||||||
-- isPron = False
|
isPron = False
|
||||||
-- } ;
|
} ;
|
||||||
--
|
|
||||||
-- SentCN cn s = {
|
SentCN cn s = {
|
||||||
-- s = \\a,n,c => cn.s ! a ! n ! c ++ s.s ;
|
s = \\a,nc => cn.s ! a ! nc ++ s.s ;
|
||||||
-- g = cn.g
|
g = cn.g
|
||||||
-- } ;
|
} ;
|
||||||
--
|
|
||||||
-- AdvCN cn s = {
|
AdvCN cn s = {
|
||||||
-- s = \\a,n,c => cn.s ! a ! n ! c ++ s.s ;
|
s = \\a,nc => cn.s ! a ! nc ++ s.s ;
|
||||||
-- g = cn.g
|
g = cn.g
|
||||||
-- } ;
|
} ;
|
||||||
--
|
|
||||||
-- ApposCN cn np = let g = cn.g in {
|
ApposCN cn np = let g = cn.g in {
|
||||||
-- s = \\a,n,c => cn.s ! a ! n ! c ++ np.s ! c ;
|
s = \\a,nc => cn.s ! a ! nc ++ np.s ! NPNom ;
|
||||||
-- g = g ;
|
g = g ;
|
||||||
-- isMod = cn.isMod
|
isMod = cn.isMod
|
||||||
-- } ;
|
} ;
|
||||||
--
|
|
||||||
--}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,15 +16,13 @@ concrete PhraseDut of Phrase = CatDut ** open Prelude, ResDut in
|
|||||||
UttIP ip = {s = ip.s ! NPNom} ; --- Acc also
|
UttIP ip = {s = ip.s ! NPNom} ; --- Acc also
|
||||||
UttIAdv iadv = iadv ;
|
UttIAdv iadv = iadv ;
|
||||||
UttNP np = {s = np.s ! NPNom} ;
|
UttNP np = {s = np.s ! NPNom} ;
|
||||||
-- UttVP vp = {s = useInfVP True vp} ; -- without zu
|
UttVP vp = {s = useInfVP True vp} ; -- without zu
|
||||||
UttAdv adv = adv ;
|
UttAdv adv = adv ;
|
||||||
|
|
||||||
NoPConj = {s = []} ;
|
NoPConj = {s = []} ;
|
||||||
-- PConjConj conj = ss (conj.s2) ;
|
PConjConj conj = ss (conj.s2) ;
|
||||||
--
|
|
||||||
NoVoc = {s = []} ;
|
NoVoc = {s = []} ;
|
||||||
-- VocNP np = {s = "," ++ np.s ! Nom} ;
|
VocNP np = {s = "," ++ np.s ! NPNom} ;
|
||||||
--
|
|
||||||
--}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,11 +5,10 @@ concrete RelativeDut of Relative = CatDut ** open ResDut in {
|
|||||||
|
|
||||||
lin
|
lin
|
||||||
|
|
||||||
-- RelCl cl = {
|
RelCl cl = {
|
||||||
-- s = \\m,t,a,b,_ => "derart" ++ conjThat ++ cl.s ! m ! t ! a ! b ! Sub ;
|
s = \\t,a,b,_,_ => "zodat" ++ cl.s ! t ! a ! b ! Sub
|
||||||
-- c = Nom
|
} ;
|
||||||
-- } ;
|
|
||||||
--
|
|
||||||
RelVP rp vp = {
|
RelVP rp vp = {
|
||||||
s = \\t,ant,b,g,n =>
|
s = \\t,ant,b,g,n =>
|
||||||
let
|
let
|
||||||
@@ -19,8 +18,7 @@ concrete RelativeDut of Relative = CatDut ** open ResDut in {
|
|||||||
} ;
|
} ;
|
||||||
cl = mkClause (rp.s ! g ! n) agr vp
|
cl = mkClause (rp.s ! g ! n) agr vp
|
||||||
in
|
in
|
||||||
cl.s ! t ! ant ! b ! Sub ;
|
cl.s ! t ! ant ! b ! Sub
|
||||||
c = Nom
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
RelSlash rp slash = {
|
RelSlash rp slash = {
|
||||||
@@ -29,11 +27,11 @@ concrete RelativeDut of Relative = CatDut ** open ResDut in {
|
|||||||
c = slash.c2.c
|
c = slash.c2.c
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- FunRP p np rp = {
|
FunRP p np rp = {
|
||||||
-- s = \\gn,c => np.s ! c ++ appPrep p (rp.s ! gn) ;
|
s = \\g,n => np.s ! NPNom ++ appPrep p.s (\\_ => rp.s ! g ! n) ;
|
||||||
-- a = RAg {n = np.a.n ; p = np.a.p}
|
a = RAg np.a.n np.a.p
|
||||||
-- } ;
|
} ;
|
||||||
--
|
|
||||||
IdRP = {s = relPron ; a = RNoAg} ;
|
IdRP = {s = relPron ; a = RNoAg} ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
|
|||||||
@@ -312,7 +312,10 @@ resource ResDut = ParamX ** open Prelude in {
|
|||||||
prefix = [] ;
|
prefix = [] ;
|
||||||
vtype = VAct ;
|
vtype = VAct ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
worden_V = irregVerb2 "worden" "werd" "werden" "geworden" ** {
|
||||||
|
aux = VZijn ; prefix = [] ; vtype = VAct} ;
|
||||||
|
|
||||||
Pronoun : Type = {
|
Pronoun : Type = {
|
||||||
unstressed,stressed : {nom, acc, poss : Str} ;
|
unstressed,stressed : {nom, acc, poss : Str} ;
|
||||||
substposs : Str ;
|
substposs : Str ;
|
||||||
@@ -578,30 +581,29 @@ param
|
|||||||
vp.inf ++ vp.ext
|
vp.inf ++ vp.ext
|
||||||
> ;
|
> ;
|
||||||
|
|
||||||
-- useInfVP : Bool -> VP -> Str = \isAux,vp ->
|
useInfVP : Bool -> VP -> Str = \isAux,vp ->
|
||||||
-- let vpi = infVP isAux vp in
|
let vpi = infVP isAux vp in
|
||||||
-- vpi.p1 ! agrP3 Sg ++ vpi.p3 ++ vpi.p2 ;
|
vpi.p1 ! agrP3 Sg ++ vpi.p3 ++ vpi.p2 ;
|
||||||
--
|
|
||||||
---- The nominative case is not used as reflexive, but defined here
|
reflPron : Agr => Str = table {
|
||||||
---- so that we can reuse this in personal pronouns.
|
{n = Sg ; p = P1} => "me" ;
|
||||||
---- The missing Sg "ihrer" shows that a dependence on gender would
|
{n = Sg ; p = P2} => "je" ;
|
||||||
---- be needed.
|
{n = Sg ; p = P3} => "zich" ;
|
||||||
--
|
{n = Pl ; p = P1} => "ons" ;
|
||||||
-- reflPron : Agr => Case => Str = table {
|
{n = Pl ; p = P2} => "je" ;
|
||||||
-- {n = Sg ; p = P1} => caselist "ich" "mich" "mir" "meiner" ;
|
{n = Pl ; p = P3} => "zich"
|
||||||
-- {n = Sg ; p = P2} => caselist "du" "dich" "dir" "deiner" ;
|
} ;
|
||||||
-- {g = Masc ; n = Sg ; p = P3} => caselist "er" "sich" "sich" "seiner" ;
|
|
||||||
-- {g = Fem ; n = Sg ; p = P3} => caselist "sie" "sich" "sich" "ihrer" ;
|
|
||||||
-- {g = Neutr ; n = Sg ; p = P3} => caselist "es" "sich" "sich" "seiner" ;
|
|
||||||
-- {n = Pl ; p = P1} => caselist "wir" "uns" "uns" "unser" ;
|
|
||||||
-- {n = Pl ; p = P2} => caselist "ihr" "euch" "euch" "euer" ;
|
|
||||||
-- {n = Pl ; p = P3} => caselist "sie" "sich" "sich" "ihrer"
|
|
||||||
-- } ;
|
|
||||||
|
|
||||||
conjThat : Str = "dat" ;
|
conjThat : Str = "dat" ;
|
||||||
|
|
||||||
conjThan : Str = "dan" ;
|
conjThan : Str = "dan" ;
|
||||||
|
|
||||||
|
conjAgr : Agr -> Agr -> Agr = \a,b -> {
|
||||||
|
g = Utr ; ----
|
||||||
|
n = conjNumber a.n b.n ;
|
||||||
|
p = conjPerson a.p b.p
|
||||||
|
} ;
|
||||||
|
|
||||||
-- The infinitive particle "zu" is used if and only if $vv.isAux = False$.
|
-- The infinitive particle "zu" is used if and only if $vv.isAux = False$.
|
||||||
|
|
||||||
infPart : Bool -> Str = \b -> if_then_Str b [] "te" ;
|
infPart : Bool -> Str = \b -> if_then_Str b [] "te" ;
|
||||||
|
|||||||
@@ -29,21 +29,21 @@ concrete SentenceDut of Sentence = CatDut ** open ResDut, Prelude in {
|
|||||||
vp **
|
vp **
|
||||||
{c2 = vp.c2} ;
|
{c2 = vp.c2} ;
|
||||||
|
|
||||||
-- AdvSlash slash adv = {
|
AdvSlash slash adv = {
|
||||||
-- s = \\m,t,a,b,o => slash.s ! m ! t ! a ! b ! o ++ adv.s ;
|
s = \\t,a,b,o => slash.s ! t ! a ! b ! o ++ adv.s ;
|
||||||
-- c2 = slash.c2
|
c2 = slash.c2
|
||||||
-- } ;
|
} ;
|
||||||
--
|
|
||||||
-- SlashPrep cl prep = cl ** {c2 = prep} ;
|
SlashPrep cl prep = cl ** {c2 = prep.s} ;
|
||||||
--
|
|
||||||
-- SlashVS np vs slash =
|
SlashVS np vs slash =
|
||||||
-- mkClause (np.s ! Nom) np.a
|
mkClause (np.s ! NPNom) np.a
|
||||||
-- (insertExtrapos (conjThat ++ slash.s ! Sub) (predV vs)) **
|
(insertExtrapos (conjThat ++ slash.s ! Sub) (predV vs)) **
|
||||||
-- {c2 = slash.c2} ;
|
{c2 = slash.c2} ;
|
||||||
--
|
|
||||||
-- EmbedS s = {s = conjThat ++ s.s ! Sub} ;
|
EmbedS s = {s = conjThat ++ s.s ! Sub} ;
|
||||||
-- EmbedQS qs = {s = qs.s ! QIndir} ;
|
EmbedQS qs = {s = qs.s ! QIndir} ;
|
||||||
-- EmbedVP vp = {s = useInfVP False vp} ;
|
EmbedVP vp = {s = useInfVP False vp} ;
|
||||||
|
|
||||||
UseCl t p cl = {
|
UseCl t p cl = {
|
||||||
s = \\o => t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! o
|
s = \\o => t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! o
|
||||||
@@ -61,8 +61,6 @@ concrete SentenceDut of Sentence = CatDut ** open ResDut, Prelude in {
|
|||||||
|
|
||||||
AdvS a s = {s = \\o => a.s ++ s.s ! Inv} ;
|
AdvS a s = {s = \\o => a.s ++ s.s ! Inv} ;
|
||||||
|
|
||||||
-- RelS s r = {s = \\o => s.s ! o ++ "," ++ r.s ! gennum Neutr Sg} ; --- "welches"
|
RelS s r = {s = \\o => s.s ! o ++ "," ++ r.s ! Neutr ! Sg} ;
|
||||||
--
|
|
||||||
--}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ concrete VerbDut of Verb = CatDut ** open Prelude, ResDut in {
|
|||||||
insertExtrapos vpi.p3 (
|
insertExtrapos vpi.p3 (
|
||||||
insertInf vpi.p2 (
|
insertInf vpi.p2 (
|
||||||
insertObj vpi.p1 (
|
insertObj vpi.p1 (
|
||||||
predVGen v.isAux {s = v.s ; aux = v.aux ; prefix = v.prefix ; vtype = v.vtype}))) ; ---- subtyp
|
predVGen v.isAux (v2v v)))) ; ---- subtyp
|
||||||
|
|
||||||
ComplVS v s =
|
ComplVS v s =
|
||||||
insertExtrapos (conjThat ++ s.s ! Sub) (predV v) ;
|
insertExtrapos (conjThat ++ s.s ! Sub) (predV v) ;
|
||||||
@@ -20,49 +20,49 @@ concrete VerbDut of Verb = CatDut ** open Prelude, ResDut in {
|
|||||||
insertExtrapos (q.s ! QIndir) (predV v) ;
|
insertExtrapos (q.s ! QIndir) (predV v) ;
|
||||||
ComplVA v ap = insertObj (\\ _ => ap.s ! APred) (predV v) ;
|
ComplVA v ap = insertObj (\\ _ => ap.s ! APred) (predV v) ;
|
||||||
|
|
||||||
SlashV2a v = predV {s = v.s ; aux = v.aux ; prefix = v.prefix ; vtype = v.vtype} ** {c2 = v.c2} ;
|
SlashV2a v = predV (v2v v) ** {c2 = v.c2} ;
|
||||||
--
|
|
||||||
-- Slash2V3 v np =
|
Slash2V3 v np =
|
||||||
-- insertObj (\\_ => appPrep v.c2 np.s) (predV v) ** {c2 = v.c3} ;
|
insertObj (\\_ => appPrep v.c2 np.s) (predVv v) ** {c2 = v.c3} ;
|
||||||
-- Slash3V3 v np =
|
Slash3V3 v np =
|
||||||
-- insertObj (\\_ => appPrep v.c3 np.s) (predV v) ** {c2 = v.c2} ;
|
insertObj (\\_ => appPrep v.c3 np.s) (predVv v) ** {c2 = v.c2} ;
|
||||||
--
|
|
||||||
-- SlashV2S v s =
|
SlashV2S v s =
|
||||||
-- insertExtrapos (conjThat ++ s.s ! Sub) (predV v) ** {c2 = v.c2} ;
|
insertExtrapos (conjThat ++ s.s ! Sub) (predVv v) ** {c2 = v.c2} ;
|
||||||
-- SlashV2Q v q =
|
SlashV2Q v q =
|
||||||
-- insertExtrapos (q.s ! QIndir) (predV v) ** {c2 = v.c2} ;
|
insertExtrapos (q.s ! QIndir) (predVv v) ** {c2 = v.c2} ;
|
||||||
-- SlashV2V v vp =
|
SlashV2V v vp =
|
||||||
-- let
|
let
|
||||||
-- vpi = infVP False vp
|
vpi = infVP False vp
|
||||||
-- in
|
in
|
||||||
-- insertExtrapos vpi.p3 (
|
insertExtrapos vpi.p3 (
|
||||||
-- insertInf vpi.p2 (
|
insertInf vpi.p2 (
|
||||||
-- insertObj vpi.p1 ((predV v)))) ** {c2 = v.c2} ;
|
insertObj vpi.p1 ((predVv v)))) ** {c2 = v.c2} ;
|
||||||
--
|
|
||||||
-- SlashV2A v ap =
|
SlashV2A v ap =
|
||||||
-- insertObj (\\_ => ap.s ! APred) (predV v) ** {c2 = v.c2} ;
|
insertObj (\\_ => ap.s ! APred) (predVv v) ** {c2 = v.c2} ;
|
||||||
--
|
|
||||||
ComplSlash vp np = insertObj (\\_ => appPrep vp.c2 np.s) vp ;
|
ComplSlash vp np = insertObj (\\_ => appPrep vp.c2 np.s) vp ;
|
||||||
--
|
|
||||||
-- SlashVV v vp =
|
SlashVV v vp =
|
||||||
-- let
|
let
|
||||||
-- vpi = infVP v.isAux vp
|
vpi = infVP v.isAux vp
|
||||||
-- in
|
in
|
||||||
-- insertExtrapos vpi.p3 (
|
insertExtrapos vpi.p3 (
|
||||||
-- insertInf vpi.p2 (
|
insertInf vpi.p2 (
|
||||||
-- insertObj vpi.p1 (
|
insertObj vpi.p1 (
|
||||||
-- predVGen v.isAux v))) ** {c2 = vp.c2} ;
|
predVGen v.isAux (v2v v)))) ** {c2 = vp.c2} ;
|
||||||
--
|
|
||||||
-- SlashV2VNP v np vp =
|
SlashV2VNP v np vp =
|
||||||
-- let
|
let
|
||||||
-- vpi = infVP False vp
|
vpi = infVP False vp
|
||||||
-- in
|
in
|
||||||
-- insertExtrapos vpi.p3 (
|
insertExtrapos vpi.p3 (
|
||||||
-- insertInf vpi.p2 (
|
insertInf vpi.p2 (
|
||||||
-- insertObj vpi.p1 (
|
insertObj vpi.p1 (
|
||||||
-- insertObj (\\_ => appPrep v.c2 np.s) (
|
insertObj (\\_ => appPrep v.c2 np.s) (
|
||||||
-- predV v)))) ** {c2 = v.c2} ;
|
predVv v)))) ** {c2 = v.c2} ;
|
||||||
--
|
|
||||||
UseComp comp = insertAdv (comp.s ! agrP3 Sg) (predV zijn_V) ; -- agr not used
|
UseComp comp = insertAdv (comp.s ! agrP3 Sg) (predV zijn_V) ; -- agr not used
|
||||||
CompAP ap = {s = \\_ => ap.s ! APred} ;
|
CompAP ap = {s = \\_ => ap.s ! APred} ;
|
||||||
CompNP np = {s = \\_ => np.s ! NPNom} ;
|
CompNP np = {s = \\_ => np.s ! NPNom} ;
|
||||||
@@ -70,9 +70,14 @@ concrete VerbDut of Verb = CatDut ** open Prelude, ResDut in {
|
|||||||
|
|
||||||
AdvVP vp adv = insertAdv adv.s vp ;
|
AdvVP vp adv = insertAdv adv.s vp ;
|
||||||
AdVVP adv vp = insertAdV adv.s vp ;
|
AdVVP adv vp = insertAdV adv.s vp ;
|
||||||
--
|
|
||||||
-- ReflVP vp = insertObj (\\a => appPrep vp.c2 (reflPron ! a)) vp ;
|
|
||||||
--
|
|
||||||
-- PassV2 v = insertInf (v.s ! VPastPart APred) (predV werdenPass) ;
|
|
||||||
|
|
||||||
|
ReflVP vp = insertObj (\\a => appPrep vp.c2 (\\_ => reflPron ! a)) vp ;
|
||||||
|
|
||||||
|
PassV2 v = insertInf (v.s ! VPerf) (predV worden_V) ;
|
||||||
|
|
||||||
|
---- workaround for a subtyping bug
|
||||||
|
oper
|
||||||
|
v2v : VVerb -> VVerb = \v ->
|
||||||
|
{s = v.s ; aux = v.aux ; prefix = v.prefix ; vtype = v.vtype} ;
|
||||||
|
predVv : V -> VP = \v -> predV (v2v v) ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -152,7 +152,7 @@ resource ResGer = ParamX ** open Prelude in {
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
conjAgr : Agr -> Agr -> Agr = \a,b -> {
|
conjAgr : Agr -> Agr -> Agr = \a,b -> {
|
||||||
g = Neutr ; ----
|
g = Utr ; ----
|
||||||
n = conjNumber a.n b.n ;
|
n = conjNumber a.n b.n ;
|
||||||
p = conjPerson a.p b.p
|
p = conjPerson a.p b.p
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
Reference in New Issue
Block a user