Files
gf-core/lib/src/hungarian/ExtraHun.gf
2012-03-30 09:22:52 +00:00

165 lines
4.3 KiB
Plaintext

concrete ExtraHun of ExtraHunAbs = CatHun **
open ResHun, Coordination, Prelude, MorphoHun, ParadigmsHun in
{
--{
--
-- lin
-- GenNP np = {s = \\_,_ => np.s ! npGen ; sp = \\_,_,_ => np.s ! npGen} ;
-- GenIP ip = {s = \\_ => ip.s ! NCase Gen} ;
-- GenRP nu cn = {
-- s = \\c => "whose" ++ nu.s ! Nom ++
-- case c of {
-- RC _ (NCase Gen) => cn.s ! nu.n ! Gen ;
-- _ => cn.s ! nu.n ! Nom
-- } ;
-- a = RAg (agrP3 Sg)
-- } ;
--
-- ComplBareVS v s = insertObj (\\_ => s.s) (predV v) ;
--
-- StrandRelSlash rp slash = {
-- s = \\t,a,p,ag =>
-- rp.s ! RC (fromAgr ag).g NPAcc ++ slash.s ! t ! a ! p ! ODir ++ slash.c2 ;
-- c = NPAcc
-- } ;
-- EmptyRelSlash slash = {
-- s = \\t,a,p,_ => slash.s ! t ! a ! p ! ODir ++ slash.c2 ;
-- c = NPAcc
-- } ;
--
-- StrandQuestSlash ip slash =
-- {s = \\t,a,b,q =>
-- (mkQuestion (ss (ip.s ! NPAcc)) slash).s ! t ! a ! b ! q ++ slash.c2
-- };
--
-- lincat
-- VPI = {s : VPIForm => Agr => Str} ;
-- [VPI] = {s1,s2 : VPIForm => Agr => Str} ;
--
-- lin
-- BaseVPI = twoTable2 VPIForm Agr ;
-- ConsVPI = consrTable2 VPIForm Agr comma ;
--
-- MkVPI vp = {
-- s = \\v,a => vp.ad ++ vp.inf ++ vp.s2 ! a
-- } ;
-- ConjVPI = conjunctDistrTable2 VPIForm Agr ;
-- ComplVPIVV vv vpi =
------ insertObj (\\a => infVP vv.typ vpi a) (predVV vv) ;
-- let isAux = case vv.typ of {VVAux => True ; _ => False} in
-- insertObj (\\a => (if_then_Str isAux [] "to") ++ vpi.s ! VPIInf ! a) (predVV vv) ;
--
-- lin
-- that_RP =
-- { s = table {
-- RC _ (NCase Gen) => "whose" ;
-- RC _ _ => "that" ;
-- _ => "that" ---- "in that" ?
---- RPrep Neutr => "which" ;
---- RPrep _ => "whom"
-- } ;
-- a = RNoAg
-- } ;
--
-- each_Det = mkDeterminer Sg "each" ;
-- any_Quant = mkQuant "any" "any" ;
--
---- for VP conjunction
--
-- param
-- VPIForm = VPIInf | VPIPPart ;
--
-- lincat
-- VPS = {s : Agr => Str} ;
-- [VPS] = {s1,s2 : Agr => Str} ;
--
-- lin
-- BaseVPS = twoTable Agr ;
-- ConsVPS = consrTable Agr comma ;
--
-- PredVPS np vpi = {s = np.s ! npNom ++ vpi.s ! np.a} ;
--
-- MkVPS t p vp = {
-- s = \\a =>
-- let
-- verb = vp.s ! t.t ! t.a ! p.p ! ODir ! a ;
-- verbf = verb.aux ++ verb.adv ++ verb.fin ++ verb.inf ;
-- in t.s ++ p.s ++ vp.ad ++ verbf ++ vp.s2 ! a
-- } ;
--
-- ConjVPS = conjunctDistrTable Agr ;
--
-- ICompAP ap = {s = "how" ++ ap.s ! agrP3 Sg} ; ---- IComp should have agr!
--
-- IAdvAdv adv = {s = "how" ++ adv.s} ;
--
-- PartVP vp = {
-- s = \\a => vp.ad ++ vp.prp ++ vp.s2 ! a ;
-- isPre = False ---- depends on whether there are complements
-- } ;
--
-- EmbedPresPart vp = {s = infVP VVPresPart vp (agrP3 Sg)} ; --- agr
--
-- UttVPShort vp = {s = infVP VVAux vp (agrP3 Sg)} ;
--
-- do_VV = {
-- s = table {
-- VVF VInf => ["do"] ;
-- VVF VPres => "does" ;
-- VVF VPPart => ["done"] ; ----
-- VVF VPresPart => ["doing"] ;
-- VVF VPast => ["did"] ; --# notpresent
-- VVPastNeg => ["didn't"] ; --# notpresent
-- VVPresNeg => "doesn't"
-- } ;
-- typ = VVAux
-- } ;
--
--
--lin
-- UncNeg = {s = [] ; p = CNeg False} ;
--
-- PassVPSlash vps =
-- let
-- be = predAux auxBe ;
-- ppt = vps.ptp
-- in {
-- s = be.s ;
-- prp = be.prp ;
-- ptp = be.ptp ;
-- inf = be.inf ;
-- ad = vps.ad ;
-- s2 = \\a => ppt ++ vps.s2 ! a ---- order
-- } ;
--
--------------
----- obsolete: use UncNeg : Pol
--
-- UncNegCl t p cl = {
-- s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! unc p.p ! ODir
-- } ;
-- UncNegQCl t p cl = {
-- s = \\q => t.s ++ p.s ++ cl.s ! t.t ! t.a ! unc p.p ! q
-- } ;
-- UncNegRCl t p cl = {
-- s = \\r => t.s ++ p.s ++ cl.s ! t.t ! t.a ! unc p.p ! r ;
-- c = cl.c
-- } ;
--
-- UncNegImpSg p imp = {s = p.s ++ imp.s ! unc p.p ! ImpF Sg False} ;
-- UncNegImpPl p imp = {s = p.s ++ imp.s ! unc p.p ! ImpF Pl False} ;
--
-- CompoundCN a b = {s = \\n,c => a.s ! Sg ! Nom ++ b.s ! n ! c ; g = b.g} ;
--
-- oper
-- unc : CPolarity -> CPolarity = \x -> case x of {
-- CNeg _ => CNeg False ;
-- _ => x
-- } ;
---------
--
--
--}
}