mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-06-25 19:16:28 -06:00
152 lines
3.9 KiB
Plaintext
152 lines
3.9 KiB
Plaintext
resource ParamKor = ParamX, Hangul ** open Prelude in {
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Phonology
|
|
|
|
-- Patterns and replacements defined in Hangul.gf
|
|
oper
|
|
|
|
vowFinal : Str -> Bool = \str ->
|
|
case str of {_ + #v => True ; _ => False} ;
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Morphophonology
|
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Nouns
|
|
|
|
param
|
|
NForm =
|
|
Bare -- no case particle
|
|
| Topic -- 은 or 는
|
|
| Subject -- 이 or 가
|
|
| Object -- 을 or 를
|
|
;
|
|
|
|
Phono = Vowel | Consonant ; -- Whether the word ends in vowel or consonant.
|
|
|
|
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 "를" "을" ;
|
|
Bare => []
|
|
} ;
|
|
--------------------------------------------------------------------------------
|
|
-- Numerals
|
|
|
|
param
|
|
DForm = Indep | Attrib ;
|
|
|
|
CardOrd = NOrd | NCard ;
|
|
|
|
NumType = NoNum | IsDig | IsNum ;
|
|
|
|
NumOrigin = SK | NK ;
|
|
|
|
oper
|
|
isNum : {numtype : NumType} -> Bool = \nt -> case nt.numtype of {
|
|
NoNum => False ;
|
|
_ => True
|
|
} ;
|
|
--------------------------------------------------------------------------------
|
|
-- Adjectives
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Conjunctions
|
|
|
|
param
|
|
|
|
ConjType = And | Or | Comma ;
|
|
|
|
POS =
|
|
VStar -- Verbs and adjectives
|
|
| NStar ; -- Nouns and adverbs
|
|
|
|
oper
|
|
conjTable : POS => ConjType => Phono => Str = \\p,c,ph => case <c,p,ph> of {
|
|
-- Special "conjunction": just put comma with NPs, no conjunction.
|
|
-- Used in a specific (proprietary) application grammar, don't remove this.
|
|
<Comma,NStar,_> => "," ;
|
|
<Comma,VStar,Consonant> => "으며" ;
|
|
<Comma,VStar,Vowel> => "며" ;
|
|
|
|
-- In the normal case, conjunctions are repeated after each element in ListX
|
|
-- Conjunction is not an argument to BaseX and ConsX, it is added in ConjX.
|
|
-- That's why we need a ConjType parameter to ListX categories.
|
|
<And,VStar,_> => "고" ;
|
|
<And,NStar,_> => "하고" ;
|
|
<Or,_,_> => "또는" -- TODO what is or for V/AP/S?
|
|
} ;
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Verbs
|
|
param
|
|
|
|
Aspect =
|
|
Generic -- zero morpheme
|
|
| Habitual -- 는
|
|
| Prospective -- 겠
|
|
| Perfect -- 었/았
|
|
;
|
|
|
|
Style =
|
|
Formal -- 하십시오체
|
|
| Polite -- 해요체
|
|
| Plain -- |