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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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