(Kor) Add new constructor for N + new words

This commit is contained in:
Inari Listenmaa
2020-04-08 21:04:57 +02:00
parent f39662af62
commit ebbade4f0a
3 changed files with 22 additions and 11 deletions

View File

@@ -59,7 +59,7 @@ lin bread_N = mkN "빵" ;
-- lin camera_N = mkN "" ; -- lin camera_N = mkN "" ;
-- lin cap_N = mkN "" ; -- lin cap_N = mkN "" ;
-- lin car_N = mkN "" ; lin car_N = mkN "자동차" "대" ;
-- lin carpet_N = mkN "" ; -- lin carpet_N = mkN "" ;
lin cat_N = mkN "고양이" ; lin cat_N = mkN "고양이" ;
-- lin ceiling_N = mkN "" ; -- lin ceiling_N = mkN "" ;
@@ -258,7 +258,7 @@ lin now_Adv = mkAdv "지금" ;
-- lin paris_PN = mkPN "Paris" ; -- lin paris_PN = mkPN "Paris" ;
-- lin peace_N = mkN "" ; -- lin peace_N = mkN "" ;
-- lin pen_N = mkN "" ; -- lin pen_N = mkN "" ;
lin person_N = mkN "사람" ; lin person_N = mkN "사람" "명" ;
-- lin planet_N = mkN "" ; -- lin planet_N = mkN "" ;
-- lin plastic_N = mkN "" ; -- lin plastic_N = mkN "" ;
-- lin play_V = mkV "" ; -- lin play_V = mkV "" ;
@@ -314,7 +314,7 @@ lin see_V2 = mkV2 "보다" ;
-- lin sharp_A = mkA "" ; -- lin sharp_A = mkA "" ;
-- lin sheep_N = mkN "" fem ; -- lin sheep_N = mkN "" fem ;
-- lin ship_N = mkN "" ; -- lin ship_N = mkN "" ;
lin shirt_N = mkN "셔츠" ; lin shirt_N = mkN "셔츠" "벌" ;
-- lin shoe_N = mkN "" ; -- lin shoe_N = mkN "" ;
-- lin shop_N = mkN "" ; -- lin shop_N = mkN "" ;
lin short_A = mkA "키가" small_A ; -- "height is small" lin short_A = mkA "키가" small_A ; -- "height is small"

View File

@@ -15,11 +15,16 @@ oper
object : CaseParticle ; -- 을 or 를 object : CaseParticle ; -- 을 or 를
noCase : CaseParticle ; -- No case particle noCase : CaseParticle ; -- No case particle
NumOrigin : Type ; -- Arguments to give to N
nativeKorean : NumOrigin ; -- Native Korean variant of numerals: 하나, 둘, 셋 , …
sinoKorean : NumOrigin ; -- Sino-Korean variant of numerals: 일, 이, 삼
--2 Nouns --2 Nouns
mkN : overload { mkN : overload {
mkN : (noun : Str) -> N ; -- Predictable nouns with classifier 개 mkN : (noun : Str) -> N ; -- Predictable nouns with classifier 개. When quantified by a numeral, the numeral is of native Korean origin: 하나/둘/셋 , not 일/이/삼.
mkN : (noun,counter : Str) -> N ; -- Noun and classifier given as arguments. mkN : (noun,counter : Str) -> N ; -- Noun and classifier given as arguments. Takes numerals of native Korean origin.
mkN : (noun,counter : Str) -> NumOrigin -> N ; -- Noun, classifier and origin of numerals. E.g. `mkN "사람" "명" nativeKorean`
} ; } ;
--2 Adjectives --2 Adjectives
@@ -114,15 +119,20 @@ oper
object = Object ; object = Object ;
noCase = Bare ; noCase = Bare ;
NumOrigin : Type = ResKor.NumOrigin ;
nativeKorean = NK ;
sinoKorean = SK ;
mkN = overload { mkN = overload {
mkN : Str -> N = \s -> lin N (mkNoun s) ; mkN : Str -> N = \s -> lin N (mkNoun s) ;
mkN : (noun,counter : Str) -> N = \n,c -> mkN : (noun,counter : Str) -> N = \n,c -> mkNCounter n c nativeKorean ;
let noun : Noun = mkNoun n ; mkN : (noun,counter : Str) -> NumOrigin -> N = mkNCounter
counter : Counter = mkCounter c ;
in lin N (noun ** {c = counter}) ;
} ; } ;
mkNCounter : (noun,counter : Str) -> NumOrigin -> N = \n,c,o ->
let noun : Noun = mkNoun n ;
counter : Counter = mkCounter c o ;
in lin N (noun ** {c = counter}) ;
mkN2 = overload { mkN2 = overload {
mkN2 : Str -> N2 = \s -> lin N2 (mkNoun s) ; mkN2 : Str -> N2 = \s -> lin N2 (mkNoun s) ;

View File

@@ -13,8 +13,9 @@ oper
origin = NK origin = NK
} ; } ;
mkCounter : Str -> Counter = \s -> baseCounter ** { mkCounter : Str -> NumOrigin -> Counter = \s,o -> baseCounter ** {
s = s ; s = s ;
origin = o ;
} ; } ;
BaseNoun : Type = { BaseNoun : Type = {