forked from GitHub/gf-rgl
@@ -1,11 +1,4 @@
|
|||||||
concrete NounPor of Noun = CatPor ** NounRomance with
|
concrete NounPor of Noun = CatPor ** NounRomance with
|
||||||
(ResRomance = ResPor) ** open Prelude, PhonoPor in {
|
(ResRomance = ResPor) ** open Prelude, PhonoPor in {
|
||||||
|
|
||||||
lin
|
|
||||||
-- not implemented for romance languages, maybe because it can't
|
|
||||||
-- be done elegantly?
|
|
||||||
CountNP det np = heavyNPpol np.isNeg
|
|
||||||
{s = \\c => det.s ! np.a.g ! c ++ (np.s ! c).ton ;
|
|
||||||
a = np.a ** {n = det.n} } ;
|
|
||||||
|
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -180,8 +180,15 @@ incomplete concrete NounRomance of Noun =
|
|||||||
g = cn.g ;
|
g = cn.g ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- PartNP and CounNP missing: how to define 'of' in the functor?
|
PartNP cn np = {
|
||||||
|
s = \\n => cn.s ! n ++ appCompl {s = [] ; c = genitive ; isDir = False} np ;
|
||||||
|
g = cn.g ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
CountNP det np = heavyNPpol np.isNeg
|
||||||
|
{s = \\c => det.s ! np.a.g ! c ++ (np.s ! genitive).ton ;
|
||||||
|
a = np.a ** {n = det.n} } ;
|
||||||
|
|
||||||
AdjDAP det ap = {
|
AdjDAP det ap = {
|
||||||
s = \\g => det.s ! g ++ ap.s ! AF g det.n ;
|
s = \\g => det.s ! g ++ ap.s ! AF g det.n ;
|
||||||
n = det.n ;
|
n = det.n ;
|
||||||
|
|||||||
@@ -77,7 +77,6 @@ oper
|
|||||||
|
|
||||||
oper
|
oper
|
||||||
|
|
||||||
|
|
||||||
predV : Verb -> VP = \verb ->
|
predV : Verb -> VP = \verb ->
|
||||||
let
|
let
|
||||||
typ = verb.vtyp ;
|
typ = verb.vtyp ;
|
||||||
@@ -111,16 +110,9 @@ oper
|
|||||||
ext = vp.ext ;
|
ext = vp.ext ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
insertComplement : (Agr => Str) -> VP -> VP = \co,vp -> {
|
insertComplement : (Agr => Str) -> VP -> VP ;
|
||||||
s = vp.s ;
|
insertComplement co vp = vp ** {
|
||||||
agr = vp.agr ;
|
|
||||||
clit1 = vp.clit1 ;
|
|
||||||
clit2 = vp.clit2 ;
|
|
||||||
clit3 = vp.clit3 ;
|
|
||||||
isNeg = vp.isNeg ; --- can be in compl as well
|
|
||||||
neg = vp.neg ;
|
|
||||||
comp = \\a => vp.comp ! a ++ co ! a ;
|
comp = \\a => vp.comp ! a ++ co ! a ;
|
||||||
ext = vp.ext ;
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
@@ -141,16 +133,10 @@ oper
|
|||||||
comp = \\a => vp.comp ! a ++ co ;
|
comp = \\a => vp.comp ! a ++ co ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
insertAdV : Str -> VP -> VP = \co,vp -> {
|
insertAdV : Str -> VP -> VP ;
|
||||||
s = vp.s ;
|
insertAdV co vp = vp ** {
|
||||||
agr = vp.agr ;
|
neg = \\b => let vpn = vp.neg ! b
|
||||||
clit1 = vp.clit1 ;
|
in {p1 = vpn.p1 ; p2 = vpn.p2 ++ co}
|
||||||
clit2 = vp.clit2 ;
|
|
||||||
clit3 = vp.clit3 ;
|
|
||||||
isNeg = vp.isNeg ;
|
|
||||||
neg = \\b => let vpn = vp.neg ! b in {p1 = vpn.p1 ; p2 = vpn.p2 ++ co} ;
|
|
||||||
comp = vp.comp ;
|
|
||||||
ext = vp.ext ;
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
insertClit3 : Str -> VP -> VP = \co,vp -> {
|
insertClit3 : Str -> VP -> VP = \co,vp -> {
|
||||||
|
|||||||
@@ -105,6 +105,10 @@ incomplete concrete VerbRomance of Verb =
|
|||||||
|
|
||||||
AdVVP adv vp = insertAdV adv.s vp ;
|
AdVVP adv vp = insertAdV adv.s vp ;
|
||||||
|
|
||||||
|
AdvVPSlash vps adv = vps ** insertAdv adv.s vps ;
|
||||||
|
|
||||||
|
AdVVPSlash adv vps = vps ** insertAdV adv.s vps ;
|
||||||
|
|
||||||
PassV2 v = insertComplement
|
PassV2 v = insertComplement
|
||||||
(\\a => let agr = complAgr a in v.s ! VPart agr.g agr.n) (predV auxPassive) ;
|
(\\a => let agr = complAgr a in v.s ! VPart agr.g agr.n) (predV auxPassive) ;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user