Dutch syntax complete (but not checked)

This commit is contained in:
aarne
2009-11-17 10:29:33 +00:00
parent 8ed9fe442d
commit 200b1d5473
11 changed files with 309 additions and 320 deletions

View File

@@ -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
} ;
}

View File

@@ -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} ;
}

View File

@@ -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} ;
}

View File

@@ -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
} ;
}

View File

@@ -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
} ;
}

View File

@@ -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} ;
}

View File

@@ -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

View File

@@ -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" ;

View File

@@ -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} ;
}

View File

@@ -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) ;
}

View File

@@ -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
} ;