(Kor) Add a separate module for handling Hangul trarnsformations

This commit is contained in:
Inari Listenmaa
2020-03-22 08:06:39 +01:00
parent c31c00dd83
commit 5322b9d90a
3 changed files with 862 additions and 21 deletions

844
src/korean/Hangul.gf Normal file
View File

@@ -0,0 +1,844 @@
resource Hangul = open Prelude in {
oper
v : pattern Str = #("가" | "까" | "나" | "다" | "따" | "라" | "마" | "바" | "빠" | "사" | "싸" | "아" | "자" | "짜" | "차" | "카" | "타" | "파" | "하" |
"개" | "깨" | "내" | "대" | "때" | "래" | "매" | "배" | "빼" | "새" | "쌔" | "애" | "재" | "째" | "채" | "캐" | "태" | "패" | "해" |
"갸" | "꺄" | "냐" | "댜" | "땨" | "랴" | "먀" | "뱌" | "뺘" | "샤" | "쌰" | "야" | "쟈" | "쨔" | "챠" | "캬" | "탸" | "퍄" | "햐" |
"걔" | "꺠" | "냬" | "댸" | "떄" | "럐" | "먜" | "뱨" | "뺴" | "섀" | "썌" | "얘" | "쟤" | "쨰" | "챼" | "컈" | "턔" | "퍠" | "햬" |
"거" | "꺼" | "너" | "더" | "떠" | "러" | "머" | "버" | "뻐" | "서" | "써" | "어" | "저" | "쩌" | "처" | "커" | "터" | "퍼" | "허" |
"게" | "께" | "네" | "데" | "떼" | "레" | "메" | "베" | "뻬" | "세" | "쎄" | "에" | "제" | "쩨" | "체" | "케" | "테" | "페" | "헤" |
"겨" | "껴" | "녀" | "뎌" | "뗘" | "려" | "며" | "벼" | "뼈" | "셔" | "쎠" | "여" | "져" | "쪄" | "쳐" | "켜" | "텨" | "펴" | "혀" |
"계" | "꼐" | "녜" | "뎨" | "뗴" | "례" | "몌" | "볘" | "뼤" | "셰" | "쎼" | "예" | "졔" | "쪠" | "쳬" | "켸" | "톄" | "폐" | "혜" |
"고" | "꼬" | "노" | "도" | "또" | "로" | "모" | "보" | "뽀" | "소" | "쏘" | "오" | "조" | "쪼" | "초" | "코" | "토" | "포" | "호" |
"과" | "꽈" | "놔" | "돠" | "똬" | "롸" | "뫄" | "봐" | "뽜" | "솨" | "쏴" | "와" | "좌" | "쫘" | "촤" | "콰" | "톼" | "퐈" | "화" |
"괘" | "꽤" | "놰" | "돼" | "뙈" | "뢔" | "뫠" | "봬" | "뽸" | "쇄" | "쐐" | "왜" | "좨" | "쫴" | "쵀" | "쾌" | "퇘" | "퐤" | "홰" |
"괴" | "꾀" | "뇌" | "되" | "뙤" | "뢰" | "뫼" | "뵈" | "뾔" | "쇠" | "쐬" | "외" | "죄" | "쬐" | "최" | "쾨" | "퇴" | "푀" | "회" |
"교" | "꾜" | "뇨" | "됴" | "뚀" | "료" | "묘" | "뵤" | "뾰" | "쇼" | "쑈" | "요" | "죠" | "쬬" | "쵸" | "쿄" | "툐" | "표" | "효" |
"구" | "꾸" | "누" | "두" | "뚜" | "루" | "무" | "부" | "뿌" | "수" | "쑤" | "우" | "주" | "쭈" | "추" | "쿠" | "투" | "푸" | "후" |
"궈" | "꿔" | "눠" | "둬" | "뚸" | "뤄" | "뭐" | "붜" | "뿨" | "숴" | "쒀" | "워" | "줘" | "쭤" | "춰" | "쿼" | "퉈" | "풔" | "훠" |
"궤" | "꿰" | "눼" | "뒈" | "뛔" | "뤠" | "뭬" | "붸" | "쀄" | "쉐" | "쒜" | "웨" | "줴" | "쮀" | "췌" | "퀘" | "퉤" | "풰" | "훼" |
"귀" | "뀌" | "뉘" | "뒤" | "뛰" | "뤼" | "뮈" | "뷔" | "쀠" | "쉬" | "쒸" | "위" | "쥐" | "쮜" | "취" | "퀴" | "튀" | "퓌" | "휘" |
"규" | "뀨" | "뉴" | "듀" | "뜌" | "류" | "뮤" | "뷰" | "쀼" | "슈" | "쓔" | "유" | "쥬" | "쮸" | "츄" | "큐" | "튜" | "퓨" | "휴" |
"그" | "끄" | "느" | "드" | "뜨" | "르" | "므" | "브" | "쁘" | "스" | "쓰" | "으" | "즈" | "쯔" | "츠" | "크" | "트" | "프" | "흐" |
"긔" | "끠" | "늬" | "듸" | "띄" | "릐" | "믜" | "븨" | "쁴" | "싀" | "씌" | "의" | "즤" | "쯰" | "츼" | "킈" | "틔" | "픠" | "희" |
"기" | "끼" | "니" | "디" | "띠" | "리" | "미" | "비" | "삐" | "시" | "씨" | "이" | "지" | "찌" | "치" | "키" | "티" | "피" | "히" ) ;
-- maybe subpatterns for diphthongs?
-- c : pattern Str = #();
--
-- voiced : Str -> Str = \s -> case s of {
-- "k" => "g" ;
-- "t" => "d" ;
-- "p" => "b" ;
-- _ => s } ;
add_N : Str -> Str = \str ->
case str of {
_ + "가" => "간" ;
_ + "까" => "깐" ;
_ + "나" => "난" ;
_ + "다" => "단" ;
_ + "따" => "딴" ;
_ + "라" => "란" ;
_ + "마" => "만" ;
_ + "바" => "반" ;
_ + "빠" => "빤" ;
_ + "사" => "산" ;
_ + "싸" => "싼" ;
_ + "아" => "안" ;
_ + "자" => "잔" ;
_ + "짜" => "짠" ;
_ + "차" => "찬" ;
_ + "카" => "칸" ;
_ + "타" => "탄" ;
_ + "파" => "판" ;
_ + "하" => "한" ;
_ + "개" => "갠" ;
_ + "깨" => "깬" ;
_ + "내" => "낸" ;
_ + "대" => "댄" ;
_ + "때" => "땐" ;
_ + "래" => "랜" ;
_ + "매" => "맨" ;
_ + "배" => "밴" ;
_ + "빼" => "뺀" ;
_ + "새" => "샌" ;
_ + "쌔" => "쌘" ;
_ + "애" => "앤" ;
_ + "재" => "잰" ;
_ + "째" => "짼" ;
_ + "채" => "챈" ;
_ + "캐" => "캔" ;
_ + "태" => "탠" ;
_ + "패" => "팬" ;
_ + "해" => "핸" ;
_ + "갸" => "갼" ;
_ + "꺄" => "꺈" ;
_ + "냐" => "냔" ;
_ + "댜" => "댠" ;
_ + "땨" => "땬" ;
_ + "랴" => "랸" ;
_ + "먀" => "먄" ;
_ + "뱌" => "뱐" ;
_ + "뺘" => "뺜" ;
_ + "샤" => "샨" ;
_ + "쌰" => "쌴" ;
_ + "야" => "얀" ;
_ + "쟈" => "쟌" ;
_ + "쨔" => "쨘" ;
_ + "챠" => "챤" ;
_ + "캬" => "캰" ;
_ + "탸" => "탼" ;
_ + "퍄" => "퍈" ;
_ + "햐" => "햔" ;
_ + "걔" => "걘" ;
_ + "꺠" => "꺤" ;
_ + "냬" => "냰" ;
_ + "댸" => "댼" ;
_ + "떄" => "떈" ;
_ + "럐" => "럔" ;
_ + "먜" => "먠" ;
_ + "뱨" => "뱬" ;
_ + "뺴" => "뺸" ;
_ + "섀" => "섄" ;
_ + "썌" => "썐" ;
_ + "얘" => "얜" ;
_ + "쟤" => "쟨" ;
_ + "쨰" => "쨴" ;
_ + "챼" => "첀" ;
_ + "컈" => "컌" ;
_ + "턔" => "턘" ;
_ + "퍠" => "퍤" ;
_ + "햬" => "햰" ;
_ + "거" => "건" ;
_ + "꺼" => "껀" ;
_ + "너" => "넌" ;
_ + "더" => "던" ;
_ + "떠" => "떤" ;
_ + "러" => "런" ;
_ + "머" => "먼" ;
_ + "버" => "번" ;
_ + "뻐" => "뻔" ;
_ + "서" => "선" ;
_ + "써" => "썬" ;
_ + "어" => "언" ;
_ + "저" => "전" ;
_ + "쩌" => "쩐" ;
_ + "처" => "천" ;
_ + "커" => "컨" ;
_ + "터" => "턴" ;
_ + "퍼" => "펀" ;
_ + "허" => "헌" ;
_ + "게" => "겐" ;
_ + "께" => "껜" ;
_ + "네" => "넨" ;
_ + "데" => "덴" ;
_ + "떼" => "뗀" ;
_ + "레" => "렌" ;
_ + "메" => "멘" ;
_ + "베" => "벤" ;
_ + "뻬" => "뻰" ;
_ + "세" => "센" ;
_ + "쎄" => "쎈" ;
_ + "에" => "엔" ;
_ + "제" => "젠" ;
_ + "쩨" => "쩬" ;
_ + "체" => "첸" ;
_ + "케" => "켄" ;
_ + "테" => "텐" ;
_ + "페" => "펜" ;
_ + "헤" => "헨" ;
_ + "겨" => "견" ;
_ + "껴" => "껸" ;
_ + "녀" => "년" ;
_ + "뎌" => "뎐" ;
_ + "뗘" => "뗜" ;
_ + "려" => "련" ;
_ + "며" => "면" ;
_ + "벼" => "변" ;
_ + "뼈" => "뼌" ;
_ + "셔" => "션" ;
_ + "쎠" => "쎤" ;
_ + "여" => "연" ;
_ + "져" => "젼" ;
_ + "쪄" => "쪈" ;
_ + "쳐" => "쳔" ;
_ + "켜" => "켠" ;
_ + "텨" => "텬" ;
_ + "펴" => "편" ;
_ + "혀" => "현" ;
_ + "계" => "곈" ;
_ + "꼐" => "꼔" ;
_ + "녜" => "녠" ;
_ + "뎨" => "뎬" ;
_ + "뗴" => "뗸" ;
_ + "례" => "롄" ;
_ + "몌" => "몐" ;
_ + "볘" => "볜" ;
_ + "뼤" => "뼨" ;
_ + "셰" => "셴" ;
_ + "쎼" => "쏀" ;
_ + "예" => "옌" ;
_ + "졔" => "졘" ;
_ + "쪠" => "쪤" ;
_ + "쳬" => "쳰" ;
_ + "켸" => "켼" ;
_ + "톄" => "톈" ;
_ + "폐" => "폔" ;
_ + "혜" => "혠" ;
_ + "고" => "곤" ;
_ + "꼬" => "꼰" ;
_ + "노" => "논" ;
_ + "도" => "돈" ;
_ + "또" => "똔" ;
_ + "로" => "론" ;
_ + "모" => "몬" ;
_ + "보" => "본" ;
_ + "뽀" => "뽄" ;
_ + "소" => "손" ;
_ + "쏘" => "쏜" ;
_ + "오" => "온" ;
_ + "조" => "존" ;
_ + "쪼" => "쫀" ;
_ + "초" => "촌" ;
_ + "코" => "콘" ;
_ + "토" => "톤" ;
_ + "포" => "폰" ;
_ + "호" => "혼" ;
_ + "과" => "관" ;
_ + "꽈" => "꽌" ;
_ + "놔" => "놘" ;
_ + "돠" => "돤" ;
_ + "똬" => "똰" ;
_ + "롸" => "롼" ;
_ + "뫄" => "뫈" ;
_ + "봐" => "봔" ;
_ + "뽜" => "뽠" ;
_ + "솨" => "솬" ;
_ + "쏴" => "쏸" ;
_ + "와" => "완" ;
_ + "좌" => "좐" ;
_ + "쫘" => "쫜" ;
_ + "촤" => "촨" ;
_ + "콰" => "콴" ;
_ + "톼" => "퇀" ;
_ + "퐈" => "퐌" ;
_ + "화" => "환" ;
_ + "괘" => "괜" ;
_ + "꽤" => "꽨" ;
_ + "놰" => "놴" ;
_ + "돼" => "됀" ;
_ + "뙈" => "뙌" ;
_ + "뢔" => "뢘" ;
_ + "뫠" => "뫤" ;
_ + "봬" => "봰" ;
_ + "뽸" => "뽼" ;
_ + "쇄" => "쇈" ;
_ + "쐐" => "쐔" ;
_ + "왜" => "왠" ;
_ + "좨" => "좬" ;
_ + "쫴" => "쫸" ;
_ + "쵀" => "쵄" ;
_ + "쾌" => "쾐" ;
_ + "퇘" => "퇜" ;
_ + "퐤" => "퐨" ;
_ + "홰" => "홴" ;
_ + "괴" => "괸" ;
_ + "꾀" => "꾄" ;
_ + "뇌" => "뇐" ;
_ + "되" => "된" ;
_ + "뙤" => "뙨" ;
_ + "뢰" => "뢴" ;
_ + "뫼" => "묀" ;
_ + "뵈" => "뵌" ;
_ + "뾔" => "뾘" ;
_ + "쇠" => "쇤" ;
_ + "쐬" => "쐰" ;
_ + "외" => "왼" ;
_ + "죄" => "죈" ;
_ + "쬐" => "쬔" ;
_ + "최" => "쵠" ;
_ + "쾨" => "쾬" ;
_ + "퇴" => "퇸" ;
_ + "푀" => "푄" ;
_ + "회" => "횐" ;
_ + "교" => "굔" ;
_ + "꾜" => "꾠" ;
_ + "뇨" => "뇬" ;
_ + "됴" => "됸" ;
_ + "뚀" => "뚄" ;
_ + "료" => "룐" ;
_ + "묘" => "묜" ;
_ + "뵤" => "뵨" ;
_ + "뾰" => "뾴" ;
_ + "쇼" => "숀" ;
_ + "쑈" => "쑌" ;
_ + "요" => "욘" ;
_ + "죠" => "죤" ;
_ + "쬬" => "쬰" ;
_ + "쵸" => "쵼" ;
_ + "쿄" => "쿈" ;
_ + "툐" => "툔" ;
_ + "표" => "푠" ;
_ + "효" => "횬" ;
_ + "구" => "군" ;
_ + "꾸" => "꾼" ;
_ + "누" => "눈" ;
_ + "두" => "둔" ;
_ + "뚜" => "뚠" ;
_ + "루" => "룬" ;
_ + "무" => "문" ;
_ + "부" => "분" ;
_ + "뿌" => "뿐" ;
_ + "수" => "순" ;
_ + "쑤" => "쑨" ;
_ + "우" => "운" ;
_ + "주" => "준" ;
_ + "쭈" => "쭌" ;
_ + "추" => "춘" ;
_ + "쿠" => "쿤" ;
_ + "투" => "툰" ;
_ + "푸" => "푼" ;
_ + "후" => "훈" ;
_ + "궈" => "권" ;
_ + "꿔" => "꿘" ;
_ + "눠" => "눤" ;
_ + "둬" => "둰" ;
_ + "뚸" => "뚼" ;
_ + "뤄" => "뤈" ;
_ + "뭐" => "뭔" ;
_ + "붜" => "붠" ;
_ + "뿨" => "뿬" ;
_ + "숴" => "숸" ;
_ + "쒀" => "쒄" ;
_ + "워" => "원" ;
_ + "줘" => "줜" ;
_ + "쭤" => "쭨" ;
_ + "춰" => "춴" ;
_ + "쿼" => "퀀" ;
_ + "퉈" => "퉌" ;
_ + "풔" => "풘" ;
_ + "훠" => "훤" ;
_ + "궤" => "궨" ;
_ + "꿰" => "꿴" ;
_ + "눼" => "뉀" ;
_ + "뒈" => "뒌" ;
_ + "뛔" => "뛘" ;
_ + "뤠" => "뤤" ;
_ + "뭬" => "뭰" ;
_ + "붸" => "붼" ;
_ + "쀄" => "쀈" ;
_ + "쉐" => "쉔" ;
_ + "쒜" => "쒠" ;
_ + "웨" => "웬" ;
_ + "줴" => "줸" ;
_ + "쮀" => "쮄" ;
_ + "췌" => "췐" ;
_ + "퀘" => "퀜" ;
_ + "퉤" => "퉨" ;
_ + "풰" => "풴" ;
_ + "훼" => "휀" ;
_ + "귀" => "귄" ;
_ + "뀌" => "뀐" ;
_ + "뉘" => "뉜" ;
_ + "뒤" => "뒨" ;
_ + "뛰" => "뛴" ;
_ + "뤼" => "륀" ;
_ + "뮈" => "뮌" ;
_ + "뷔" => "뷘" ;
_ + "쀠" => "쀤" ;
_ + "쉬" => "쉰" ;
_ + "쒸" => "쒼" ;
_ + "위" => "윈" ;
_ + "쥐" => "쥔" ;
_ + "쮜" => "쮠" ;
_ + "취" => "췬" ;
_ + "퀴" => "퀸" ;
_ + "튀" => "튄" ;
_ + "퓌" => "퓐" ;
_ + "휘" => "휜" ;
_ + "규" => "균" ;
_ + "뀨" => "뀬" ;
_ + "뉴" => "뉸" ;
_ + "듀" => "듄" ;
_ + "뜌" => "뜐" ;
_ + "류" => "륜" ;
_ + "뮤" => "뮨" ;
_ + "뷰" => "뷴" ;
_ + "쀼" => "쁀" ;
_ + "슈" => "슌" ;
_ + "쓔" => "쓘" ;
_ + "유" => "윤" ;
_ + "쥬" => "쥰" ;
_ + "쮸" => "쮼" ;
_ + "츄" => "츈" ;
_ + "큐" => "큔" ;
_ + "튜" => "튠" ;
_ + "퓨" => "퓬" ;
_ + "휴" => "휸" ;
_ + "그" => "근" ;
_ + "끄" => "끈" ;
_ + "느" => "는" ;
_ + "드" => "든" ;
_ + "뜨" => "뜬" ;
_ + "르" => "른" ;
_ + "므" => "믄" ;
_ + "브" => "븐" ;
_ + "쁘" => "쁜" ;
_ + "스" => "슨" ;
_ + "쓰" => "쓴" ;
_ + "으" => "은" ;
_ + "즈" => "즌" ;
_ + "쯔" => "쯘" ;
_ + "츠" => "츤" ;
_ + "크" => "큰" ;
_ + "트" => "튼" ;
_ + "프" => "픈" ;
_ + "흐" => "흔" ;
_ + "긔" => "긘" ;
_ + "끠" => "끤" ;
_ + "늬" => "늰" ;
_ + "듸" => "듼" ;
_ + "띄" => "띈" ;
_ + "릐" => "릔" ;
_ + "믜" => "믠" ;
_ + "븨" => "븬" ;
_ + "쁴" => "쁸" ;
_ + "싀" => "싄" ;
_ + "씌" => "씐" ;
_ + "의" => "읜" ;
_ + "즤" => "즨" ;
_ + "쯰" => "쯴" ;
_ + "츼" => "칀" ;
_ + "킈" => "킌" ;
_ + "틔" => "틘" ;
_ + "픠" => "픤" ;
_ + "희" => "흰" ;
_ + "기" => "긴" ;
_ + "끼" => "낀" ;
_ + "니" => "닌" ;
_ + "디" => "딘" ;
_ + "띠" => "띤" ;
_ + "리" => "린" ;
_ + "미" => "민" ;
_ + "비" => "빈" ;
_ + "삐" => "삔" ;
_ + "시" => "신" ;
_ + "씨" => "씬" ;
_ + "이" => "인" ;
_ + "지" => "진" ;
_ + "찌" => "찐" ;
_ + "치" => "친" ;
_ + "키" => "킨" ;
_ + "티" => "틴" ;
_ + "피" => "핀" ;
_ + "히" => "힌" ;
_ => str + "은"
} ;
add_B : Str -> Str = \str ->
case str of {
_ + "가" => "갑" ;
_ + "까" => "깝" ;
_ + "나" => "납" ;
_ + "다" => "답" ;
_ + "따" => "땁" ;
_ + "라" => "랍" ;
_ + "마" => "맙" ;
_ + "바" => "밥" ;
_ + "빠" => "빱" ;
_ + "사" => "삽" ;
_ + "싸" => "쌉" ;
_ + "아" => "압" ;
_ + "자" => "잡" ;
_ + "짜" => "짭" ;
_ + "차" => "찹" ;
_ + "카" => "캅" ;
_ + "타" => "탑" ;
_ + "파" => "팝" ;
_ + "하" => "합" ;
_ + "개" => "갭" ;
_ + "깨" => "깹" ;
_ + "내" => "냅" ;
_ + "대" => "댑" ;
_ + "때" => "땝" ;
_ + "래" => "랩" ;
_ + "매" => "맵" ;
_ + "배" => "뱁" ;
_ + "빼" => "뺍" ;
_ + "새" => "샙" ;
_ + "쌔" => "쌥" ;
_ + "애" => "앱" ;
_ + "재" => "잽" ;
_ + "째" => "쨉" ;
_ + "채" => "챕" ;
_ + "캐" => "캡" ;
_ + "태" => "탭" ;
_ + "패" => "팹" ;
_ + "해" => "햅" ;
_ + "갸" => "걉" ;
_ + "꺄" => "꺕" ;
_ + "냐" => "냡" ;
_ + "댜" => "댭" ;
_ + "땨" => "땹" ;
_ + "랴" => "럅" ;
_ + "먀" => "먑" ;
_ + "뱌" => "뱝" ;
_ + "뺘" => "뺩" ;
_ + "샤" => "샵" ;
_ + "쌰" => "썁" ;
_ + "야" => "얍" ;
_ + "쟈" => "쟙" ;
_ + "쨔" => "쨥" ;
_ + "챠" => "챱" ;
_ + "캬" => "캽" ;
_ + "탸" => "턉" ;
_ + "퍄" => "퍕" ;
_ + "햐" => "햡" ;
_ + "걔" => "걥" ;
_ + "꺠" => "꺱" ;
_ + "냬" => "냽" ;
_ + "댸" => "덉" ;
_ + "떄" => "떕" ;
_ + "럐" => "럡" ;
_ + "먜" => "먭" ;
_ + "뱨" => "뱹" ;
_ + "뺴" => "뻅" ;
_ + "섀" => "섑" ;
_ + "썌" => "썝" ;
_ + "얘" => "얩" ;
_ + "쟤" => "쟵" ;
_ + "쨰" => "쩁" ;
_ + "챼" => "첍" ;
_ + "컈" => "컙" ;
_ + "턔" => "턥" ;
_ + "퍠" => "퍱" ;
_ + "햬" => "햽" ;
_ + "거" => "겁" ;
_ + "꺼" => "껍" ;
_ + "너" => "넙" ;
_ + "더" => "덥" ;
_ + "떠" => "떱" ;
_ + "러" => "럽" ;
_ + "머" => "멉" ;
_ + "버" => "법" ;
_ + "뻐" => "뻡" ;
_ + "서" => "섭" ;
_ + "써" => "썹" ;
_ + "어" => "업" ;
_ + "저" => "접" ;
_ + "쩌" => "쩝" ;
_ + "처" => "첩" ;
_ + "커" => "컵" ;
_ + "터" => "텁" ;
_ + "퍼" => "펍" ;
_ + "허" => "헙" ;
_ + "게" => "겝" ;
_ + "께" => "껩" ;
_ + "네" => "넵" ;
_ + "데" => "뎁" ;
_ + "떼" => "뗍" ;
_ + "레" => "렙" ;
_ + "메" => "멥" ;
_ + "베" => "벱" ;
_ + "뻬" => "뻽" ;
_ + "세" => "셉" ;
_ + "쎄" => "쎕" ;
_ + "에" => "엡" ;
_ + "제" => "젭" ;
_ + "쩨" => "쩹" ;
_ + "체" => "쳅" ;
_ + "케" => "켑" ;
_ + "테" => "텝" ;
_ + "페" => "펩" ;
_ + "헤" => "헵" ;
_ + "겨" => "겹" ;
_ + "껴" => "꼅" ;
_ + "녀" => "녑" ;
_ + "뎌" => "뎝" ;
_ + "뗘" => "뗩" ;
_ + "려" => "렵" ;
_ + "며" => "몁" ;
_ + "벼" => "볍" ;
_ + "뼈" => "뼙" ;
_ + "셔" => "셥" ;
_ + "쎠" => "쎱" ;
_ + "여" => "엽" ;
_ + "져" => "졉" ;
_ + "쪄" => "쪕" ;
_ + "쳐" => "쳡" ;
_ + "켜" => "켭" ;
_ + "텨" => "텹" ;
_ + "펴" => "폅" ;
_ + "혀" => "협" ;
_ + "계" => "곕" ;
_ + "꼐" => "꼡" ;
_ + "녜" => "녭" ;
_ + "뎨" => "뎹" ;
_ + "뗴" => "똅" ;
_ + "례" => "롑" ;
_ + "몌" => "몝" ;
_ + "볘" => "볩" ;
_ + "뼤" => "뼵" ;
_ + "셰" => "솁" ;
_ + "쎼" => "쏍" ;
_ + "예" => "옙" ;
_ + "졔" => "졥" ;
_ + "쪠" => "쪱" ;
_ + "쳬" => "쳽" ;
_ + "켸" => "콉" ;
_ + "톄" => "톕" ;
_ + "폐" => "폡" ;
_ + "혜" => "혭" ;
_ + "고" => "곱" ;
_ + "꼬" => "꼽" ;
_ + "노" => "놉" ;
_ + "도" => "돕" ;
_ + "또" => "똡" ;
_ + "로" => "롭" ;
_ + "모" => "몹" ;
_ + "보" => "봅" ;
_ + "뽀" => "뽑" ;
_ + "소" => "솝" ;
_ + "쏘" => "쏩" ;
_ + "오" => "옵" ;
_ + "조" => "좁" ;
_ + "쪼" => "쫍" ;
_ + "초" => "촙" ;
_ + "코" => "콥" ;
_ + "토" => "톱" ;
_ + "포" => "폽" ;
_ + "호" => "홉" ;
_ + "과" => "괍" ;
_ + "꽈" => "꽙" ;
_ + "놔" => "놥" ;
_ + "돠" => "돱" ;
_ + "똬" => "똽" ;
_ + "롸" => "뢉" ;
_ + "뫄" => "뫕" ;
_ + "봐" => "봡" ;
_ + "뽜" => "뽭" ;
_ + "솨" => "솹" ;
_ + "쏴" => "쐅" ;
_ + "와" => "왑" ;
_ + "좌" => "좝" ;
_ + "쫘" => "쫩" ;
_ + "촤" => "촵" ;
_ + "콰" => "쾁" ;
_ + "톼" => "퇍" ;
_ + "퐈" => "퐙" ;
_ + "화" => "홥" ;
_ + "괘" => "괩" ;
_ + "꽤" => "꽵" ;
_ + "놰" => "뇁" ;
_ + "돼" => "됍" ;
_ + "뙈" => "뙙" ;
_ + "뢔" => "뢥" ;
_ + "뫠" => "뫱" ;
_ + "봬" => "봽" ;
_ + "뽸" => "뾉" ;
_ + "쇄" => "쇕" ;
_ + "쐐" => "쐡" ;
_ + "왜" => "왭" ;
_ + "좨" => "좹" ;
_ + "쫴" => "쬅" ;
_ + "쵀" => "쵑" ;
_ + "쾌" => "쾝" ;
_ + "퇘" => "퇩" ;
_ + "퐤" => "퐵" ;
_ + "홰" => "횁" ;
_ + "괴" => "굅" ;
_ + "꾀" => "꾑" ;
_ + "뇌" => "뇝" ;
_ + "되" => "됩" ;
_ + "뙤" => "뙵" ;
_ + "뢰" => "룁" ;
_ + "뫼" => "묍" ;
_ + "뵈" => "뵙" ;
_ + "뾔" => "뾥" ;
_ + "쇠" => "쇱" ;
_ + "쐬" => "쐽" ;
_ + "외" => "욉" ;
_ + "죄" => "죕" ;
_ + "쬐" => "쬡" ;
_ + "최" => "쵭" ;
_ + "쾨" => "쾹" ;
_ + "퇴" => "툅" ;
_ + "푀" => "푑" ;
_ + "회" => "횝" ;
_ + "교" => "굡" ;
_ + "꾜" => "꾭" ;
_ + "뇨" => "뇹" ;
_ + "됴" => "둅" ;
_ + "뚀" => "뚑" ;
_ + "료" => "룝" ;
_ + "묘" => "묩" ;
_ + "뵤" => "뵵" ;
_ + "뾰" => "뿁" ;
_ + "쇼" => "숍" ;
_ + "쑈" => "쑙" ;
_ + "요" => "욥" ;
_ + "죠" => "죱" ;
_ + "쬬" => "쬽" ;
_ + "쵸" => "춉" ;
_ + "쿄" => "쿕" ;
_ + "툐" => "툡" ;
_ + "표" => "푭" ;
_ + "효" => "횹" ;
_ + "구" => "굽" ;
_ + "꾸" => "꿉" ;
_ + "누" => "눕" ;
_ + "두" => "둡" ;
_ + "뚜" => "뚭" ;
_ + "루" => "룹" ;
_ + "무" => "뭅" ;
_ + "부" => "붑" ;
_ + "뿌" => "뿝" ;
_ + "수" => "숩" ;
_ + "쑤" => "쑵" ;
_ + "우" => "웁" ;
_ + "주" => "줍" ;
_ + "쭈" => "쭙" ;
_ + "추" => "춥" ;
_ + "쿠" => "쿱" ;
_ + "투" => "툽" ;
_ + "푸" => "풉" ;
_ + "후" => "훕" ;
_ + "궈" => "궙" ;
_ + "꿔" => "꿥" ;
_ + "눠" => "눱" ;
_ + "둬" => "둽" ;
_ + "뚸" => "뛉" ;
_ + "뤄" => "뤕" ;
_ + "뭐" => "뭡" ;
_ + "붜" => "붭" ;
_ + "뿨" => "뿹" ;
_ + "숴" => "쉅" ;
_ + "쒀" => "쒑" ;
_ + "워" => "웝" ;
_ + "줘" => "줩" ;
_ + "쭤" => "쭵" ;
_ + "춰" => "췁" ;
_ + "쿼" => "퀍" ;
_ + "퉈" => "퉙" ;
_ + "풔" => "풥" ;
_ + "훠" => "훱" ;
_ + "궤" => "궵" ;
_ + "꿰" => "뀁" ;
_ + "눼" => "뉍" ;
_ + "뒈" => "뒙" ;
_ + "뛔" => "뛥" ;
_ + "뤠" => "뤱" ;
_ + "뭬" => "뭽" ;
_ + "붸" => "뷉" ;
_ + "쀄" => "쀕" ;
_ + "쉐" => "쉡" ;
_ + "쒜" => "쒭" ;
_ + "웨" => "웹" ;
_ + "줴" => "쥅" ;
_ + "쮀" => "쮑" ;
_ + "췌" => "췝" ;
_ + "퀘" => "퀩" ;
_ + "퉤" => "퉵" ;
_ + "풰" => "퓁" ;
_ + "훼" => "휍" ;
_ + "귀" => "귑" ;
_ + "뀌" => "뀝" ;
_ + "뉘" => "뉩" ;
_ + "뒤" => "뒵" ;
_ + "뛰" => "뜁" ;
_ + "뤼" => "륍" ;
_ + "뮈" => "뮙" ;
_ + "뷔" => "뷥" ;
_ + "쀠" => "쀱" ;
_ + "쉬" => "쉽" ;
_ + "쒸" => "쓉" ;
_ + "위" => "윕" ;
_ + "쥐" => "쥡" ;
_ + "쮜" => "쮭" ;
_ + "취" => "췹" ;
_ + "퀴" => "큅" ;
_ + "튀" => "튑" ;
_ + "퓌" => "퓝" ;
_ + "휘" => "휩" ;
_ + "규" => "귭" ;
_ + "뀨" => "뀹" ;
_ + "뉴" => "늅" ;
_ + "듀" => "듑" ;
_ + "뜌" => "뜝" ;
_ + "류" => "륩" ;
_ + "뮤" => "뮵" ;
_ + "뷰" => "븁" ;
_ + "쀼" => "쁍" ;
_ + "슈" => "슙" ;
_ + "쓔" => "쓥" ;
_ + "유" => "윱" ;
_ + "쥬" => "쥽" ;
_ + "쮸" => "쯉" ;
_ + "츄" => "츕" ;
_ + "큐" => "큡" ;
_ + "튜" => "튭" ;
_ + "퓨" => "퓹" ;
_ + "휴" => "흅" ;
_ + "그" => "급" ;
_ + "끄" => "끕" ;
_ + "느" => "늡" ;
_ + "드" => "듭" ;
_ + "뜨" => "뜹" ;
_ + "르" => "릅" ;
_ + "므" => "믑" ;
_ + "브" => "븝" ;
_ + "쁘" => "쁩" ;
_ + "스" => "습" ;
_ + "쓰" => "씁" ;
_ + "으" => "읍" ;
_ + "즈" => "즙" ;
_ + "쯔" => "쯥" ;
_ + "츠" => "츱" ;
_ + "크" => "큽" ;
_ + "트" => "틉" ;
_ + "프" => "픕" ;
_ + "흐" => "흡" ;
_ + "긔" => "긥" ;
_ + "끠" => "끱" ;
_ + "늬" => "늽" ;
_ + "듸" => "딉" ;
_ + "띄" => "띕" ;
_ + "릐" => "릡" ;
_ + "믜" => "믭" ;
_ + "븨" => "븹" ;
_ + "쁴" => "삅" ;
_ + "싀" => "싑" ;
_ + "씌" => "씝" ;
_ + "의" => "읩" ;
_ + "즤" => "즵" ;
_ + "쯰" => "찁" ;
_ + "츼" => "칍" ;
_ + "킈" => "킙" ;
_ + "틔" => "틥" ;
_ + "픠" => "픱" ;
_ + "희" => "흽" ;
_ + "기" => "깁" ;
_ + "끼" => "낍" ;
_ + "니" => "닙" ;
_ + "디" => "딥" ;
_ + "띠" => "띱" ;
_ + "리" => "립" ;
_ + "미" => "밉" ;
_ + "비" => "빕" ;
_ + "삐" => "삡" ;
_ + "시" => "십" ;
_ + "씨" => "씹" ;
_ + "이" => "입" ;
_ + "지" => "집" ;
_ + "찌" => "찝" ;
_ + "치" => "칩" ;
_ + "키" => "킵" ;
_ + "티" => "팁" ;
_ + "피" => "핍" ;
_ + "히" => "힙" ;
_ => str + "ᆸ" -- NB. Combining jamo, doesn't render right in all fonts and probably breaks search
} ;
}

View File

@@ -1,29 +1,26 @@
resource ParamKor = ParamX ** open Prelude in {
resource ParamKor = ParamX, Hangul ** open Prelude in {
--------------------------------------------------------------------------------
-- Phonology
{- Lee & Ramsey 2000, p. 24-25:
The difference in the way these words are written has to do with the productivity of the suffix. While the suffixes -um and -i can be used relatively freely to derive nouns from verbs and adjectives, the others cannot. In the mind of the speaker (and the user of the orthography), the words wus-um laughter and noph-i height can be thought of as regular derivations of the verb wus- and the adjective noph-, much as are the predicative forms wus-uni, wus-ela, noph-ase, and noph-umyen. But words like makay stopper (morphologically mak+ay, but written as ma+kay) and mutem grave are not derived productively. The decision to write them without showing the suffix separated was based upon the assumption that most people think of them as single, indivisible words. Their etymologies were thought not to be obvious.
The difference in the way these words are written has to do with the productivity of the suffix.
While the suffixes -um and -i can be used relatively freely to derive nouns from verbs and adjectives,
the others cannot.
In the mind of the speaker (and the user of the orthography), the words wus-um laughter and noph-i height
can be thought of as regular derivations of the verb wus- and the adjective noph-, much as are the
predicative forms wus-uni, wus-ela, noph-ase, and noph-umyen. But words like makay stopper
(morphologically mak+ay, but written as ma+kay) and mutem grave are not derived productively.
The decision to write them without showing the suffix separated was based upon the assumption that
most people think of them as single, indivisible words. Their etymologies were thought not to be obvious.
-}
-- Patterns and replacements defined in Hangul.gf
oper
v : pattern Str = #("아" | "이" | "어" |
"가" | "개" | "갸" | "걔" | "거" | "게" | "겨" | "계" | "고" | "과" | "괘" | "괴" | "교" | "구" | "궈" | "궤" | "귀" | "규" | "그" | "긔" | "기" | "크") ; -- TODO: figure out if this is a smart way to do it; if no better way, then complete the table.
-- maybe subpatterns for diphthongs?
-- c : pattern Str = #("m"|"n"|"p"|"b"|"t"|"d"|"k"|"g"|"f"|"v"
-- |"s"|"h"|"l"|"j"|"r"|"z"|"c"|"q");
--
-- voiced : Str -> Str = \s -> case s of {
-- "k" => "g" ;
-- "t" => "d" ;
-- "p" => "b" ;
-- _ => s } ;
vowFinal : Str -> Bool = \str ->
case str of {_ + #v => True ; _ => False} ;
--------------------------------------------------------------------------------
-- Morphophonology
@@ -45,9 +42,9 @@ oper
allomorph : NForm -> Str -> Str = \nf,s ->
let finalV : Bool = vowFinal s ;
in case nf of {
Topic => if_then_Str finalV "" "" ;
Subject => if_then_Str finalV "" "" ;
Object => if_then_Str finalV "" "" ;
Topic => if_then_Str finalV "" "" ;
Subject => if_then_Str finalV "" "" ;
Object => if_then_Str finalV "" "" ;
Bare => []
} ;
--------------------------------------------------------------------------------

View File

@@ -105,10 +105,10 @@ oper
mkAdj : Str -> Adjective = \inf -> let stem = init inf in {
s = table {
AAttr => stem + if_then_Str (vowFinal stem) "ᆫ" "은" ;
AAttr => add_N stem ;
APred VInf => inf ;
APred (VFin Gnomic Pos) => stem + "니다" ;
APred (VFin Gnomic Pos) => "안" ++ stem + "니다" ; -- TODO check
APred (VFin Gnomic Pos) => add_B stem + "니다" ;
APred (VFin Gnomic Neg) => "안" ++ add_B stem + "니다" ; -- TODO check
APred _ => stem ++ "TODO: proper adjective inflection"
}
} ;