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 ("") (Ag qp.n P3) 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.subj ++ slash.c2.s ++ ip.s ++ slash.c2.ra ++ slash.vp ! t ! p ! ODir; -- order of whome and john needs to be changed -- AR 18/9/2017 now changed by making ClSlash discontinuous }; QuestIAdv iadv cl = { s = \\t,p,_ => iadv.s ++ cl.s ! t ! p ! ODir; }; QuestIComp icomp np = let cl = mkSClause (np.s ! Bare ++ icomp.s) np.a (predV beVerb); 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 ! idet.n ! Bare ; True => idet.s ++ cn.s ! Sg ! Bare} ; 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 } ; }