1
0
forked from GitHub/gf-rgl

questions, relatives, numerals - most of Dutch syntax soon in place

This commit is contained in:
aarne
2009-11-11 20:34:09 +00:00
parent f4402945da
commit 57d920a6a1
12 changed files with 425 additions and 439 deletions

View File

@@ -1,42 +1,38 @@
concrete CatDut of Cat = concrete CatDut of Cat =
CommonX ** CommonX **
open ResDut, Prelude in open ResDut, Prelude in {
{
flags optimize=all_subs ; flags optimize=all_subs ;
lincat lincat
--
---- Tensed/Untensed -- Tensed/Untensed
--
S = {s : Order => Str} ; S = {s : Order => Str} ;
QS = {s : QForm => Str} ; QS = {s : QForm => Str} ;
-- RS = {s : GenNum => Str ; c : Case} ; RS = {s : Gender => Number => Str} ;
-- SSlash = {s : Order => Str} ** {c2 : Preposition} ; SSlash = {s : Order => Str} ** {c2 : Preposition} ;
--
---- Sentence -- Sentence
--
Cl = Clause ; -- {s : Tense => Anteriority => Polarity => Order => Str} ; Cl = Clause ; -- {s : Tense => Anteriority => Polarity => Order => Str} ;
-- ClSlash = { ClSlash = Clause ** {c2 : Preposition} ;
-- s : Mood => ResDut.Tense => Anteriority => Polarity => Order => Str ; Imp = {s : Polarity => ImpForm => Str} ;
-- c2 : Preposition
-- } ; -- Question
-- Imp = {s : Polarity => ImpForm => Str} ;
-- QCl = {s : Tense => Anteriority => Polarity => QForm => Str} ;
---- Question IP = {s : NPCase => Str ; n : Number} ;
-- IComp = {s : Agr => Str} ;
QCl = {s : ResDut.Tense => Anteriority => Polarity => QForm => Str} ; IDet = {s : Gender => Str ; n : Number} ;
-- IP = {s : Case => Str ; n : Number} ; IQuant = {s : Number => Gender => Str} ;
-- IComp = {s : Agr => Str} ;
-- IDet = {s : Gender => Case => Str ; n : Number} ; -- Relative
-- IQuant = {s : Number => Gender => Case => Str} ;
-- RCl = {s : Tense => Anteriority => Polarity => Gender => Number => Str} ;
---- Relative RP = {s : Gender => Number => Str ; a : RAgr} ;
--
-- RCl = {s : Mood => ResDut.Tense => Anteriority => Polarity => GenNum => Str ; c : Case} ; -- Verb
-- RP = {s : GenNum => Case => Str ; a : RAgr} ;
--
---- Verb
--
VP = ResDut.VP ; VP = ResDut.VP ;
VPSlash = ResDut.VP ** {c2 : Preposition} ; VPSlash = ResDut.VP ** {c2 : Preposition} ;
Comp = {s : Agr => Str} ; Comp = {s : Agr => Str} ;
@@ -57,50 +53,36 @@ concrete CatDut of Cat =
sp : Number => Gender => Str ; sp : Number => Gender => Str ;
a : Adjf a : Adjf
} ; } ;
-- Predet = {s : Number => Gender => Case => Str ; c : PredetCase} ; Predet = {s : Number => Gender => Str} ;
Num = {s : Str ; n : Number ; isNum : Bool} ; Num = {s : Str ; n : Number ; isNum : Bool} ;
-- Card = {s : Gender => Case => Str ; n : Number} ; Card = {s : Gender => Case => Str ; n : Number} ;
-- Ord = {s : AForm => Str} ; Ord = {s : AForm => Str} ;
--
---- Numeral -- Numeral
--
-- Numeral = {s : CardOrd => Str ; n : Number } ; Numeral = {s : CardOrd => Str ; n : Number } ;
-- Digits = {s : CardOrd => Str ; n : Number } ; Digits = {s : CardOrd => Str ; n : Number } ;
--
---- Structural -- Structural
--
Conj = {s1,s2 : Str ; n : Number} ; Conj = {s1,s2 : Str ; n : Number} ;
Subj = {s : Str} ; Subj = {s : Str} ;
Prep = {s : Str} ; Prep = {s : Str} ;
--
---- Open lexical classes, e.g. Lexicon -- Open lexical classes, e.g. Lexicon
--
V, VS, VQ, VA = ResDut.VVerb ; V, VS, VQ, VA = ResDut.VVerb ;
VV = VVerb ** {isAux : Bool} ; VV = VVerb ** {isAux : Bool} ;
V2, V2A, V2S, V2Q = VVerb ** {c2 : Preposition} ; V2, V2A, V2S, V2Q = VVerb ** {c2 : Preposition} ;
-- V2V = Verb ** {c2 : Preposition ; isAux : Bool} ; V2V = VVerb ** {c2 : Preposition ; isAux : Bool} ;
-- V3 = Verb ** {c2, c3 : Preposition} ; V3 = VVerb ** {c2, c3 : Preposition} ;
--
A = Adjective ; A = Adjective ;
-- A2 = {s : Degree => AForm => Str ; c2 : Preposition} ; A2 = Adjective ** {c2 : Preposition} ;
--
N = Noun ; N = Noun ;
N2 = {s : NForm => Str ; g : Gender} ** {c2 : Preposition} ; N2 = {s : NForm => Str ; g : Gender} ** {c2 : Preposition} ;
-- N3 = {s : Number => Case => Str ; g : Gender} ** {c2,c3 : Preposition} ; N3 = {s : NForm => Str ; g : Gender} ** {c2,c3 : Preposition} ;
PN = {s : Case => Str} ; PN = {s : NPCase => Str} ;
--
---- tense with possibility to choose conjunctive forms
--
-- Temp = {s : Str ; t : ResDut.Tense ; a : Anteriority ; m : Mood} ;
-- Tense = {s : Str ; t : ResDut.Tense ; m : Mood} ;
--
-- lin
-- TTAnt t a = {s = t.s ++ a.s ; t = t.t ; a = a.a ; m = t.m} ;
--
-- TPres = {s = [] ; t = Pres ; m = MIndic} ;
-- TPast = {s = [] ; t = Past ; m = MIndic} ; --# notpresent
-- TFut = {s = [] ; t = Fut ; m = MIndic} ; --# notpresent
-- TCond = {s = [] ; t = Cond ; m = MIndic} ; --# notpresent
--}
} }

View File

@@ -1,9 +1,9 @@
--# -path=.:../common:../abstract:../../prelude --# -path=.:../common:../abstract:../../prelude
-- work by Aarne Ranta, Andreas Priesnitz, and Henning Thielemann. -- work by Aarne Ranta
concrete LexiconDut of Lexicon = CatDut ** concrete LexiconDut of Lexicon = CatDut **
open Prelude, ParadigmsDut in { open Prelude, ParadigmsDut, IrregDut in {
flags flags
optimize=all_subs ; optimize=all_subs ;
@@ -139,7 +139,7 @@ lin
-- open_V2 = mkV2 (mkV "öffnen") ; -- open_V2 = mkV2 (mkV "öffnen") ;
-- paint_V2A = mkV2A (mkV "malen") accPrep ; -- paint_V2A = mkV2A (mkV "malen") accPrep ;
-- paper_N = mkN "Papier" "Papiere" neuter ; -- paper_N = mkN "Papier" "Papiere" neuter ;
-- paris_PN = mkPN "Paris" "Paris" ; paris_PN = mkPN "Parijs" ;
-- peace_N = mk6N "Friede" "Frieden" "Frieden" "Friedens" "Frieden" "Frieden" masculine ; -- peace_N = mk6N "Friede" "Frieden" "Frieden" "Friedens" "Frieden" "Frieden" masculine ;
-- pen_N = mkN "Bleistift" ; ---- -- pen_N = mkN "Bleistift" ; ----
-- planet_N = mkN "Planet" "Planeten" masculine ; -- planet_N = mkN "Planet" "Planeten" masculine ;
@@ -161,7 +161,7 @@ lin
-- roof_N = mkN "Dach" "Dächer" neuter ; -- roof_N = mkN "Dach" "Dächer" neuter ;
-- rubber_N = mkN "Gummi" "Gummis" neuter ; -- rubber_N = mkN "Gummi" "Gummis" neuter ;
-- run_V = zijnV (mkV "laufen" "läuft" "lief" "liefe" "gelaufen") ; -- run_V = zijnV (mkV "laufen" "läuft" "lief" "liefe" "gelaufen") ;
-- say_VS = mkVS (mkV "sagen") ; say_VS = mkVS zeggen_V ;
-- school_N = mkN "Schule"; -- school_N = mkN "Schule";
-- science_N = mkN "Wissenschaft" "Wissenschaften" feminine ; -- science_N = mkN "Wissenschaft" "Wissenschaften" feminine ;
-- sea_N = mkN "Meer" "Meere" neuter ; -- sea_N = mkN "Meer" "Meere" neuter ;
@@ -354,8 +354,8 @@ lin
-- grammar_N = mkN "Grammatik" "Grammatiken" feminine ; -- grammar_N = mkN "Grammatik" "Grammatiken" feminine ;
-- language_N = mkN "Sprache" ; -- language_N = mkN "Sprache" ;
-- rule_N = mkN "Mkel" "Mkeln" feminine ; -- rule_N = mkN "Mkel" "Mkeln" feminine ;
--
-- john_PN = mkPN "Johann" ; john_PN = mkPN "Jan" ;
-- question_N = mkN "Frage" ; -- question_N = mkN "Frage" ;
-- ready_A = mkA "fertig" ; -- ready_A = mkA "fertig" ;
-- reason_N = mkN "Grund" "Gründe" masculine ; -- reason_N = mkN "Grund" "Gründe" masculine ;

View File

@@ -15,20 +15,19 @@ concrete NounDut of Noun = CatDut ** open ResDut, Prelude in {
isPron = False isPron = False
} ; } ;
-- UsePN pn = pn ** {a = agrP3 Sg} ; UsePN pn = {s = pn.s ; a = agrP3 Sg ; isPron = False} ;
UsePron pron = { UsePron pron = {
s = table {NPNom => pron.unstressed.nom ; NPAcc => pron.unstressed.acc} ; s = table {NPNom => pron.unstressed.nom ; NPAcc => pron.unstressed.acc} ;
a = pron.a a = pron.a
} ; } ;
-- PredetNP pred np = { PredetNP pred np = {
-- s = \\c0 => s = \\c =>
-- let c = case pred.c of {NoCase => c0 ; PredCase k => k} in pred.s ! np.a.n ! np.a.g ++ np.s ! c ; ---- g
-- pred.s ! np.a.n ! Masc ! c0 ++ np.s ! c ; ---- g 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 ! VPastPart APred ; --- invar part
-- a = np.a -- a = np.a
@@ -69,21 +68,21 @@ concrete NounDut of Noun = CatDut ** open ResDut, Prelude in {
-- sp = \\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 ? -- a = Strong --- need separately weak for Pl ?
-- } ; -- } ;
--
-- NumCard n = n ** {isNum = True} ; NumCard n = {s = n.s ! Utr ! Nom ; n = n.n ; isNum = True} ;
--
NumPl = {s = []; n = Pl ; isNum = False} ; NumPl = {s = []; n = Pl ; isNum = False} ;
NumSg = {s = []; n = Sg ; isNum = False} ; NumSg = {s = []; n = Sg ; isNum = False} ;
--
-- NumDigits numeral = {s = \\g,c => numeral.s ! NCard g c; n = numeral.n } ; NumDigits numeral = {s = \\g,c => numeral.s ! NCard g c; n = numeral.n } ;
-- OrdDigits numeral = {s = \\af => numeral.s ! NOrd af} ; OrdDigits numeral = {s = \\af => numeral.s ! NOrd af} ;
--
-- NumNumeral numeral = {s = \\g,c => numeral.s ! NCard g c; n = numeral.n } ; NumNumeral numeral = {s = \\g,c => numeral.s ! NCard g c; n = numeral.n } ;
-- OrdNumeral numeral = {s = \\af => numeral.s ! NOrd af} ; OrdNumeral numeral = {s = \\af => numeral.s ! NOrd af} ;
--
-- AdNum adn num = {s = \\g,c => adn.s ++ num.s!g!c; n = num.n } ; AdNum adn num = {s = \\g,c => adn.s ++ num.s!g!c; n = num.n } ;
--
-- OrdSuperl a = {s = a.s ! Superl} ; OrdSuperl a = {s = a.s ! Superl} ;
DefArt = { DefArt = {
s = \\_,n,g => case <n,g> of {<Sg,Neutr> => "het" ; _ => "de"} ; s = \\_,n,g => case <n,g> of {<Sg,Neutr> => "het" ; _ => "de"} ;
@@ -150,12 +149,12 @@ concrete NounDut of Noun = CatDut ** open ResDut, Prelude in {
(cn.s ! a ! n) ; (cn.s ! a ! n) ;
g = g g = g
} ; } ;
--
-- RelCN cn rs = { RelCN cn rs = {
-- s = \\a,n,c => cn.s ! a ! n ! c ++ rs.s ! gennum cn.g n ; s = \\a,nc => cn.s ! a ! nc ++ rs.s ! cn.g ! (case nc of {NF n c => n}) ;
-- 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 ! gennum np.a.g np.a.n ;
-- a = np.a ; -- a = np.a ;

View File

@@ -1,90 +1,103 @@
concrete NumeralDut of Numeral = CatDut ** open MorphoDut in concrete NumeralDut of Numeral = CatDut ** open ResDut in {
{
--{ flags optimize = all_subs ;
--
--flags optimize = all_subs ; lincat
-- Digit = {s : DForm => CardOrd => Str} ;
--lincat Sub10 = {s : DForm => CardOrd => Str ; n : Number} ;
-- Digit = {s : DForm => CardOrd => Str} ; Sub100, Sub1000, Sub1000000 =
-- Sub10 = {s : DForm => CardOrd => Str ; n : Number} ; {s : CardOrd => Str ; n : Number} ;
-- Sub100, Sub1000, Sub1000000 =
-- {s : CardOrd => Str ; n : Number} ; lin
-- num x = x ;
--lin
-- num x = x ; n2 = mkDigit "twee" "twaalf" "twentig" "tweede" ;
-- n3 = mkDigit "drie" "dertien" "dertig" "derde" ;
-- n2 = mkDigit "zwei" "zwölf" "zwanzig" "zweite" ; n4 = mkDigit "vier" "veertien" "veertig" "vierde" ;
-- n3 = mkDigit "drei" "dreizehn" "dreissig" "dritte" ; n5 = mkDigit "vijf" "vijftien" "vijftig" "vifjde" ;
-- n4 = regDigit "vier" ; n6 = mkDigit "zes" "zestien" "zestig" "zeste" ;
-- n5 = regDigit "fünf" ; n7 = mkDigit "zeven" "zeventien" "zeventig" "zevende" ;
-- n6 = regDigit "sechs" ; n8 = mkDigit "acht" "achttien" "tachtig" "achtste" ;
-- n7 = mkDigit "sieben" "siebzehn" "siebzig" "siebte" ; n9 = mkDigit "negen" "negentien" "negentig" "negende" ;
-- n8 = mkDigit "acht" "achzehn" "achzig" "achte" ;
-- n9 = regDigit "neun" ; pot01 = {
-- s = \\f => table {
-- pot01 = { NCard g _ => "één" ;
-- s = \\f => table { NOrd af => (regAdjective "eerst").s ! Posit ! af
-- NCard g c => "ein" + pronEnding ! GSg g ! c ; } ;
-- NOrd af => (regA "erst").s ! Posit ! af n = Sg
-- } ; } ;
-- n = Sg pot0 d = {s = \\f,g => d.s ! f ! g ; n = Pl} ;
-- } ; pot110 = {s = cardOrd "tien" "tiende" ; n = Pl} ;
-- pot0 d = {s = \\f,g => d.s ! f ! g ; n = Pl} ; pot111 = {s = cardOrd "elf" "elfde" ; n = Pl} ;
-- pot110 = {s = cardReg "zehn"; n = Pl} ; pot1to19 d = {s = d.s ! DTeen; n = Pl} ;
-- pot111 = {s = cardReg "elf"; n = Pl} ; pot0as1 n = {s = n.s ! DUnit; n = n.n } ;
-- pot1to19 d = {s = d.s ! DTeen; n = Pl} ; pot1 d = {s = d.s ! DTen; n = Pl} ;
-- pot0as1 n = {s = n.s ! DUnit; n = n.n } ; pot1plus d e = {s = \\g => e.s ! DUnit ! invNum ++ "en" ++ d.s ! DTen ! g; n = Pl} ;
-- pot1 d = {s = d.s ! DTen; n = Pl} ; pot1as2 n = n ;
-- pot1plus d e = {s = \\g => e.s ! DUnit ! invNum ++ "und" ++ d.s ! DTen ! g; n = Pl} ; pot2 d =
-- pot1as2 n = n ; {s = \\g => d.s ! DUnit ! invNum ++ cardOrd "honderd" "honderde" ! g ; n = Pl} ;
-- pot2 d = pot2plus d e =
-- {s = \\g => d.s ! DUnit ! invNum ++ cardOrd "hundert" "hunderte" ! g ; n = Pl} ; {s = \\g => d.s ! DUnit ! invNum ++ "duizend" ++ e.s ! g ; n = Pl} ;
-- pot2plus d e = pot2as3 n = n ;
-- {s = \\g => d.s ! DUnit ! invNum ++ "hundert" ++ e.s ! g ; n = Pl} ; pot3 n =
-- pot2as3 n = n ; {s = \\g => n.s ! invNum ++ cardOrd "duizend" "duizende" ! g ; n = Pl} ;
-- pot3 n = pot3plus n m =
-- {s = \\g => n.s ! invNum ++ cardOrd "tausend" "tausendte" ! g ; n = Pl} ; ---- {s = \\g => n.s ! invNum ++ "duizend" ++ m.s ! g ; n = Pl} ;
-- pot3plus n m =
-- {s = \\g => n.s ! invNum ++ "tausend" ++ m.s ! g ; n = Pl} ;
-- lincat
-- Dig = TDigit ;
-- lincat
-- Dig = TDigit ; lin
-- IDig d = d ;
-- lin
-- IDig d = d ; IIDig d i = {
-- s = \\o => d.s ! invNum ++ i.s ! o ;
-- IIDig d i = { n = Pl
-- s = \\o => d.s ! invNum ++ i.s ! o ; } ;
-- n = Pl
-- } ; D_0 = mkDig "0" ;
-- D_1 = mk3Dig "1" "1e" Sg ;
-- ---- TODO: case endings of ordinals D_2 = mk2Dig "2" "2e" ;
-- D_0 = mkDig "0" ; D_3 = mkDig "3" ;
-- D_1 = mk3Dig "1" "1e" Sg ; D_4 = mkDig "4" ;
-- D_2 = mk2Dig "2" "2e" ; D_5 = mkDig "5" ;
-- D_3 = mkDig "3" ; D_6 = mkDig "6" ;
-- D_4 = mkDig "4" ; D_7 = mkDig "7" ;
-- D_5 = mkDig "5" ; D_8 = mkDig "8" ;
-- D_6 = mkDig "6" ; D_9 = mkDig "9" ;
-- D_7 = mkDig "7" ;
-- D_8 = mkDig "8" ; oper
-- D_9 = mkDig "9" ; mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ;
-- mkDig : Str -> TDigit = \c -> mk2Dig c (c + "e") ;
-- oper
-- mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ; mk3Dig : Str -> Str -> Number -> TDigit = \c,o,n -> {
-- mkDig : Str -> TDigit = \c -> mk2Dig c (c + "e") ; s = table {NCard _ _ => c ; NOrd _ => o} ;
-- n = n
-- mk3Dig : Str -> Str -> Number -> TDigit = \c,o,n -> { } ;
-- s = table {NCard _ _ => c ; NOrd _ => o} ;
-- n = n TDigit = {
-- } ; n : Number ;
-- s : CardOrd => Str
-- TDigit = { } ;
-- n : Number ;
-- s : CardOrd => Str LinDigit = {s : DForm => CardOrd => Str} ;
-- } ;
-- cardOrd : Str -> Str -> CardOrd => Str = \drei,dritte ->
--} table {
NCard _ _ => drei ;
NOrd a => (regAdjective dritte).s ! Posit ! a
} ;
mkDigit : (x1,_,_,x4 : Str) -> LinDigit =
\drei,dreizehn,dreissig,dritte ->
{s = table {
DUnit => cardOrd drei dritte ;
DTeen => cardOrd dreizehn (dreizehn + "de") ;
DTen => cardOrd dreissig (dreissig + "ste")
}
} ;
invNum : CardOrd = NCard Utr Nom ;
} }

View File

@@ -77,24 +77,17 @@ oper
-- --
-- mkN3 : N -> Prep -> Prep -> N3 ; -- mkN3 : N -> Prep -> Prep -> N3 ;
-- --
--
----3 Proper names and noun phrases --3 Proper names and noun phrases
----
---- Proper names, with an "s" genitive and other cases like the mkPN : overload {
---- nominative, are formed from a string. Final "s" ("Johannes-Johannes") is mkPN : Str -> PN ;
---- taken into account. } ;
--
-- mkPN : overload { mkPN = overload {
-- mkPN : Str -> PN ; mkPN : Str -> PN = \s -> lin PN {s = \\_ => s} ;
-- } ;
---- If only the genitive differs, two strings are needed.
--
-- mkPN : (nom,gen : Str) -> PN ;
--
---- In the worst case, all four forms are needed.
--
-- mkPN : (nom,acc,dat,gen : Str) -> PN
-- } ;
--2 Adjectives --2 Adjectives
@@ -199,15 +192,15 @@ oper
---- ----
---- Verbs and adjectives can take complements such as sentences, ---- Verbs and adjectives can take complements such as sentences,
---- questions, verb phrases, and adjectives. ---- questions, verb phrases, and adjectives.
--
-- mkV0 : V -> V0 ; mkV0 : V -> V0 ;
-- mkVS : V -> VS ; mkVS : V -> VS ;
-- mkV2S : V -> Prep -> V2S ; -- mkV2S : V -> Prep -> V2S ;
-- mkVV : V -> VV ; mkVV : V -> VV ;
-- mkV2V : V -> Prep -> V2V ; -- mkV2V : V -> Prep -> V2V ;
-- mkVA : V -> VA ; mkVA : V -> VA ;
-- mkV2A : V -> Prep -> V2A ; -- mkV2A : V -> Prep -> V2A ;
-- mkVQ : V -> VQ ; mkVQ : V -> VQ ;
-- mkV2Q : V -> Prep -> V2Q ; -- mkV2Q : V -> Prep -> V2Q ;
-- --
-- mkAS : A -> AS ; -- mkAS : A -> AS ;
@@ -391,19 +384,18 @@ oper
-- dirV3 v p = mkV3 v (mkPrep [] accusative) p ; -- dirV3 v p = mkV3 v (mkPrep [] accusative) p ;
-- accdatV3 v = dirV3 v (mkPrep [] dative) ; -- accdatV3 v = dirV3 v (mkPrep [] dative) ;
-- --
-- mkVS v = v ** {lock_VS = <>} ; mkVS v = lin VS v ;
-- mkVQ v = v ** {lock_VQ = <>} ; mkVQ v = lin VQ v ;
-- mkVV v = v ** {isAux = False ; lock_VV = <>} ; mkVV v = lin VV (v ** {isAux = False}) ;
--
-- V0 : Type = V ; V0 : Type = V ;
---- V2S, V2V, V2Q : Type = V2 ;
-- AS, A2S, AV : Type = A ; -- AS, A2S, AV : Type = A ;
-- A2V : Type = A2 ; -- A2V : Type = A2 ;
--
-- mkV0 v = v ** {lock_V = <>} ; mkV0 v = v ;
-- mkV2S v p = prepV2 v p ** {lock_V2S = <>} ; -- mkV2S v p = prepV2 v p ** {lock_V2S = <>} ;
-- mkV2V v p = prepV2 v p ** {isAux = False ; lock_V2V = <>} ; -- mkV2V v p = prepV2 v p ** {isAux = False ; lock_V2V = <>} ;
-- mkVA v = v ** {lock_VA = <>} ; mkVA v = lin VA v ;
-- mkV2A v p = prepV2 v p ** {lock_V2A = <>} ; -- mkV2A v p = prepV2 v p ** {lock_V2A = <>} ;
-- mkV2Q v p = prepV2 v p ** {lock_V2Q = <>} ; -- mkV2Q v p = prepV2 v p ** {lock_V2Q = <>} ;
-- --

View File

@@ -9,16 +9,16 @@ concrete PhraseDut of Phrase = CatDut ** open Prelude, ResDut in
UttS s = {s = s.s ! Main} ; UttS s = {s = s.s ! Main} ;
UttQS qs = {s = qs.s ! QDir} ; UttQS qs = {s = qs.s ! QDir} ;
-- UttImpSg pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Sg False} ; UttImpSg pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Sg False} ;
-- UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Pl False} ; UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Pl False} ;
-- UttImpPol pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Sg True} ; UttImpPol pol imp = {s = pol.s ++ imp.s ! pol.p ! ImpF Sg True} ;
--
-- UttIP ip = {s = ip.s ! Nom} ; --- Acc also UttIP ip = {s = ip.s ! NPNom} ; --- Acc also
-- UttIAdv iadv = iadv ; UttIAdv iadv = iadv ;
-- UttNP np = {s = np.s ! Nom} ; 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) ;
-- --

View File

@@ -14,27 +14,27 @@ concrete QuestionDut of Question = CatDut ** open ResDut in {
} }
} ; } ;
-- QuestVP qp vp = { QuestVP qp vp = {
-- s = \\m,t,a,b,q => s = \\t,a,b,q =>
-- let let
-- cl = (mkClause (qp.s ! Nom) (agrP3 qp.n) vp).s ! m ! t ! a ! b cl = (mkClause (qp.s ! NPNom) (agrP3 qp.n) vp).s ! t ! a ! b
-- in in
-- case q of { case q of {
-- QIndir => cl ! Sub ; QIndir => cl ! Sub ;
-- _ => cl ! Main _ => cl ! Main
-- } }
-- } ; } ;
--
-- QuestSlash ip slash = { QuestSlash ip slash = {
-- s = \\m,t,a,p => s = \\t,a,p =>
-- let let
-- cls = slash.s ! m ! t ! a ! p ; cls = slash.s ! t ! a ! p ;
-- who = appPrep slash.c2 ip.s who = appPrep slash.c2 ip.s
-- in table { in table {
-- QDir => who ++ cls ! Inv ; QDir => who ++ cls ! Inv ;
-- QIndir => who ++ cls ! Sub QIndir => who ++ cls ! Sub
-- } }
-- } ; } ;
QuestIAdv iadv cl = { QuestIAdv iadv cl = {
s = \\t,a,p => s = \\t,a,p =>
@@ -46,56 +46,56 @@ concrete QuestionDut of Question = CatDut ** open ResDut in {
QIndir => why ++ cls ! Sub QIndir => why ++ cls ! Sub
} }
} ; } ;
--
-- QuestIComp icomp np = { QuestIComp icomp np = {
-- s = \\m,t,a,p => s = \\t,a,p =>
-- let let
-- vp = predV sein_V ; vp = predV zijn_V ;
-- cls = (mkClause (np.s ! Nom) np.a vp).s ! m ! t ! a ! p ; cls = (mkClause (np.s ! NPNom) np.a vp).s ! t ! a ! p ;
-- why = icomp.s ! np.a why = icomp.s ! np.a
-- in table { in table {
-- QDir => why ++ cls ! Inv ; QDir => why ++ cls ! Inv ;
-- QIndir => why ++ cls ! Sub QIndir => why ++ cls ! Sub
-- } }
-- } ; } ;
--
-- PrepIP p ip = { PrepIP p ip = {
-- s = appPrep p ip.s s = appPrep p.s ip.s
-- } ; } ;
--
-- AdvIP ip adv = { AdvIP ip adv = {
-- s = \\c => ip.s ! c ++ adv.s ; s = \\c => ip.s ! c ++ adv.s ;
-- n = ip.n n = ip.n
-- } ; } ;
--
-- IdetCN idet cn = IdetCN idet cn =
-- let let
-- g = cn.g ; g = cn.g ;
-- n = idet.n n = idet.n
-- in { in {
-- s = \\c => idet.s ! g ! c ++ cn.s ! Weak ! n ! c ; s = \\c => idet.s ! g ++ cn.s ! Weak ! NF n Nom ;
-- n = n n = n
-- } ; } ;
--
-- IdetIP idet = IdetIP idet =
-- let let
-- g = Neutr ; ---- g = Neutr ; ----
-- n = idet.n n = idet.n
-- in { in {
-- s = idet.s ! g ; s = \\_ => idet.s ! g ;
-- n = n n = n
-- } ; } ;
--
-- IdetQuant idet num = IdetQuant idet num =
-- let let
-- n = num.n n = num.n
-- in { in {
-- s = \\g,c => idet.s ! n ! g ! c ++ num.s!g!c ; s = \\g => idet.s ! n ! g ++ num.s ;
-- n = n n = n
-- } ; } ;
--
-- CompIAdv a = {s = \\_ => a.s} ; CompIAdv a = {s = \\_ => a.s} ;
--
-- CompIP ip = {s = \\_ => ip.s ! Nom} ; CompIP ip = {s = \\_ => ip.s ! NPNom} ;
} }

View File

@@ -1,52 +1,46 @@
concrete RelativeDut of Relative = CatDut ** open ResDut in concrete RelativeDut of Relative = CatDut ** open ResDut in {
{
--{
-- flags optimize=all_subs ;
-- flags optimize=all_subs ;
-- lin
-- lin
--
-- RelCl cl = { -- RelCl cl = {
-- s = \\m,t,a,b,_ => "derart" ++ conjThat ++ cl.s ! m ! t ! a ! b ! Sub ; -- s = \\m,t,a,b,_ => "derart" ++ conjThat ++ cl.s ! m ! t ! a ! b ! Sub ;
-- c = Nom -- c = Nom
-- } ; -- } ;
-- --
-- RelVP rp vp = { RelVP rp vp = {
-- s = \\m,t,ant,b,gn => s = \\t,ant,b,g,n =>
-- let let
-- agr = case rp.a of { agr = case rp.a of {
-- RNoAg => agrP3 (numGenNum gn) ; RNoAg => agrgP3 g n ;
-- RAg a => a ** {g = Neutr} RAg rn p => {g = Utr ; n = rn ; p = p} ---- g
-- } ; } ;
-- cl = mkClause (rp.s ! gn ! Nom) agr vp cl = mkClause (rp.s ! g ! n) agr vp
-- in in
-- cl.s ! m ! t ! ant ! b ! Sub ; cl.s ! t ! ant ! b ! Sub ;
-- c = Nom c = Nom
-- } ; } ;
--
-- RelSlash rp slash = { RelSlash rp slash = {
-- s = \\m,t,a,p,gn => s = \\t,a,p,g,n =>
-- appPrep slash.c2 (rp.s ! gn) ++ slash.s ! m ! t ! a ! p ! Sub ; appPrep slash.c2 (\\_ => rp.s ! g ! n) ++ slash.s ! t ! a ! p ! Sub ;
-- 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 = \\gn,c => np.s ! c ++ appPrep p (rp.s ! gn) ;
-- a = RAg {n = np.a.n ; p = np.a.p} -- a = RAg {n = np.a.n ; p = np.a.p}
-- } ; -- } ;
-- --
-- IdRP = {s = relPron ; a = RNoAg} ; IdRP = {s = relPron ; a = RNoAg} ;
--
-- oper oper
-- relPron : GenNum => Case => Str = \\gn,c => relPron : Gender => Number => Str = \\g,n =>
-- case <gn,c> of { case <g,n> of {
-- <GSg Fem,Gen> => "deren" ; <Neutr,Sg> => "dat" ;
-- <GSg g,Gen> => "dessen" ; _ => "die"
-- <GPl,Dat> => "denen" ; } ;
-- <GPl,Gen> => "deren" ;
-- _ => artDef ! gn ! c
-- } ;
--
--}
} }

View File

@@ -372,22 +372,18 @@ param
<Past|Cond,Pl,_> => VPastPl <Past|Cond,Pl,_> => VPastPl
} ; } ;
-- --2 For $Relative$
---- Main clause mood: "es sei, es wäre, es werde sein".
---- Not relevant for $Fut$. --- param
-- RAgr = RNoAg | RAg Number Person ;
-- Mood = MIndic | MConjunct ;
-- --2 For $Numeral$
----2 For $Relative$
-- param
-- RAgr = RNoAg | RAg {n : Number ; p : Person} ; CardOrd = NCard Gender Case | NOrd AForm ;
-- DForm = DUnit | DTeen | DTen ;
----2 For $Numeral$
-- --2 Transformations between parameter types
-- CardOrd = NCard Gender Case | NOrd AForm ;
-- DForm = DUnit | DTeen | DTen ;
--
----2 Transformations between parameter types
oper Agr : Type = {g : Gender ; n : Number ; p : Person} ; oper Agr : Type = {g : Gender ; n : Number ; p : Person} ;
@@ -487,15 +483,15 @@ param
ext = vp.ext ext = vp.ext
} ; } ;
-- insertAdV : Str -> VP -> VP = \adv,vp -> { insertAdV : Str -> VP -> VP = \adv,vp -> {
-- s = vp.s ; s = vp.s ;
-- a1 = \\a => adv ++ vp.a1 ! a ; -- immer nicht a1 = \\a => adv ++ vp.a1 ! a ; -- immer nicht
-- n2 = vp.n2 ; n2 = vp.n2 ;
-- a2 = vp.a2 ; a2 = vp.a2 ;
-- isAux = vp.isAux ; isAux = vp.isAux ;
-- inf = vp.inf ; inf = vp.inf ;
-- ext = vp.ext ext = vp.ext
-- } ; } ;
insertAdv : Str -> VP -> VP = \adv,vp -> { insertAdv : Str -> VP -> VP = \adv,vp -> {
s = vp.s ; s = vp.s ;
@@ -601,16 +597,22 @@ param
-- {n = Pl ; p = P2} => caselist "ihr" "euch" "euch" "euer" ; -- {n = Pl ; p = P2} => caselist "ihr" "euch" "euch" "euer" ;
-- {n = Pl ; p = P3} => caselist "sie" "sich" "sich" "ihrer" -- {n = Pl ; p = P3} => caselist "sie" "sich" "sich" "ihrer"
-- } ; -- } ;
--
-- conjThat : Str = "daß" ; conjThat : Str = "dat" ;
--
-- conjThan : Str = "als" ; conjThan : Str = "dan" ;
--
---- 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 [] "zu" ; infPart : Bool -> Str = \b -> if_then_Str b [] "te" ;
--
--} mkDet : Str -> Str -> Number -> {s,sp : Gender => Str ; n : Number ; a : Adjf} =
\deze,dit,n -> {
s = \\g => case <n,g> of {<Sg,Neutr> => dit ; _ => deze} ;
sp = \\g => case <n,g> of {<Sg,Neutr> => dit ; _ => deze} ;
n = n ;
a = Weak
} ;
mkQuant : Str -> Str -> { mkQuant : Str -> Str -> {
s : Bool => Number => Gender => Str ; s : Bool => Number => Gender => Str ;
@@ -623,6 +625,16 @@ param
a = Weak a = Weak
} ; } ;
mkPredet : Str -> Str -> {s : Number => Gender => Str} =
\deze,dit -> {
s = \\n,g => case <n,g> of {<Sg,Neutr> => dit ; _ => deze}
} ;
mkNP : Str -> Gender -> Number -> {s : NPCase => Str ; a : Agr} = \s,g,n -> {
s = \\_ => s ;
a = agrgP3 g n ;
} ;
auxVV : VVerb -> VVerb ** {isAux : Bool} = \v -> v ** {isAux = True} ; auxVV : VVerb -> VVerb ** {isAux : Bool} = \v -> v ** {isAux = True} ;
} }

View File

@@ -5,30 +5,30 @@ concrete SentenceDut of Sentence = CatDut ** open ResDut, Prelude in {
lin lin
PredVP np vp = mkClause (np.s ! NPNom) np.a vp ; PredVP np vp = mkClause (np.s ! NPNom) np.a vp ;
--
-- PredSCVP sc vp = mkClause sc.s (agrP3 Sg) vp ; PredSCVP sc vp = mkClause sc.s (agrP3 Sg) vp ;
--
-- ImpVP vp = let vps = useVP vp in { ImpVP vp = {
-- s = \\pol,n => s = \\pol,im =>
-- let let
-- ps = case n of { ps = case im of {
-- ImpF _ True => <P3,"Sie",True> ; -- setzen Sie sich ImpF n True => <VImp3,"u",n> ;
-- _ => <P2,[],False> ImpF n False => <VImp2,[],n> ---- also plural?
-- } ; } ;
-- agr = {g = Fem ; n = numImp n ; p = ps.p1} ; --- g does not matter agr = {g = Utr ; n = ps.p3 ; p = P2} ; ---- P2? -- g does not matter
-- verb = vps.s ! False ! agr ! VPImperat ps.p3 ; verb = vp.s.s ! ps.p1 ;
-- inf = vp.inf ++ verb.inf ; inf = vp.inf ;
-- in in
-- verb.fin ++ 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
-- } ; } ;
--
-- SlashVP np vp = SlashVP np vp =
-- mkClause mkClause
-- (np.s ! Nom) np.a (np.s ! NPNom) np.a
-- 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 = \\m,t,a,b,o => slash.s ! m ! t ! a ! b ! o ++ adv.s ;
-- c2 = slash.c2 -- c2 = slash.c2
@@ -51,14 +51,13 @@ concrete SentenceDut of Sentence = CatDut ** open ResDut, Prelude in {
UseQCl t p cl = { UseQCl t p cl = {
s = \\q => t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! q s = \\q => t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! q
} ; } ;
-- UseRCl t p cl = { UseRCl t p cl = {
-- s = \\r => t.s ++ p.s ++ cl.s ! t.m ! t.t ! t.a ! p.p ! r ; s = \\g,n => t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! g ! n
-- c = cl.c } ;
-- } ; UseSlash t p cl = {
-- UseSlash 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.m ! t.t ! t.a ! p.p ! o ; c2 = cl.c2
-- c2 = cl.c2 } ;
-- } ;
AdvS a s = {s = \\o => a.s ++ s.s ! Inv} ; AdvS a s = {s = \\o => a.s ++ s.s ! Inv} ;

View File

@@ -10,7 +10,7 @@ concrete StructuralDut of Structural = CatDut, Prelude **
above_Prep = mkPrep "boven" ; above_Prep = mkPrep "boven" ;
after_Prep = mkPrep "na" ; after_Prep = mkPrep "na" ;
-- all_Predet = {s = appAdj (regA "all") ; c = NoCase} ; all_Predet = mkPredet "alle" "alle" ; ----
-- almost_AdA, almost_AdN = ss "fast" ; -- almost_AdA, almost_AdN = ss "fast" ;
-- although_Subj = ss "obwohl" ; -- although_Subj = ss "obwohl" ;
always_AdV = ss "altijd" ; always_AdV = ss "altijd" ;
@@ -31,9 +31,9 @@ concrete StructuralDut of Structural = CatDut, Prelude **
-- VHaben) ; -- VHaben) ;
-- during_Prep = mkPrep "während" Gen ; -- during_Prep = mkPrep "während" Gen ;
-- either7or_DConj = sd2 "entweder" "oder" ** {n = Sg} ; -- either7or_DConj = sd2 "entweder" "oder" ** {n = Sg} ;
-- everybody_NP = nameNounPhrase {s = caselist "jeder" "jeden" "jedem" "jedes"} ; everybody_NP = mkNP "alle" Utr Pl ; ----
-- every_Det = detLikeAdj Sg "jed" ; every_Det = mkDet "elke" "elk" Sg ; ----
-- everything_NP = nameNounPhrase {s = caselist "alles" "alles" "allem" "alles"} ; everything_NP = mkNP "alles" Neutr Sg ; ----
everywhere_Adv = ss "overal" ; everywhere_Adv = ss "overal" ;
-- few_Det = detLikeAdj Pl "wenig" ; -- few_Det = detLikeAdj Pl "wenig" ;
------ first_Ord = {s = (regA "erst").s ! Posit} ; ------ first_Ord = {s = (regA "erst").s ! Posit} ;
@@ -59,9 +59,8 @@ concrete StructuralDut of Structural = CatDut, Prelude **
must_VV = auxVV (mkV "moeten" "moest" "gemoete") ; must_VV = auxVV (mkV "moeten" "moest" "gemoete") ;
-- only_Predet = {s = \\_,_,_ => "nur" ; c = NoCase} ; only_Predet = {s = \\_,_ => "slechts"} ;
-- no_Utt = ss "nein" ; no_Utt = ss "neen" ;
-----b no_Phr = ss "nein" ;
on_Prep = mkPrep "op" ; on_Prep = mkPrep "op" ;
or_Conj = {s1 = [] ; s2 = "of" ; n = Sg} ; or_Conj = {s1 = [] ; s2 = "of" ; n = Sg} ;
-- otherwise_PConj = ss "sonst" ; -- otherwise_PConj = ss "sonst" ;
@@ -71,7 +70,7 @@ concrete StructuralDut of Structural = CatDut, Prelude **
-- quite_Adv = ss "ziemlich" ; -- quite_Adv = ss "ziemlich" ;
she_Pron = mkPronoun "ze" "haar" "haar" "zij" "haar" "haar" "haare" Utr Sg P3 ; she_Pron = mkPronoun "ze" "haar" "haar" "zij" "haar" "haar" "haare" Utr Sg P3 ;
-- so_AdA = ss "so" ; so_AdA = ss "zo" ;
-- somebody_NP = nameNounPhrase {s = caselist "jemand" "jemanden" "jemandem" "jemands"} ; -- somebody_NP = nameNounPhrase {s = caselist "jemand" "jemanden" "jemandem" "jemands"} ;
-- somePl_Det = detLikeAdj Pl "einig" ; -- somePl_Det = detLikeAdj Pl "einig" ;
-- someSg_Det = { -- someSg_Det = {
@@ -101,20 +100,20 @@ concrete StructuralDut of Structural = CatDut, Prelude **
want_VV = auxVV (mkV "wil" "wil" "willen" "wou" "wouden" "gewild") ; want_VV = auxVV (mkV "wil" "wil" "willen" "wou" "wouden" "gewild") ;
we_Pron = mkPronoun "we" "ons" "ons" "wij" "ons" "onze" "onze" Utr Sg P3 ; ---- we_Pron = mkPronoun "we" "ons" "ons" "wij" "ons" "onze" "onze" Utr Sg P3 ; ----
--
-- whatSg_IP = {s = caselist "was" "was" "was" "wessen" ; n = Sg} ; ---- whatSg_IP = {s = \\_ => "wat" ; n = Sg} ;
-- whatPl_IP = {s = caselist "was" "was" "was" "wessen" ; n = Pl} ; ---- whatPl_IP = {s = \\_ => "wat" ; n = Pl} ;
--
when_IAdv = ss "wanneer" ; when_IAdv = ss "wanneer" ;
-- when_Subj = ss "wenn" ; -- when_Subj = ss "wenn" ;
where_IAdv = ss "waar" ; where_IAdv = ss "waar" ;
-- which_IQuant = {s = \\n => (detLikeAdj n "welch").s} ; which_IQuant = mkPredet "welke" "welk" ;
--
-- whoSg_IP = {s = caselist "wer" "wen" "wem" "wessen" ; n = Sg} ; whoSg_IP = {s = \\_ => "wie" ; n = Sg} ;
-- whoPl_IP = {s = caselist "wer" "wen" "wem" "wessen" ; n = Pl} ; whoPl_IP = {s = \\_ => "wie" ; n = Pl} ;
-- why_IAdv = ss "warum" ; why_IAdv = ss "waarom" ;
-- without_Prep = mkPrep "ohne" Acc ; without_Prep = mkPrep "zonder" ;
-- with_Prep = mkPrep "mit" Dat ; with_Prep = mkPrep "met" ;
youSg_Pron = mkPronoun "je" "je" "je" "jij" "jou" "je" "jouwe" Utr Sg P2 ; youSg_Pron = mkPronoun "je" "je" "je" "jij" "jou" "je" "jouwe" Utr Sg P2 ;
-- youPl_Pron = mkPronPers "ihr" "euch" "euch" "eurer" "euer" Fem Pl P2 ; ---- poss -- youPl_Pron = mkPronPers "ihr" "euch" "euch" "eurer" "euer" Fem Pl P2 ; ---- poss
-- youPol_Pron = mkPronPers "Sie" "Sie" "Ihnen" "Ihrer" "Ihr" Fem Pl P3 ; -- youPol_Pron = mkPronPers "Sie" "Sie" "Ihnen" "Ihrer" "Ihr" Fem Pl P3 ;

View File

@@ -14,12 +14,12 @@ concrete VerbDut of Verb = CatDut ** open Prelude, ResDut in {
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 {s = v.s ; aux = v.aux ; prefix = v.prefix ; vtype = v.vtype}))) ; ---- subtyp
-- ComplVS v s = ComplVS v s =
-- insertExtrapos (conjThat ++ s.s ! Sub) (predV v) ; insertExtrapos (conjThat ++ s.s ! Sub) (predV v) ;
-- ComplVQ v q = ComplVQ v q =
-- 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 {s = v.s ; aux = v.aux ; prefix = v.prefix ; vtype = v.vtype} ** {c2 = v.c2} ;
-- --
-- Slash2V3 v np = -- Slash2V3 v np =
@@ -65,18 +65,14 @@ concrete VerbDut of Verb = CatDut ** open Prelude, ResDut in {
-- --
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 ! Nom} ; CompNP np = {s = \\_ => np.s ! NPNom} ;
CompAdv a = {s = \\_ => a.s} ; CompAdv a = {s = \\_ => a.s} ;
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 ; -- ReflVP vp = insertObj (\\a => appPrep vp.c2 (reflPron ! a)) vp ;
-- --
-- PassV2 v = insertInf (v.s ! VPastPart APred) (predV werdenPass) ; -- PassV2 v = insertInf (v.s ! VPastPart APred) (predV werdenPass) ;
--
-----b UseVS, UseVQ = \v -> v ** {c2 = noPreposition Acc} ;
--
--}
} }