concrete QuestionPes of Question = CatPes ** open ResPes, Prelude in { flags optimize=all_subs ; coding = utf8; lin QuestCl cl = { s = \\t,p,qf => case qf of { QDir => cl.s ! t ! p ! OQuest; QIndir => cl.s ! t! p ! ODir } }; QuestVP qp vp = let cl = mkSClause ("") (AgPes qp.n PPers3) vp; -- qp1 = qp.s; -- qp2 = qp.s ! Obl ++ "nE" in { s = \\t,p,o => qp.s ++ cl.s ! t ! p ! ODir } ; -- _ => qp1 ++ cl.s ! t ! p ! ODir -- } QuestSlash ip slash = { s = \\t,p,o => slash.c2.s ++ ip.s ++ slash.c2.ra ++ slash.s ! t ! p ! ODir; -- order of whome and john needs to be changed }; QuestIAdv iadv cl = { s = \\t,p,_ => iadv.s ++ cl.s ! t ! p ! ODir; }; QuestIComp icomp np = let cl = mkSClause (np.s ! NPC bEzafa ++ icomp.s) np.a (predAux auxBe); in { s = \\t,p,qf => case qf of { QDir => cl.s ! t ! p ! ODir; QIndir => cl.s ! t! p ! ODir } }; PrepIP p ip = {s = p.s ++ ip.s } ; AdvIP ip adv = { s = ip.s ++ adv.s ; n = ip.n; } ; IdetCN idet cn = { s = case idet.isNum of {False => idet.s ++ cn.s ! bEzafa ! idet.n ; True => idet.s ++ cn.s ! bEzafa ! Sg} ; n = idet.n; } ; IdetIP idet = idet ; IdetQuant iqant num = { s = iqant.s ++ num.s ; n = num.n ; isNum = True } ; CompIAdv a = a ; CompIP p = ss p.s ; AdvIAdv i a = {s = a.s ++ i.s } ; }