diff --git a/src/korean/Hangul.gf b/src/korean/Hangul.gf new file mode 100644 index 000000000..e1685cdf8 --- /dev/null +++ b/src/korean/Hangul.gf @@ -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 + } ; +} \ No newline at end of file diff --git a/src/korean/ParamKor.gf b/src/korean/ParamKor.gf index b862cc2bd..544e38ad9 100644 --- a/src/korean/ParamKor.gf +++ b/src/korean/ParamKor.gf @@ -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 => [] } ; -------------------------------------------------------------------------------- diff --git a/src/korean/ResKor.gf b/src/korean/ResKor.gf index a6cb8277d..8182bb47d 100644 --- a/src/korean/ResKor.gf +++ b/src/korean/ResKor.gf @@ -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" } } ;