mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-06-08 06:36:32 -06:00
102 lines
2.2 KiB
Plaintext
102 lines
2.2 KiB
Plaintext
concrete QuestionDut of Question = CatDut ** open ResDut in {
|
|
|
|
|
|
flags optimize=all_subs ;
|
|
|
|
lin
|
|
|
|
QuestCl cl = {
|
|
s = \\t,a,p =>
|
|
let cls = cl.s ! t ! a ! p
|
|
in table {
|
|
QDir => cls ! Inv ;
|
|
QIndir => "of" ++ cls ! Sub
|
|
}
|
|
} ;
|
|
|
|
-- QuestVP qp vp = {
|
|
-- s = \\m,t,a,b,q =>
|
|
-- let
|
|
-- cl = (mkClause (qp.s ! Nom) (agrP3 qp.n) vp).s ! m ! t ! a ! b
|
|
-- in
|
|
-- case q of {
|
|
-- QIndir => cl ! Sub ;
|
|
-- _ => cl ! Main
|
|
-- }
|
|
-- } ;
|
|
--
|
|
-- QuestSlash ip slash = {
|
|
-- s = \\m,t,a,p =>
|
|
-- let
|
|
-- cls = slash.s ! m ! t ! a ! p ;
|
|
-- who = appPrep slash.c2 ip.s
|
|
-- in table {
|
|
-- QDir => who ++ cls ! Inv ;
|
|
-- QIndir => who ++ cls ! Sub
|
|
-- }
|
|
-- } ;
|
|
|
|
QuestIAdv iadv cl = {
|
|
s = \\t,a,p =>
|
|
let
|
|
cls = cl.s ! t ! a ! p ;
|
|
why = iadv.s
|
|
in table {
|
|
QDir => why ++ cls ! Inv ;
|
|
QIndir => why ++ cls ! Sub
|
|
}
|
|
} ;
|
|
--
|
|
-- QuestIComp icomp np = {
|
|
-- s = \\m,t,a,p =>
|
|
-- let
|
|
-- vp = predV sein_V ;
|
|
-- cls = (mkClause (np.s ! Nom) np.a vp).s ! m ! t ! a ! p ;
|
|
-- why = icomp.s ! np.a
|
|
-- in table {
|
|
-- QDir => why ++ cls ! Inv ;
|
|
-- QIndir => why ++ cls ! Sub
|
|
-- }
|
|
-- } ;
|
|
--
|
|
-- PrepIP p ip = {
|
|
-- s = appPrep p ip.s
|
|
-- } ;
|
|
--
|
|
-- AdvIP ip adv = {
|
|
-- s = \\c => ip.s ! c ++ adv.s ;
|
|
-- n = ip.n
|
|
-- } ;
|
|
--
|
|
-- IdetCN idet cn =
|
|
-- let
|
|
-- g = cn.g ;
|
|
-- n = idet.n
|
|
-- in {
|
|
-- s = \\c => idet.s ! g ! c ++ cn.s ! Weak ! n ! c ;
|
|
-- n = n
|
|
-- } ;
|
|
--
|
|
-- IdetIP idet =
|
|
-- let
|
|
-- g = Neutr ; ----
|
|
-- n = idet.n
|
|
-- in {
|
|
-- s = idet.s ! g ;
|
|
-- n = n
|
|
-- } ;
|
|
--
|
|
-- IdetQuant idet num =
|
|
-- let
|
|
-- n = num.n
|
|
-- in {
|
|
-- s = \\g,c => idet.s ! n ! g ! c ++ num.s!g!c ;
|
|
-- n = n
|
|
-- } ;
|
|
--
|
|
-- CompIAdv a = {s = \\_ => a.s} ;
|
|
--
|
|
-- CompIP ip = {s = \\_ => ip.s ! Nom} ;
|
|
|
|
}
|