(Kor) Add new constructor for V2, export CaseParticle in Paradigms

This commit is contained in:
Inari Listenmaa
2020-04-03 11:57:47 +02:00
parent a18ffbe232
commit e689b1cc5a
2 changed files with 18 additions and 4 deletions
+17 -3
View File
@@ -4,11 +4,16 @@ oper
--2 Parameters
--
-- To abstract over number, valency and (some) case names,
-- To abstract over number, valency and (some) CaseParticle names,
-- we define the following identifiers. The application programmer
-- should always use these constants instead of the constructors
-- defined in $ResKor$.
CaseParticle : Type ; -- Arguments to give to V2, V3
topic : CaseParticle ; -- 은 or 는
subject : CaseParticle ; -- 이 or 가
object : CaseParticle ; -- 을 or 를
noCase : CaseParticle ; -- No case particle
--2 Nouns
@@ -36,8 +41,9 @@ oper
copula : V ; -- The copula verb ''
mkV2 : overload {
mkV2 : (plain : Str) -> V2 ; -- Regular verb. Takes plain, uninflected -다 form, object particle is 를.
mkV2 : V -> V2 ; -- Takes preconstructed V, object particle is 를.
mkV2 : (plain : Str) -> V2 ; -- Regular verb. Takes plain, uninflected -다 form, subject particle is 가/이 and object particle is 를/을.
mkV2 : V -> V2 ; -- Takes preconstructed V, subject particle is 가/이 and object particle is 를/을.
mkV2 : V -> (subj,obj : CaseParticle) -> V2 ; -- Takes preconstructed V, and subject and object particles. E.g. `mkV2 좋다_V topic subject` for "as for <SUBJ>는, <OBJ>가 is good".
} ;
-- mkV3 : overload {
@@ -91,6 +97,12 @@ oper
-- The definitions should not bother the user of the API. So they are
-- hidden from the document.
CaseParticle : Type = ResKor.NForm ;
topic = Topic ;
subject = Subject ;
object = Object ;
noCase = Bare ;
mkN = overload {
mkN : Str -> N = \s -> lin N (mkNoun s) ;
} ;
@@ -124,6 +136,8 @@ oper
mkV2 = overload {
mkV2 : (plain : Str) -> V2 = \v2 -> lin V2 (mkVerb2 v2) ;
mkV2 : V -> V2 = vtov2 ;
mkV2 : V -> (subj,obj : CaseParticle) -> V2 = \v,sc,c2 ->
vtov2 v ** {sc = sc ; c2 = c2} ;
} ;
mkV3 = overload {