mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-15 15:59:32 -06:00
81 lines
1.9 KiB
Plaintext
81 lines
1.9 KiB
Plaintext
incomplete concrete QuestionScand of Question =
|
|
CatScand ** open CommonScand, ResScand 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 => subjIf ++ cls ! Sub
|
|
}
|
|
} ;
|
|
|
|
QuestVP qp vp = {
|
|
s = \\t,a,b,q =>
|
|
let
|
|
somo = case q of {
|
|
QIndir => <"som",Sub> ;
|
|
_ => <[], Main>
|
|
} ;
|
|
cl = mkClause (qp.s ! nominative ++ somo.p1) {gn = qp.gn ; p = P3} vp
|
|
in
|
|
cl.s ! t ! a ! b ! somo.p2
|
|
} ;
|
|
|
|
QuestSlash ip slash = {
|
|
s = \\t,a,p =>
|
|
let
|
|
cls = slash.s ! t ! a ! p ;
|
|
who = slash.c2 ++ ip.s ! accusative --- stranding in ExtScand
|
|
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 = \\t,a,p =>
|
|
let
|
|
cls =
|
|
(mkClause (np.s ! nominative) np.a (predV verbBe)).s ! t ! a ! p ;
|
|
why = icomp.s ! agrAdj np.a.gn DIndef
|
|
in table {
|
|
QDir => why ++ cls ! Inv ;
|
|
QIndir => why ++ cls ! Sub
|
|
}
|
|
} ;
|
|
|
|
PrepIP p ip = {
|
|
s = p.s ++ ip.s ! accusative
|
|
} ;
|
|
|
|
AdvIP ip adv = {
|
|
s = \\c => ip.s ! c ++ adv.s ;
|
|
gn = ip.gn
|
|
} ;
|
|
|
|
IDetCN idet num ord cn = let g = cn.g in {
|
|
s = \\c =>
|
|
idet.s ! g ++ num.s ! g ++ ord.s ++ cn.s !idet.n ! idet.det ! caseNP c ;
|
|
gn = gennum g idet.n
|
|
} ;
|
|
|
|
CompIAdv a = {s = \\_ => a.s} ;
|
|
|
|
}
|