forked from GitHub/gf-rgl
136 lines
3.5 KiB
Plaintext
136 lines
3.5 KiB
Plaintext
|
|
resource ParamTam = ParamX ** open Prelude in {
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Phonology
|
|
|
|
--oper
|
|
-- v : pattern Str = #("a"|"e"|"i"|"o"|"u") ;
|
|
|
|
-- diphthong : pattern Str = #("ai"|"au"|"oi") ;
|
|
|
|
-- c : pattern Str = #("m"|"n"|"ny"|"ng"
|
|
-- |"p"|"b"|"t"|"d"|"k"|"g"
|
|
-- |"s"|"z"|"c"|"j"|"sy"
|
|
-- |"f"|"v"|"kh"|"gh"|"h"
|
|
-- |"l"|"r"
|
|
-- |"w"|"y") ;
|
|
|
|
-- -- not sure if needed anywhere, this is just my standard helper function.
|
|
-- voiced : Str -> Str = \s -> case s of {
|
|
-- "k" => "g" ; "t" => "d" ; "p" => "b" ;
|
|
-- "s" => "z" ; "c" => "j" ; "kh" => "gh" ;
|
|
-- _ => s } ;
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Morphophonology
|
|
|
|
-- prefix : Prefix -> Str -> Str = \p -> case p of {
|
|
-- Meng => prefixMeng ;
|
|
-- Ber => prefixBer
|
|
-- } ;
|
|
|
|
-- prefixMeng : Str -> Str = \makan -> case makan of {
|
|
|
|
-- ? + ? + ? => "menge" + makan ;
|
|
|
|
-- (#v|"g"|"h") + _
|
|
-- => "meng" + makan ; -- prefix meng: e.g. meng+atur
|
|
-- "k" + enal
|
|
-- => "meng" + enal ; -- replace k with meng
|
|
|
|
-- "b" + _
|
|
-- => "mem" + makan ; -- prefix mem: e.g. mem+beli
|
|
-- ("p"|"f") + ikir
|
|
-- => "mem" + ikir ; -- replace p/f with mem
|
|
|
|
-- ("j"|"c"|"z"|"d") + _
|
|
-- => "men" + makan ; -- prefix men: e.g. men+jadi
|
|
-- "t" + ipu
|
|
-- => "men" + ipu ; -- replace t with men
|
|
|
|
-- "s" + alak
|
|
-- => "meny" + alak ; -- replace s with meny
|
|
|
|
-- ("r"|"l"|"w"|"y"|"m"|"n"|"ny"|"ng") + _
|
|
-- => "me" + makan ; -- prefix me
|
|
|
|
-- -- We can throw an error
|
|
-- -- _ => Predef.error "Not a valid verb root" ;
|
|
|
|
-- -- or we can let it pass with some default allomorph
|
|
-- _ => "meng" + makan
|
|
-- } ;
|
|
|
|
-- prefixBer : Str -> Str = \jalan -> case jalan of {
|
|
-- -- Exception
|
|
-- "ajar" => "belajar" ;
|
|
|
|
-- -- Drop the r
|
|
-- (#c + "er" + _ -- be+kerja
|
|
-- |"r" + _ ) -- be+rehat
|
|
-- => "be" + jalan ;
|
|
|
|
-- -- Default allomorph: ber
|
|
-- _ => "ber" + jalan
|
|
-- } ;
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Nouns
|
|
|
|
param
|
|
Case = Nom | Acc | Dat | Soc | Gen | Instr | Loc | Abl ;
|
|
-- Number = Already available from ParamX.gf under "common" folder
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Numerals
|
|
|
|
--param
|
|
-- DForm = Indep | Attrib ;
|
|
|
|
-- CardOrd = NOrd | NCard ;
|
|
|
|
NumType = NoNum Number | IsNumber ;
|
|
|
|
--oper
|
|
-- isNum : NumType -> Bool = \nt -> case nt of {
|
|
-- NoNum _ => False ;
|
|
-- _ => True
|
|
-- } ;
|
|
|
|
-- toNum : NumType -> Number = \nt -> case nt of {
|
|
-- NoNum n => n ;
|
|
-- _ => Sg
|
|
-- } ;
|
|
--------------------------------------------------------------------------------
|
|
-- Adjectives
|
|
|
|
--param
|
|
-- AForm = TODOAdj ;
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Prepositions
|
|
--param
|
|
-- PrepType = DirObj | EmptyPrep | OtherPrep ;
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Adverbs
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Verbs
|
|
param
|
|
--Tense = Already available from ParamX.gf under "common" folder
|
|
Gender = Masc | Fem | Neu | Hon | Hum ; -- Male, Female, Neuter, Honorary, Humble
|
|
VForm = VF Person Number | VFP3 Number Gender ;
|
|
|
|
--------------------------------------------------------------------------------
|
|
-- Clauses
|
|
|
|
--param
|
|
|
|
-- ClType = Statement | PolarQuestion | WhQuestion | Subord ;
|
|
|
|
--}
|
|
}
|