mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-29 18:08:55 -06:00
Icelandic added to RGL by Bjarki Traustason
This commit is contained in:
92
src/icelandic/QuestionIce.gf
Normal file
92
src/icelandic/QuestionIce.gf
Normal file
@@ -0,0 +1,92 @@
|
||||
concrete QuestionIce of Question = CatIce ** open ResIce, Prelude in {
|
||||
|
||||
lin
|
||||
QuestCl cl = {
|
||||
s = \\ten,ant,pol => table {
|
||||
QDir => cl.s ! ten ! ant ! pol ! OQuestion ;
|
||||
QIndir => "ef" ++ cl.s ! ten ! ant ! pol ! ODir
|
||||
}
|
||||
} ;
|
||||
|
||||
QuestVP ip vp =
|
||||
let
|
||||
cl = mkClause (ip.s ! Masc ! Nom) vp {g = Masc; n = ip.n; p = P3}
|
||||
|
||||
in {s = \\ten,ant,pol,_ => cl.s ! ten ! ant ! pol ! ODir} ;
|
||||
|
||||
QuestSlash ip cls = {
|
||||
s = \\ten,ant,pol,_ => ip.s ! Masc ! Nom ++ cls.s ! ten ! ant ! pol ! ODir ++ cls.c2.s
|
||||
} ;
|
||||
|
||||
QuestIComp icomp np =
|
||||
let
|
||||
cl = mkClause (np.s ! NCase Nom) (predV verbBe) np.a ;
|
||||
why = icomp.s ! np.a.n ! np.a.g ! Nom
|
||||
in {
|
||||
s = \\ten,ant,pol => table {
|
||||
QDir => why ++ cl.s ! ten ! ant ! pol ! OQuestion ;
|
||||
QIndir => why ++ cl.s ! ten ! ant ! pol ! ODir
|
||||
}
|
||||
} ;
|
||||
|
||||
QuestIAdv adv cl = {
|
||||
s = \\ten,ant,pol => table {
|
||||
QDir => adv.s ++ cl.s ! ten ! ant ! pol ! OQuestion ;
|
||||
QIndir => adv.s ++ "ef" ++ cl.s ! ten ! ant ! pol ! ODir
|
||||
}
|
||||
} ;
|
||||
|
||||
IdetCN idet cn = {
|
||||
s = \\_,c => idet.s ! cn.g ! c ++ cn.s ! idet.n ! Free ! Weak ! c ;
|
||||
n = idet.n
|
||||
} ;
|
||||
|
||||
IdetIP idet = {
|
||||
s = \\g,c => idet.s ! g ! c ;
|
||||
n = idet.n
|
||||
} ;
|
||||
|
||||
AdvIP ip adv = {
|
||||
s = \\g,c => ip.s ! g ! c ++ adv.s ;
|
||||
n = ip.n
|
||||
} ;
|
||||
|
||||
IdetQuant iquant num = {
|
||||
s = \\g,c => iquant.s ! num.n ! g ! c ++ num.s ! g ! c ;
|
||||
n = num.n
|
||||
} ;
|
||||
|
||||
-- for feminine and neuter version, see Extra
|
||||
PrepIP prep ip = {
|
||||
s = prep.s ++ ip.s ! Masc ! prep.c
|
||||
} ;
|
||||
|
||||
AdvIAdv iadv adv = {s = iadv.s ++ adv.s} ;
|
||||
|
||||
CompIAdv iadv = {s = \\_,_,_ => iadv.s} ;
|
||||
|
||||
CompIP ip = {s = \\_,_,_ => ip.s ! Masc ! Nom} ;
|
||||
|
||||
lincat
|
||||
QVP = ResIce.VP ;
|
||||
lin
|
||||
ComplSlashIP vps ip = {
|
||||
s = vps.s ;
|
||||
indObj = vps.indObj ;
|
||||
dirObj = \\a => ip.s ! a.g ! vps.c2.c ++ vps.dirObj ! a ;
|
||||
p = vps.p ;
|
||||
a2 = vps.a2 ;
|
||||
indShift = vps.indShift ;
|
||||
dirShift = vps.dirShift
|
||||
} ;
|
||||
|
||||
AdvQVP vp iadv = vp ** {dirObj = \\a => vp.dirObj ! a ++ iadv.s} ;
|
||||
|
||||
AddAdvQVP qvp iadv = qvp ** {dirObj = \\a => qvp.dirObj ! a ++ iadv.s} ;
|
||||
|
||||
QuestQVP ip vp =
|
||||
let
|
||||
cl = mkClause (ip.s ! Masc ! Nom) vp {g = Masc; n = ip.n; p = P3}
|
||||
in { s = \\ten,ant,pol,_ => cl.s ! ten ! ant ! pol ! ODir } ;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user