Files
gf-rgl/src/ancient_greek/RelativeGrc.gf
2016-05-25 12:35:37 +00:00

57 lines
1.8 KiB
Plaintext

concrete RelativeGrc of Relative = CatGrc ** open ResGrc in {
flags optimize=all_subs ;
lin
-- RelCl cl = {
-- s = \\t,a,p,_ => "such" ++ "that" ++ cl.s ! t ! a ! p ! ODir ;
-- c = Nom
-- } ;
RelVP rp vp = {
-- s = \\t,ant,b,ag =>
s = \\t,b,agr => -- TODO: anteriority, tense/vtense
let
cl = mkClause (rp.s ! (genderAgr agr) ! numberAgr agr ! Nom) agr vp
in
-- cl.s ! t ! ant ! b ! ODir ;
cl.s ! t ! b ! SVO ; --ODir ;
c = Nom
} ;
-- Pied piping: "at which we are looking".
RelSlash rp slash = {
-- s = \\t,a,p,agr =>
-- slash.c2 ++ rp.s ! RPrep (fromAgr agr).g ++ slash.s ! t ! a ! p ! ODir ;
s = \\t,p,agr => -- TODO: anteriority, tense/vtense
slash.c2.s
++ rp.s ! (genderAgr agr) ! (numberAgr agr) ! (slash.c2.c)
++ slash.s ! t ! p ! OSV
;
c = Acc -- ??
} ;
-- FunRP : Prep -> NP -> RP -> RP ; -- the mother of whom
-- FunRP p np rp = {
-- s = \\c => np.s ! Acc ++ p.s ++ rp.s ! RPrep (fromAgr np.a).g ;
-- a = RAg np.a
-- } ;
IdRP = { s = \\g,n,c => relPron ! n ! g ! c } ;
oper
relPron : Number => Gender => Case => Str = -- BR 69
table { Sg => table { Masc => cases "o('s*" "o('n" "oy(~" "w|(~" ;
Fem => cases "h('" "h('n" "h(~s*" "h|(~" ;
Neutr=> cases "o('" "o('" "oy(~" "w|(~"
} ;
Pl | Dl => -- are there dual forms ??
table { Masc => cases "oi('" "oy('s*" "w(~n" "oi(~s*" ;
Fem => cases "ai('" "a('s*" "w(~n" "ai(~s*" ;
Neutr=> cases "a('" "a('" "w(~n" "oi(~s*"
}
} ;
}