(Som) Make relational nouns into Prep w/ possPrep

This commit is contained in:
Inari Listenmaa
2019-08-27 12:32:42 +02:00
parent db8356aa49
commit bcb4812f10
6 changed files with 74 additions and 34 deletions
+26 -8
View File
@@ -1,4 +1,4 @@
resource ParadigmsSom = open CatSom, ResSom, ParamSom, Prelude in {
resource ParadigmsSom = open CatSom, ResSom, ParamSom, NounSom, Prelude in {
oper
@@ -104,17 +104,19 @@ oper
mkPrep = overload {
mkPrep : Str -> CatSom.Prep = \s ->
lin Prep ((ResSom.mkPrep s s s s s s) ** {
c2=noPrep ; sii,dhex,berri=[]}) ;
emptyPrep ** (ResSom.mkPrep s s s s s s) ; -- ** {
-- c2=noPrep ; sii,berri=[] ; dhex = \\_=> [] ; isPoss=False}) ;
mkPrep : (x1,_,_,_,_,x6 : Str) -> CatSom.Prep = \a,b,c,d,e,f ->
lin Prep ((ResSom.mkPrep a b c d e f) ** {
c2=noPrep ; sii,dhex,berri=[]}) ;
emptyPrep ** (ResSom.mkPrep a b c d e f) ; --
-- c2=noPrep ; sii,berri=[] ; dhex = \\_=> [] ; isPoss=False}) ;
mkPrep : Preposition -> CatSom.Prep = \p ->
lin Prep ((prep p) ** {sii,dhex,berri=[]}) ;
emptyPrep ** (prep p) ; -- ** {sii,berri=[] ; dhex = \\_=> [] ; isPoss=False}) ;
mkPrep : CatSom.Prep -> (x1,x2,x3 : Str) -> CatSom.Prep = \p,s,t,u ->
p ** {berri = s ; sii = t ; dhex = u} ;
p ** {berri = s ; sii = t ; dhex = \\_ => u} ;
} ;
possPrep : N -> CatSom.Prep ; -- Nouns like dhex that are used with possessive suffix to form adverbials
-- mkConj : (_,_ : Str) -> Number -> Conj = \s1,s2,num ->
-- lin Conj { s = s1 ; s2 = s2 } ;
@@ -125,7 +127,7 @@ oper
berri = s ;
c2 = noPrep ;
np = {s = [] ; a = P3_Prep} ;
sii,dhex = []
sii,dhex,miscAdv = []
} ;
mkAdV : Str -> AdV = \s -> lin AdV {s = s} ;
@@ -216,6 +218,22 @@ oper
mkV3 : (sug : Str) -> (_,_ : Preposition) -> V3 = \s,p,q -> lin V3 (regV s ** {c2 = p ; c3 = q}) ;
mkV3 : V -> (_,_ : Preposition) -> V2 = \v,p,q -> lin V3 (v ** {c2 = p ; c3 = q}) ;
} ;
possPrep : N -> CatSom.Prep = \dhex -> emptyPrep ** {
dhex = \\agr =>
let qnt = PossPron (pronTable ! agr) ;
num = getNum agr ;
art = gda2da dhex.gda ! Sg ;
det = qnt.s ! art ! Abs ; -- this includes BIND
in dhex.s ! Def Sg ++ det
} ;
emptyPrep : CatSom.Prep = lin Prep {
sii,berri,miscAdv = [] ;
dhex = \\_ => [] ;
s = \\_ => [] ;
c2 = noPrep ;
} ;
--------------------------------------------------------------------------------
}