concrete ConjunctionHrv of Conjunction = CatHrv ** open ResHrv, Coordination, Prelude in { lincat [Adv] = {s1,s2 : Str} ; [AP] = {s1,s2 : Gender => Number => Case => Str ; isPost : Bool} ; [NP] = {s1,s2,prep1,prep2 : Case => Str ; a : Agr} ; [S] = {s1,s2 : Str} ; [RS] = {s1,s2 : Agr => Str} ; lin BaseAdv = twoSS ; ConsAdv = consrSS comma ; BaseAP x y = twoTable3 Gender Number Case x y ** {isPost = orB x.isPost y.isPost} ; ---- should be so in Pol too ConsAP x xs = consrTable3 Gender Number Case comma x xs ** {isPost = orB x.isPost xs.isPost} ; BaseNP x y = { s1 = x.s ; s2 = y.s ; prep1 = x.prep ; prep2 = y.prep ; a = y.a } ; -- clitics disappear ---- Agr TODO ConsNP x xs = { s1 = \\c => x.s ! c ++ comma ++ xs.s1 ! c ; s2 = xs.s2 ; prep1 = \\c => x.prep ! c ++ comma ++ xs.prep1 ! c ; prep2 = xs.prep2 ; a = xs.a ---- } ; BaseS = twoSS ; ConsS = consrSS comma ; BaseRS = twoTable Agr ; ConsRS = consrTable Agr comma ; ConjAdv = conjunctDistrSS ; ConjAP conj xs = conjunctDistrTable3 Gender Number Case conj xs ** {isPost = xs.isPost} ; ConjNP conj xs = { s,clit = \\c => conj.s1 ++ xs.s1 ! c ++ conj.s2 ++ xs.s2 ! c ; prep = \\c => conj.s1 ++ xs.prep1 ! c ++ conj.s2 ++ xs.prep2 ! c ; a = xs.a ; ---- dep. on conj as well hasClit = False ; } ; ConjS = conjunctDistrSS ; ConjRS = conjunctDistrTable Agr ; }