1
0
forked from GitHub/gf-rgl

(Som) Quants, Dets + more morphophonological rules

This commit is contained in:
Inari Listenmaa
2019-05-31 13:10:03 +02:00
parent 485912d78b
commit c9cc093b05
7 changed files with 212 additions and 97 deletions
+31 -2
View File
@@ -30,6 +30,7 @@ oper
ku : Preposition ;
la : Preposition ;
u : Preposition ;
noPrep : Preposition ;
--2 Nouns
@@ -41,6 +42,12 @@ oper
--mkN : N -> Gender -> N ; -- Otherwise predictable but not gender (TODO does this even happen?)
} ;
mkN2 : overload {
mkN2 : Str -> N2 ; -- Predictable N2, no preposition
mkN2 : Str -> Preposition -> N2 ; -- Predictable N2, given preposition
mkN2 : N -> Preposition -> N2 -- N2 out of noun and preposition
} ;
mkPN : overload {
mkPN : Str -> PN ; -- Proper noun, default agr. P3 Sg Masc.
mkPN : Str -> Agr -> PN -- Proper noun, another agr.
@@ -50,7 +57,7 @@ oper
mkA : overload {
mkA : (yar : Str) -> A ;
mkA : (sg,pl : Str) -> A
mkA : (sg,pl : Str) -> A
} ;
-- mkA2 : Str -> Prep -> A2 ;
@@ -72,6 +79,12 @@ oper
mkV2 : V -> Preposition -> V2 ; -- Already constructed verb with preposition
} ;
mkV3 : overload {
mkV3 : (sug : Str) -> V3 ; -- Predictable verb: imperative form, no preposition
mkV3 : (sug : Str) -> (_,_ : Preposition) -> V2 ; -- Regular verb, imperative and preposition
mkV3 : V -> (_,_ : Preposition) -> V2 ; -- Already constructed verb with preposition
} ;
-- TODO: actual constructors
-- mkVA : Str -> VA = \s -> lin VA (mkVerb s) ;
--
@@ -138,6 +151,7 @@ oper
ku = ResSom.ku ;
la = ResSom.la ;
u = ResSom.u ;
noPrep = ResSom.noPrep ;
------------------------
mkN = overload {
@@ -147,8 +161,17 @@ oper
--mkN : N -> Gender -> N = \n,g -> n ** {g = g }
} ;
shortPossN : N -> N -- force N to take short form of possessive suffix, e.g. family members
= \n -> n ** {shortPoss = True} ;
mkN2 = overload {
mkN2 : Str -> N2 = \s -> lin N2 (mkN1 s ** {c2 = noPrep}) ;
mkN2 : Str -> Preposition -> N2 = \s,p -> lin N2 (mkN1 s ** {c2 = p}) ;
mkN2 : N -> Preposition -> N2 = \n,p -> lin N2 (n ** {c2=p})
} ;
mkPN = overload {
mkPN : Str -> PN = \s -> lin PN (mkPNoun s sgMasc) ;
mkPN : Str -> PN = \s -> lin PN (mkPNoun s sgMasc) ;
mkPN : Str -> Agr -> PN = \s,a -> lin PN (mkPNoun s a)
} ;
@@ -178,6 +201,12 @@ oper
mkV2 : Str -> Preposition -> V2 = \s,p -> lin V2 (regV s ** {c2 = p}) ;
mkV2 : V -> Preposition -> V2 = \v,p -> lin V2 (v ** {c2 = p}) ;
} ;
mkV3 = overload {
mkV3 : (sug : Str) -> V3 = \s -> lin V3 (regV s ** {c2,c3 = noPrep}) ;
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}) ;
} ;
--------------------------------------------------------------------------------
}