diff --git a/src/toki-pona/LexiconTok.gf b/src/toki-pona/LexiconTok.gf index bbeadda27..ce40160e8 100644 --- a/src/toki-pona/LexiconTok.gf +++ b/src/toki-pona/LexiconTok.gf @@ -42,18 +42,18 @@ lin bird_N = mkN "waso" ; -- lin bone_N = mkN "" ; -- lin boot_N = mkN "" ; -- lin boss_N = mkN "" ; --- lin book_N = mkN "" ; +lin book_N = mkN "lipu" ; lin boy_N = mkN "mije" ; -- lin bread_N = mkN "" ; --- lin break_V2 = mkV2 "" ; +lin break_V2 = mkV2 "pakala" ; -- lin breast_N = mkN "" ; -- lin breathe_V = mkV "" ; -- lin broad_A = mkA "" ; -- lin brother_N2 = mkN "" ; -- lin brown_A = mkA "" ; --- lin burn_V = mkV "" ; +lin burn_V = mkV "seli" ; -- lin butter_N = mkN "" ; --- lin buy_V2 = mkV2 "" ; +lin buy_V2 = mkV2 "esun" ; ---- -- C @@ -75,7 +75,7 @@ lin boy_N = mkN "mije" ; -- lin cloud_N = mkN "" ; -- lin coat_N = mkN "" ; -- lin cold_A = mkA "" ; --- lin come_V = mkV "" ; +lin come_V = mkV "kama" ; -- lin computer_N = mkN "" ; -- lin correct_A = mkA "" ; -- lin count_V2 = mkV2 "" ; @@ -104,13 +104,13 @@ lin dog_N = mkN "soweli" ; ---- -- E --- lin ear_N = mkN "" ; --- lin earth_N = mkN "" ; --- lin eat_V2 = mkV "" ; +lin ear_N = mkN "kute" ; +lin earth_N = mkN "ma" ; +lin eat_V2 = mkV "eat" ; -- lin egg_N = mkN "" ; -- lin empty_A = mkA "" ; -- lin enemy_N = mkN "" ; --- lin eye_N = mkN "" ; +lin eye_N = mkN "lukin" ; ---- -- F @@ -127,7 +127,7 @@ lin dog_N = mkN "soweli" ; -- lin find_V2 = mkV2 "" ; -- lin fingernail_N = mkN "" ; -- lin fire_N = mkN "" ; --- lin fish_N = mkN "" ; +lin fish_N = mkN "kala" ; -- lin float_V = mkV "" ; -- lin floor_N = mkN "" ; -- lin flow_V = mkV "" ; @@ -140,7 +140,7 @@ lin dog_N = mkN "soweli" ; -- lin freeze_V = mkV "" ; -- lin fridge_N = mkN "" ; -- lin friend_N = mkN "" ; --- lin fruit_N = mkN "" ; +lin fruit_N = mkN "kili" ; -- lin full_A = mkA "" ; -- --lin fun_AV @@ -192,7 +192,7 @@ lin john_PN = mkPN "jan" "Jon" ; -- lin kill_V2 = mkV2 "" ; -- lin king_N = mkN "" ; -- lin knee_N = mkN "" ; --- lin know_V2 = mkV2 "" ; +lin know_V2 = mkV2 "sona" ; -- lin know_VQ = mkVQ (mkV "") ; -- lin know_VS = mkV "" ; @@ -218,7 +218,7 @@ lin language_N = mkN "toki" ; -- lin lose_V2 = mkV2 "" ; -- lin louse_N = mkN "" ; lin love_N = mkN "olin" ; --- lin love_V2 = mkV2 "olin" ; +lin love_V2 = mkV2 "olin" ; ---- -- M @@ -227,7 +227,7 @@ lin love_N = mkN "olin" ; -- lin married_A2 = mkA2 (mkA "") ; -- lin meat_N = mkN "" ; -- lin milk_N = mkN "" ; --- lin moon_N = mkN "" ; +lin moon_N = mkN "mun" ; -- lin mother_N2 = mkN2 (mkN "") ; -- lin mountain_N = mkN "" ; -- lin mouth_N = mkN "" ; @@ -236,7 +236,7 @@ lin love_N = mkN "olin" ; ---- -- N --- lin name_N = mkN "" ; +lin name_N = mkN "nimi" ; -- lin narrow_A = mkA "" ; -- lin near_A = mkA "" ; -- lin neck_N = mkN "" ; diff --git a/src/toki-pona/NounTok.gf b/src/toki-pona/NounTok.gf index 2ee47b0eb..801fd72f1 100644 --- a/src/toki-pona/NounTok.gf +++ b/src/toki-pona/NounTok.gf @@ -51,11 +51,11 @@ concrete NounTok of Noun = CatTok ** open ResTok, Prelude in { -- Determiners can form noun phrases directly. +-} -- : Det -> NP ; DetNP det = emptyNP ** { - s = \\_ => linDet det ; + s = det.s } ; --} -- MassNP : CN -> NP ; MassNP cn = emptyNP ** { s = linCN cn diff --git a/src/toki-pona/ParadigmsTok.gf b/src/toki-pona/ParadigmsTok.gf index ab025e485..f2e5d3788 100644 --- a/src/toki-pona/ParadigmsTok.gf +++ b/src/toki-pona/ParadigmsTok.gf @@ -146,13 +146,13 @@ oper mkV : Str -> V = \s -> lin V (mkVerb s) ; } ; -{- - mkV2 = overload { - mkV2 : Str -> V2 = \s -> … - mkV2 : V -> Prep -> V2 = \s -> … + mkV2 : Str -> V2 = \s -> ss s + -- mkV2 : V -> Prep -> V2 = \s -> … } ; +{- + mkV3 = overload { mkV3 : V -> V3 = \s -> … mkV3 : V -> Prep -> Prep -> V3 = \s -> … diff --git a/src/toki-pona/SentenceTok.gf b/src/toki-pona/SentenceTok.gf index 96810b0f7..240126e49 100644 --- a/src/toki-pona/SentenceTok.gf +++ b/src/toki-pona/SentenceTok.gf @@ -17,35 +17,34 @@ lin } ; } ; -{- -- : SC -> VP -> Cl ; -- that she goes is good - PredSCVP sc vp = ; + -- PredSCVP sc vp = ; --2 Clauses missing object noun phrases -- : NP -> VPSlash -> ClSlash ; - SlashVP = + -- SlashVP = \np,vps -> ss () -- : ClSlash -> Adv -> ClSlash ; -- (whom) he sees today - AdvSlash cls adv = + -- AdvSlash cls adv = -- : Cl -> Prep -> ClSlash ; -- (with whom) he walks - SlashPrep cl prep = cl ** {c2 = prep} ; + -- SlashPrep cl prep = cl ** {c2 = prep} ; -- Imperatives -- : VP -> Imp ; - ImpVP vp = + -- ImpVP vp = --2 Embedded sentences -- : S -> SC ; - EmbedS s = + -- EmbedS s = -- : QS -> SC ; - EmbedQS qs = + -- EmbedQS qs = -- : VP -> SC ; - EmbedVP vp = --} + -- EmbedVP vp = + --2 Sentences -- : Temp -> Pol -> Cl -> S ; diff --git a/src/toki-pona/StructuralTok.gf b/src/toki-pona/StructuralTok.gf index a5fbb6bfe..186f0ac9b 100644 --- a/src/toki-pona/StructuralTok.gf +++ b/src/toki-pona/StructuralTok.gf @@ -74,7 +74,7 @@ concrete StructuralTok of Structural = CatTok ** -- lin no_Quant = -- lin that_Quant = mkQuant "" ; --- lin this_Quant = mkQuant "" ; +lin this_Quant = mkQuant "ni" ; -- lin which_IQuant = mkQuant "" ; ----- @@ -155,7 +155,7 @@ lin language_title_Utt = ss "toki pona" ; ------- -- Verb --- lin have_V2 = +lin have_V2 = mkV "jo" ; lin can8know_VV = ss "ken" ; lin can_VV = ss "ken" ; diff --git a/src/toki-pona/VerbTok.gf b/src/toki-pona/VerbTok.gf index b3c990074..68b731c86 100644 --- a/src/toki-pona/VerbTok.gf +++ b/src/toki-pona/VerbTok.gf @@ -14,7 +14,7 @@ lin -- PassV2 v2 = -- : VPSlash -> VP ; - -- ReflVP vps = + ReflVP vps = vps ; -- : VV -> VP -> VP ; ComplVV vv vp = { s = vv.s ++ vp.s ;} ; @@ -34,61 +34,58 @@ lin -} -------- -- Slash -{- -- : V2 -> VPSlash - SlashV2a v2 = + SlashV2a v2 = v2 ; -- : V3 -> NP -> VPSlash ; -- give it (to her) - Slash2V3 v3 dobj = + -- Slash2V3 v3 dobj = -- : V3 -> NP -> VPSlash ; -- give (it) to her - Slash3V3 v3 iobj = + -- Slash3V3 v3 iobj = - SlashV2A v2 adj = + -- SlashV2A v2 adj = -- : V2S -> S -> VPSlash ; -- answer (to him) that it is good - SlashV2S v2s s = + -- SlashV2S v2s s = -- : V2V -> VP -> VPSlash ; -- beg (her) to go - SlashV2V v2v vp = ; + -- SlashV2V v2v vp = ; -- : V2Q -> QS -> VPSlash ; -- ask (him) who came - SlashV2Q v2q qs = ; + -- SlashV2Q v2q qs = ; -- : V2A -> AP -> VPSlash ; -- paint (it) red - SlashV2A v2a ap = ; + -- SlashV2A v2a ap = ; -- : VPSlash -> NP -> VP -- Often VPSlash has a field called c2, which is used to pick right form of np complement - ComplSlash vps np = vps ** { - compl = np.s ! vps.c2 - } ; + ComplSlash vps np = ss (vps.s ++ "e" ++ np.s) ; -- : VV -> VPSlash -> VPSlash ; - SlashVV vv vps = ComplVV vv vps ** { - } ; + -- SlashVV vv vps = ComplVV vv vps ** { + -- } ; -- : V2V -> NP -> VPSlash -> VPSlash ; -- beg me to buy - SlashV2VNP v2v np vps = + -- SlashV2VNP v2v np vps = -- : VP -> Adv -> VP ; -- sleep here - AdvVP vp adv = + -- AdvVP vp adv = -- : AdV -> VP -> VP ; -- always sleep - AdVVP adv vp = + -- AdVVP adv vp = -- : VPSlash -> Adv -> VPSlash ; -- use (it) here - AdvVPSlash = insertAdv ; + -- AdvVPSlash = insertAdv ; -- : VP -> Adv -> VP ; -- sleep , even though ... - ExtAdvVP vp adv = ; + -- ExtAdvVP vp adv = ; -- : AdV -> VPSlash -> VPSlash ; -- always use (it) - AdVVPSlash adv vps = vps ** { adv = adv.s ++ vps.adv } ; + -- AdVVPSlash adv vps = vps ** { adv = adv.s ++ vps.adv } ; -- : VP -> Prep -> VPSlash ; -- live in (it) - VPSlashPrep vp prep = vp ** {c2 = prep} ; + -- VPSlashPrep vp prep = vp ** {c2 = prep} ; --2 Complements to copula @@ -96,19 +93,18 @@ lin -- Adjectival phrases, noun phrases, and adverbs can be used. -- : AP -> Comp ; - CompAP ap = + -- CompAP ap = -- : CN -> Comp ; - CompCN cn = + -- CompCN cn = -- NP -> Comp ; - CompNP np = + -- CompNP np = -- : Adv -> Comp ; - CompAdv adv = + -- CompAdv adv = -- : VP -- Copula alone; - UseCopula = --} + -- UseCopula = }