(Som) Remove Impers_Prep and put it in PrepCombination

This commit is contained in:
Inari Listenmaa
2019-07-25 18:41:16 +03:00
parent 8c8612b7d7
commit e5aa8a6499
3 changed files with 43 additions and 53 deletions

View File

@@ -103,10 +103,10 @@ oper
mkPrep = overload {
mkPrep : Str -> CatSom.Prep = \s ->
lin Prep ((ResSom.mkPrep s s s s s s s) ** {
lin Prep ((ResSom.mkPrep s s s s s s) ** {
c2=noPrep ; sii,dhex,berri=[]}) ;
mkPrep : (x1,_,_,_,_,_,x7 : Str) -> CatSom.Prep = \a,b,c,d,e,f,g ->
lin Prep ((ResSom.mkPrep a b c d e f g) ** {
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=[]}) ;
mkPrep : Preposition -> CatSom.Prep = \p ->
lin Prep ((prep p) ** {sii,dhex,berri=[]}) ;

View File

@@ -141,7 +141,6 @@ param
| Sg2_Prep
| Pl1_Prep Inclusion
| Pl2_Prep
| Impers_Prep
| Reflexive_Prep
| P3_Prep ;
@@ -160,7 +159,6 @@ oper
agr2pagr : Agreement -> PrepAgr = \a -> case a of {
Sg1 => Sg1_Prep ;
Sg2 => Sg2_Prep ;
Impers => Impers_Prep ;
Pl1 i => Pl1_Prep i ;
Pl2 => Pl2_Prep ;
_ => P3_Prep
@@ -196,7 +194,7 @@ param
Preposition = U | Ku | Ka | La | NoPrep ;
PrepCombination = Ugu | Uga | Ula | Kaga | Kula | Kala
| Passive | Lagu | Laga -- TODO all combinations with impersonal la
| Passive | Lagu | Laga | Loo | Lala -- TODO all combinations with impersonal la
| Single Preposition ;
oper
@@ -206,6 +204,7 @@ oper
<True,NoPrep,NoPrep> => Passive ;
<True,Ku,NoPrep> => Lagu ;
<True,Ka,NoPrep> => Laga ;
<True,U,NoPrep> => Loo ;
<True,p,_> => Single p ; -- TODO all combinations
<False,_,_> => case <x,y> of {
<U,U|Ku> => Ugu ;

View File

@@ -324,7 +324,7 @@ oper
Prep : Type = {s : PrepAgr => Str} ;
mkPrep : (x1,_,_,_,_,_,x7 : Str) -> Prep = \ku,ii,kuu,noo,idiin,isku,loo -> {
mkPrep : (x1,_,_,_,_,x6 : Str) -> Prep = \ku,ii,kuu,noo,idiin,isku -> {
s = table {
P3_Prep => ku ;
Sg1_Prep => ii ;
@@ -332,72 +332,63 @@ oper
Pl2_Prep => idiin ;
Pl1_Prep Excl => noo ;
Pl1_Prep Incl => "i" + noo ;
Reflexive_Prep => isku ;
Impers_Prep => loo
Reflexive_Prep => isku
}
} ;
prep : Preposition -> (Prep ** {c2 : Preposition}) = \p -> prepTable ! p ** {c2 = p} ;
prepTable : Preposition => Prep = table {
Ku => mkPrep "ku" "igu" "kugu" "nagu" "idinku" "isku" "lagu" ;
Ka => mkPrep "ka" "iga" "kaa" "naga" "idinka" "iska" "laga" ;
La => mkPrep "la" "ila" "kula" "nala" "idinla" "isla" "lala" ;
U => mkPrep "u" "ii" "kuu" "noo" "idiin" "is_u_???:TODO" "loo" ;
NoPrep => mkPrep [] "i" "ku" "na" "idin" "is" "la"
Ku => mkPrep "ku" "igu" "kugu" "nagu" "idinku" "isku" ;
Ka => mkPrep "ka" "iga" "kaa" "naga" "idinka" "iska" ;
La => mkPrep "la" "ila" "kula" "nala" "idinla" "isla" ;
U => mkPrep "u" "ii" "kuu" "noo" "idiin" "isu" ;
_ => mkPrep [] "i" "ku" "na" "idin" "is"
} ;
prepCombTable : PrepAgr => PrepCombination => Str = table {
Sg1_Prep => table {
Ugu => "iigu" ; Uga => "iiga" ;
Ula => "iila" ; Kaga => "igaga" ;
Kula => "igula" ; Kala => "igala" ;
Passive => "la i" ;
Ugu => "iigu" ; Uga => "iiga" ; Ula => "iila" ;
Kaga => "igaga" ; Kula => "igula" ; Kala => "igala" ;
Passive => "la i" ; Loo => "la ii" ; Lala => "la ila" ;
Lagu => "laygu" ; Laga => "layga" ;
Single p => (prepTable ! p).s ! Sg1_Prep } ;
Sg2_Prep => table { Ugu => "kuugu" ; Uga => "kaaga" ;
Ula => "kuula" ; Kaga => "kaaga" ;
Kula => "kugula" ; Kala => "kaala" ;
Passive => "lagu" ;
Sg2_Prep => table { Ugu => "kuugu" ; Uga => "kaaga" ; Ula => "kuula" ;
Kaga => "kaaga" ; Kula => "kugula" ; Kala => "kaala" ;
Passive => "lagu" ; Loo => "laguu" ; Lala => "lagula" ;
Lagu => "lagugu" ; Laga => "lagaa" ;
Single p => (prepTable ! p).s ! Sg2_Prep } ;
Pl1_Prep Excl =>
table { Ugu => "noogu" ; Uga => "nooga" ;
Ula => "noola" ; Kaga => "nagaga" ;
Kula => "nagula" ; Kala => "nagala" ;
Passive => "nala" ;
table { Ugu => "noogu" ; Uga => "nooga" ; Ula => "noola" ;
Kaga => "nagaga" ; Kula => "nagula" ; Kala => "nagala" ;
Passive => "nala" ; Loo => "???" ; Lala => "???" ;
Lagu => "nalagu" ; Laga => "nalaga" ;
Single p => (prepTable ! p).s ! Pl1_Prep Excl } ;
Pl1_Prep Incl =>
table { Ugu => "inoogu" ; Uga => "inooga" ;
Ula => "inoola" ; Kaga => "inagaga" ;
Kula => "inagula" ; Kala => "inagala" ;
Passive => "inala" ;
table { Ugu => "inoogu" ; Uga => "inooga" ; Ula => "inoola" ;
Kaga => "inagaga" ; Kula => "inagula" ; Kala => "inagala" ;
Passive => "inala" ; Loo => "???" ; Lala => "???" ;
Lagu => "inalagu" ; Laga => "inalaga" ;
Single p => (prepTable ! p).s ! Pl1_Prep Incl } ;
Pl2_Prep => table { Ugu => "idiinku" ; Uga => "idiinka" ;
Ula => "idiinla" ; Kaga => "idinkaga" ;
Kula => "idinkula" ; Kala => "idinkala" ;
Passive => "laydin" ;
Pl2_Prep => table { Ugu => "idiinku" ; Uga => "idiinka" ; Ula => "idiinla" ;
Kaga => "idinkaga" ; Kula => "idinkula" ; Kala => "idinkala" ;
Passive => "laydin" ; Loo => "laydiin" ; Lala => "laydinla" ;
Lagu => "laydinku" ; Laga => "laydinka" ;
Single p => (prepTable ! p).s ! Pl2_Prep } ;
Impers_Prep =>
table { Ugu => "loogu" ; Uga => "looga" ;
Ula => "loola" ; Kaga => "lagaga" ;
Kula => "lagula" ; Kala => "lagala" ;
Passive => "la" ;
Lagu => "lagu" ; Laga => "laga" ; -- TODO check these two
Single p => (prepTable ! p).s ! Impers_Prep } ;
-- Impers_Prep => -- TODO: put these later into other tables
-- table { Ugu => "loogu" ; Uga => "looga" ;
-- Ula => "loola" ; Kaga => "lagaga" ;
-- Kula => "lagula" ; Kala => "lagala" ;
-- Passive => "la" ;
-- Lagu => "lagu" ; Laga => "laga" ; } ;
Reflexive_Prep => -- TODO check every form
table { Ugu => "isugu" ; Uga => "isuga" ;
Ula => "isula" ; Kaga => "iskaga" ;
Kula => "iskula" ; Kala => "iskala" ;
Passive => "lays" ;
table { Ugu => "isugu" ; Uga => "isuga" ; Ula => "isula" ;
Kaga => "iskaga" ; Kula => "iskula" ; Kala => "iskala" ;
Passive => "lays" ; Loo => "???" ; Lala => "???" ;
Lagu => "laysku" ; Laga => "layska" ;
Single p => (prepTable ! p).s ! Reflexive_Prep } ;
a => table { Ugu => "ugu" ; Uga => "uga" ;
Ula => "ula" ; Kaga => "kaga" ;
Kula => "kula" ; Kala => "kala" ;
Passive => "la" ;
a => table { Ugu => "ugu" ; Uga => "uga" ; Ula => "ula" ;
Kaga => "kaga" ; Kula => "kula" ; Kala => "kala" ;
Passive => "la" ; Loo => "loo" ; Lala => "lala" ;
Lagu => "lagu" ; Laga => "laga" ;
Single p => (prepTable ! p).s ! a }
} ;
@@ -776,8 +767,8 @@ oper
subjpron : Str = if_then_Str np.isPron (subj.s ! Nom) np.empty ;
obj : {p1,p2 : Str} =
let o : {p1,p2 : Str} = vp.comp ! subj.a ;
bind : Str = case <isP3 vp.obj2.a, vp.c2> of {
<True,NoPrep> => [] ;
bind : Str = case <vp.isPassive,vp.obj2.a, vp.c2, vp.pred> of {
<False,P3_Prep,NoPrep,NoPred> => [] ;
_ => BIND } ;
in case p of {
Pos => o ;