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