From ac54c8e6e590468b0d2801f221876de8e8459803 Mon Sep 17 00:00:00 2001 From: aarne Date: Wed, 10 Nov 2010 17:01:12 +0000 Subject: [PATCH] lib/amharic by Markos Kassa Gobena --- examples/attempto/Attempto.gf | 2 + examples/attempto/AttemptoEng.gf | 8 +- examples/attempto/AttemptoI.gf | 1 + lib/src/amharic/AdjectiveAmh.gf | 69 + lib/src/amharic/AdverbAmh.gf | 17 + lib/src/amharic/AllAmh.gf | 3 + lib/src/amharic/AllAmhAbs.gf | 3 + lib/src/amharic/CatAmh.gf | 44 + lib/src/amharic/ConjunctionAmh.gf | 33 + lib/src/amharic/ExtAmh.gf | 12 + lib/src/amharic/ExtAmhAbs.gf | 11 + lib/src/amharic/GrammarAmh.gf | 26 + lib/src/amharic/IdiomAmh.gf | 14 + lib/src/amharic/IrregAmh.gf | 181 ++ lib/src/amharic/LangAmh.gf | 15 + lib/src/amharic/LexAmhTran.gf | 378 +++++ lib/src/amharic/LexiconAmh.gf | 378 +++++ lib/src/amharic/LexiconMlt.gf | 57 + lib/src/amharic/MorphoAmh.gf | 81 + lib/src/amharic/NounAmh.gf | 201 +++ lib/src/amharic/NumeralAmh.gf | 121 ++ lib/src/amharic/Numerals.gf | 35 + lib/src/amharic/OrthoAmh.gf | 7 + lib/src/amharic/ParadigmsAmh.gf | 2408 +++++++++++++++++++++++++++ lib/src/amharic/PatternsAmh.gf | 1389 +++++++++++++++ lib/src/amharic/PhraseAmh.gf | 37 + lib/src/amharic/QuestionAmh.gf | 46 + lib/src/amharic/RelativeAmh.gf | 58 + lib/src/amharic/ResAmh.gf | 1251 ++++++++++++++ lib/src/amharic/SentenceAmh.gf | 69 + lib/src/amharic/StructuralAmh.gf | 127 ++ lib/src/amharic/SymbolAmh.gf | 47 + lib/src/amharic/VerbAmh.gf | 331 ++++ lib/src/amharic/amharic.gf | 86 + lib/src/amharic/transliterateAmh.gf | 8 + 35 files changed, 7552 insertions(+), 2 deletions(-) create mode 100644 lib/src/amharic/AdjectiveAmh.gf create mode 100644 lib/src/amharic/AdverbAmh.gf create mode 100644 lib/src/amharic/AllAmh.gf create mode 100644 lib/src/amharic/AllAmhAbs.gf create mode 100644 lib/src/amharic/CatAmh.gf create mode 100644 lib/src/amharic/ConjunctionAmh.gf create mode 100644 lib/src/amharic/ExtAmh.gf create mode 100644 lib/src/amharic/ExtAmhAbs.gf create mode 100644 lib/src/amharic/GrammarAmh.gf create mode 100644 lib/src/amharic/IdiomAmh.gf create mode 100644 lib/src/amharic/IrregAmh.gf create mode 100644 lib/src/amharic/LangAmh.gf create mode 100644 lib/src/amharic/LexAmhTran.gf create mode 100644 lib/src/amharic/LexiconAmh.gf create mode 100644 lib/src/amharic/LexiconMlt.gf create mode 100644 lib/src/amharic/MorphoAmh.gf create mode 100644 lib/src/amharic/NounAmh.gf create mode 100644 lib/src/amharic/NumeralAmh.gf create mode 100644 lib/src/amharic/Numerals.gf create mode 100644 lib/src/amharic/OrthoAmh.gf create mode 100644 lib/src/amharic/ParadigmsAmh.gf create mode 100644 lib/src/amharic/PatternsAmh.gf create mode 100644 lib/src/amharic/PhraseAmh.gf create mode 100644 lib/src/amharic/QuestionAmh.gf create mode 100644 lib/src/amharic/RelativeAmh.gf create mode 100644 lib/src/amharic/ResAmh.gf create mode 100644 lib/src/amharic/SentenceAmh.gf create mode 100644 lib/src/amharic/StructuralAmh.gf create mode 100644 lib/src/amharic/SymbolAmh.gf create mode 100644 lib/src/amharic/VerbAmh.gf create mode 100644 lib/src/amharic/amharic.gf create mode 100644 lib/src/amharic/transliterateAmh.gf diff --git a/examples/attempto/Attempto.gf b/examples/attempto/Attempto.gf index 0020973ce..0a58ae398 100644 --- a/examples/attempto/Attempto.gf +++ b/examples/attempto/Attempto.gf @@ -254,6 +254,8 @@ fun impVP : VP -> Text ; -- go to the bank! fun numeralCard : Numeral -> Card ; -- fifteen banks fun digitsCard : Digits -> Card ; -- 8 banks fun have_V2 : V2 ; -- has (an apple) +fun v2_byVP : V2 -> NP -> VP ; -- is bought by a customer + } diff --git a/examples/attempto/AttemptoEng.gf b/examples/attempto/AttemptoEng.gf index 5e13b3aab..80ccf64fb 100644 --- a/examples/attempto/AttemptoEng.gf +++ b/examples/attempto/AttemptoEng.gf @@ -1,7 +1,11 @@ --# -path=.:present -concrete AttemptoEng of Attempto = SymbolsC,NumeralEng ** AttemptoI with +concrete AttemptoEng of Attempto = SymbolsC,NumeralEng ** AttemptoI - [which_RP] with (Syntax = SyntaxEng), (Symbolic = SymbolicEng), - (LexAttempto = LexAttemptoEng) ; + (LexAttempto = LexAttemptoEng) ** open SyntaxEng, ExtraEng in { + +lin which_RP = SyntaxEng.which_RP | that_RP ; + +} ; diff --git a/examples/attempto/AttemptoI.gf b/examples/attempto/AttemptoI.gf index f81631641..9343d8bae 100644 --- a/examples/attempto/AttemptoI.gf +++ b/examples/attempto/AttemptoI.gf @@ -251,6 +251,7 @@ lin impVP vp = mkText (mkImp vp) ; lin numeralCard n = mkCard ; lin digitsCard n = mkCard ; lin have_V2 = Syntax.have_V2 ; +lin v2_byVP v2 np = mkVP (passiveVP v2) (mkAdv by8agent_Prep np) ; } diff --git a/lib/src/amharic/AdjectiveAmh.gf b/lib/src/amharic/AdjectiveAmh.gf new file mode 100644 index 000000000..97ca1c056 --- /dev/null +++ b/lib/src/amharic/AdjectiveAmh.gf @@ -0,0 +1,69 @@ +concrete AdjectiveAmh of Adjective = CatAmh ** open ResAmh,ParamX, Prelude in { + + flags coding = utf8 ; + lin + PositA a = { + + s = \\g,n,s,c => a.s ! g ! n ! s ! c + }; + + ComparA a np = { + + s = \\g,n,s,c => + + case c of + + { + Acc =>"ከ" ++ np.s ! Nom ++ "ይልቅ"++ a.s ! g ! n ! s ! c ; + _ => affix2 ("ከ")!c ++ np.s ! Nom ++ "ይልቅ"++ a.s ! g ! n ! s ! Nom + } + } ; + + --FIX ada.s ? strange error : + {- + AdAP ada ap = { + + s = \\g,n,s,c => + case c of + { + Acc => ada.s ++ ap.s ! g ! Sg ! Indef ! c; + _ => affix2 ada.s !c ++ ap.s ! g ! Sg ! Indef ! Nom + } + } ;-} + + AdAP ada ap = { + + s = \\g,n,s,c => ada.s ++ ap.s ! g ! Sg ! Indef ! c + + }; + + UseComparA a = { + + s = \\g,n,s,c => "በደምብ" ++ a.s ! g ! Sg ! Indef ! Nom + + }; + + AdjOrd ord = { + + s = \\g,n,s,c => + + case c of + + { + Acc =>"ከሁሉ" ++ ord.s!g!n!s!c ; + _ => affix2 ("ከሁሉ")!c ++ ord.s ! g!n!s!Nom + } + + + }; + + -- CAdvAP : CAdv -> AP -> NP -> AP ; -- as cool as John + + + CAdvAP ad ap np = { + + s = \\g,n,s,c => ad.s ++ ad.p ++ np.s ! Nom ++ ap.s ! g ! n ! s ! c ; + + } ; + +} diff --git a/lib/src/amharic/AdverbAmh.gf b/lib/src/amharic/AdverbAmh.gf new file mode 100644 index 000000000..28de788ec --- /dev/null +++ b/lib/src/amharic/AdverbAmh.gf @@ -0,0 +1,17 @@ + + +--# -path=.:../abstract:../common:../../prelude + +concrete AdverbAmh of Adverb = CatAmh ** open ResAmh, Prelude,ParamX in { +flags coding = utf8; +-- + lin + PositAdvAdj a = {s = "በ" ++ a.s ! Masc! Sg! Indef! Nom ++"ሁኔታ"} ; + + PrepNP prep np = {s = preOrPost2 prep.isPre (prep.s)(np.s ! Nom)(prep.s2)}; + + AdAdv ada ad ={s = ada.s ++ ad.s }; + + ComparAdvAdj c a n = {s= "ከ" ++ n.s!Nom++c.s ++c.p ++ "በ" ++ a.s ! Masc! Sg! Indef! Nom ++"ሁኔታ"}; + +} diff --git a/lib/src/amharic/AllAmh.gf b/lib/src/amharic/AllAmh.gf new file mode 100644 index 000000000..5e075ae03 --- /dev/null +++ b/lib/src/amharic/AllAmh.gf @@ -0,0 +1,3 @@ +--# -path=.:../abstract:../common:prelude +-- +concrete AllAmh of AllAmhAbs = LangAmh, ExtAmh ; diff --git a/lib/src/amharic/AllAmhAbs.gf b/lib/src/amharic/AllAmhAbs.gf new file mode 100644 index 000000000..9facb4aa5 --- /dev/null +++ b/lib/src/amharic/AllAmhAbs.gf @@ -0,0 +1,3 @@ +--# -path=.:../abstract:../common:prelude + +abstract AllAmhAbs = Lang, ExtAmhAbs ; diff --git a/lib/src/amharic/CatAmh.gf b/lib/src/amharic/CatAmh.gf new file mode 100644 index 000000000..628dd6b2b --- /dev/null +++ b/lib/src/amharic/CatAmh.gf @@ -0,0 +1,44 @@ +concrete CatAmh of Cat = CommonX ** open ResAmh, Prelude in { + +lincat + + + CN,N = ResAmh.Noun ;-- {s :Number => Species => Case => Str; g : Gender} ; + N2 = ResAmh.N2 ;--{s : Number => Case => Str ; g : Gender} ** {c2 : Str} ; + N3 = ResAmh.N3 ;--{s : Number => Case => Str ; g : Gender} ** {c2,c3 : Str} ; + A2V,A= ResAmh.Adjective ;--{s : Gender => Number => Species => Case => Str} ; + V = ResAmh.Verb ; + V,V0,VS,VQ,VA,V2A,V2V,V2S,V2Q,VV= ResAmh.Verb ; -- = {s : VForm => Str} ; + V2 = ResAmh.Verb ** {c2 : Prep} ; + V3 = ResAmh.Verb ** {c2, c3 : Prep} ; + Pron,NP = ResAmh.NP ; --NP = {s : Case => Str ; a : Agr} ; + VP = ResAmh.VP ; + Comp =ResAmh.Comp; + PN = ResAmh.PN ; --{s : Number => Species => Case => Str ; g : Gender} ; + Quant = ResAmh.Quant; + Det = ResAmh.Det;--{s : Gender => Case => Str ; n : Number ; isDef : Bool }; + Predet = ResAmh.Predet; + AP = ResAmh.AP; + Prep = ResAmh.Prep; + Numeral = ResAmh.Numeral; --{s : CardOrd => Case => Str ; n : Number} ; + Digits = ResAmh.Digits;--{s : CardOrd => Case => Str ; n : Number ; tail : DTail} ; + Ord = ResAmh.Ord ; --{ s : Case => Str } ; + Num = ResAmh.Num;--{s : Case => Str ; n : Number ; hasCard : Bool} ; + Card = ResAmh.Card;--{s : Case => Str ; n : Number} ; + Cl = ResAmh.Cl; -- {s : Tense => Pol => Str}; + QCl = ResAmh.QCl; + Obj = ResAmh.Obj; + VPSlash = ResAmh.VPSlash; + ClSlash = ResAmh.ClSlash; + Imp = ResAmh.Imp; + S = ResAmh.S; + IP = ResAmh.IP;-- {s : Str ; n : ResAra.Number} ; + IDet = ResAmh.IDet ; + IQuant = ResAmh.IQuant; + Conj = ResAmh.Conj; + +} + + + + diff --git a/lib/src/amharic/ConjunctionAmh.gf b/lib/src/amharic/ConjunctionAmh.gf new file mode 100644 index 000000000..c22284c15 --- /dev/null +++ b/lib/src/amharic/ConjunctionAmh.gf @@ -0,0 +1,33 @@ + + +concrete ConjunctionAmh of Conjunction = +CatAmh ** open ResAmh, Coordination, Prelude,ParamX, CommonX in { + + flags optimize=all_subs ; + coding = utf8; + + lin + + ConjS = conjunctDistrSS ; + ConjAdv = conjunctDistrSS ; + ConjNP conj ss = conjunctDistrTable Case conj ss ** { a = {png= conjAgr (agrP3 conj.n) ss.a.png ;isPron =False}}; + ConjAP conj ss = conjunctDistrTable4 Gender Number Species Case conj ss ; + + + + BaseS = twoSS ; + ConsS = consrSS "፣" ; + BaseAdv = twoSS ; + ConsAdv = consrSS "፣" ; + BaseNP x y = twoTable Case x y ** {a = {png =conjAgr x.a.png y.a.png ;isPron = False}} ; + ConsNP xs x = consrTable Case "፣" xs x ** {a = { png = conjAgr xs.a.png x.a.png ;isPron =False} }; + BaseAP x y = twoTable4 Gender Number Species Case x y ; + ConsAP xs x = consrTable4 Gender Number Species Case "፤" xs x ; + + lincat + [S] = {s1,s2 : Str} ; + [Adv]= {s1,s2 : Str} ; + [NP] = {s1,s2 : Case => Str ; a : Agr} ; + [AP] = {s1,s2 : Gender => Number => Species => Case => Str} ; + +} diff --git a/lib/src/amharic/ExtAmh.gf b/lib/src/amharic/ExtAmh.gf new file mode 100644 index 000000000..e377be093 --- /dev/null +++ b/lib/src/amharic/ExtAmh.gf @@ -0,0 +1,12 @@ +concrete ExtAmh of ExtAmhAbs = CatAmh ** + + open MorphoAmh, ResAmh, ParadigmsAmh,ParamX, Prelude in { +-- + flags optimize=all ; coding=utf8 ; + +lin + youSgFem_Pron = pronNP "አንቺ" "አንቺን" "የአንቺ" "ለአንቺ" (Per2 Sg Fem); + hePol_pron = pronNP "እርሳቸው" "እርሳቸውን" "የእርሳቸው" "ለእርሳቸው" (Per3 Pl Masc) ; + shePol_pron = pronNP "እርሳቸው" "እርሳቸውን" "የእርሳቸው" "ለእርሳቸው" (Per3 Pl Masc) ; + +} diff --git a/lib/src/amharic/ExtAmhAbs.gf b/lib/src/amharic/ExtAmhAbs.gf new file mode 100644 index 000000000..44bea47fa --- /dev/null +++ b/lib/src/amharic/ExtAmhAbs.gf @@ -0,0 +1,11 @@ +abstract ExtAmhAbs = Cat ** { + + + fun + + + youSgFem_Pron : Pron ; + shePol_pron : Pron ; + hePol_pron : Pron ; + +} diff --git a/lib/src/amharic/GrammarAmh.gf b/lib/src/amharic/GrammarAmh.gf new file mode 100644 index 000000000..6663204e9 --- /dev/null +++ b/lib/src/amharic/GrammarAmh.gf @@ -0,0 +1,26 @@ +--# -path=.:../abstract:../common:prelude + +-- (c) 2010 Markos KG +-- Licensed under LGPL + +concrete GrammarAmh of Grammar = + NounAmh, + VerbAmh, + AdjectiveAmh, + AdverbAmh, + NumeralAmh, + SentenceAmh, + QuestionAmh, + RelativeAmh, + ConjunctionAmh, + PhraseAmh, + TextX, + StructuralAmh, + IdiomAmh, + TenseX + + ** { + + flags startcat = Phr ; unlexer = text ; lexer = text ;coding=utf8 ; + +} ; diff --git a/lib/src/amharic/IdiomAmh.gf b/lib/src/amharic/IdiomAmh.gf new file mode 100644 index 000000000..bcdf28f78 --- /dev/null +++ b/lib/src/amharic/IdiomAmh.gf @@ -0,0 +1,14 @@ +concrete IdiomAmh of Idiom = CatAmh ** open Prelude, ResAmh in { +---- +---- flags optimize=all_subs ; +---- +---- lin +---- ExistNP np = +---- mkClause "تهري" (agrP3 np.a.n) (insertObj (\\_ => np.s ! Acc) (predAux auxBe)) ; +---- ImpersCl vp = mkClause "ِت" (agrP3 Sg) vp ; +---- GenericCl vp = mkClause "ْني" (agrP3 Sg) vp ; +---- +---- ProgrVP vp = insertObj (\\a => vp.ad ++ vp.prp ++ vp.s2 ! a) (predAux auxBe) ; +---- ProgrVP : VP -> VP ; -- be sleeping +} + diff --git a/lib/src/amharic/IrregAmh.gf b/lib/src/amharic/IrregAmh.gf new file mode 100644 index 000000000..31c0ca132 --- /dev/null +++ b/lib/src/amharic/IrregAmh.gf @@ -0,0 +1,181 @@ +--# -path=.:prelude:../abstract:../common + +concrete IrregAmh of IrregAmhAbs = CatAmh ** open ParadigmsAmh in { +---- +----flags optimize=values ; +---- +---- lin +---- awake_V = irregV "َوَكي" "َوْكي" "َوْكن" ; +---- bear_V = irregV "بَر" "بْري" "بْرن" ; +---- beat_V = irregV "بَت" "بَت" "بَت" ; +---- become_V = irregV "بعْمي" "بعَمي" "بعْمي" ; +---- begin_V = irregV "بغِن" "بغَن" "بغُن" ; +---- bend_V = irregV "بند" "بنت" "بنت" ; +---- beset_V = irregV "بست" "بست" "بست" ; +---- bet_V = irregDuplV "بت" "بت" "بت" ; +---- bid_V = irregDuplV "بِد" (variants {"بِد" ; "بَدي"}) (variants {"بِد" ; "بِدّن"}) ; +---- bind_V = irregV "بِند" "بُْند" "بُْند" ; +---- bite_V = irregV "بِتي" "بِت" "بِتّن" ; +---- bleed_V = irregV "بلّد" "بلد" "بلد" ; +---- blow_V = irregV "بلْو" "بلو" "بلْون" ; +---- break_V = irregV "برَك" "برْكي" "برْكن" ; +---- breed_V = irregV "برّد" "برد" "برد" ; +---- bring_V = irregV "برِنغ" "برُْغهت" "برُْغهت" ; +---- broadcast_V = irregV "برَْدعَست" "برَْدعَست" "برَْدعَست" ; +---- build_V = irregV "بُِلد" "بُِلت" "بُِلت" ; +---- burn_V = irregV "بُرن" (variants {"بُرند" ; "بُرنت"}) (variants {"بُرند" ; "بُرنت"}) ; +---- burst_V = irregV "بُرست" "بُرست" "بُرست" ; +---- buy_V = irregV "بُي" "بُْغهت" "بُْغهت" ; +---- cast_V = irregV "عَست" "عَست" "عَست" ; +---- catch_V = irregV "عَتعه" "عَُغهت" "عَُغهت" ; +---- choose_V = irregV "عهّْسي" "عهْسي" "عهْسن" ; +---- cling_V = irregV "علِنغ" "علُنغ" "علُنغ" ; +---- come_V = irregV "عْمي" "عَمي" "عْمي" ; +---- cost_V = irregV "عْست" "عْست" "عْست" ; +---- creep_V = irregV "عرّة" "عرةت" "عرةت" ; +---- cut_V = irregDuplV "عُت" "عُت" "عُت" ; +---- deal_V = irregV "دَل" "دَلت" "دَلت" ; +---- dig_V = irregDuplV "دِغ" "دُغ" "دُغ" ; +---- dive_V = irregV "دِثي" (variants {"دِثد" ; "دْثي"}) "دِثد" ; +---- do_V = mkV "دْ" "دْس" "دِد" "دْني" "دِْنغ" ; +---- draw_V = irregV "درَو" "درو" "درَون" ; +---- dream_V = irregV "درَم" (variants {"درَمد" ; "درَمت"}) (variants {"درَمد" ; "درَمت"}) ; +---- drive_V = irregV "درِثي" "درْثي" "درِثن" ; +---- drink_V = irregV "درِنك" "درَنك" "درُنك" ; +---- eat_V = irregV "َت" "َتي" "َتن" ; +---- fall_V = irregV "فَلّ" "فلّ" "فَلّن" ; +---- feed_V = irregV "فّد" "فد" "فد" ; +---- feel_V = irregV "فّل" "فلت" "فلت" ; +---- fight_V = irregV "فِغهت" "فُْغهت" "فُْغهت" ; +---- find_V = irregV "فِند" "فُْند" "فُْند" ; +---- fit_V = irregDuplV "فِت" "فِت" "فِت" ; +---- flee_V = irregV "فلّ" "فلد" "فلد" ; +---- fling_V = irregV "فلِنغ" "فلُنغ" "فلُنغ" ; +---- fly_V = irregV "فلي" "فلو" "فلْون" ; +---- forbid_V = irregDuplV "فْربِد" "فْربَدي" "فْربِدّن" ; +---- forget_V = irregDuplV "فْرغت" "فْرغْت" "فْرغْتّن" ; +---- forgive_V = irregV "فْرغِثي" "فْرغَثي" "فْرغِثن" ; +---- forsake_V = irregV "فْرسَكي" "فْرسّْك" "فْرسَكن" ; +---- freeze_V = irregV "فرّزي" "فرْزي" "فرْزن" ; +---- get_V = irregDuplV "غت" "غْت" "غْتّن" ; +---- give_V = irregV "غِثي" "غَثي" "غِثن" ; +---- go_V = irregV "غْ" "ونت" "غْني" ; +---- grind_V = irregV "غرِند" "غرُْند" "غرُْند" ; +---- grow_V = irregV "غرْو" "غرو" "غرْون" ; +---- hang_V = irregV "هَنغ" "هُنغ" "هُنغ" ; +---- have_V = mkV "هَثي" "هَس" "هَد" "هَد" "هَثِنغ" ; +---- hear_V = irregV "هَر" "هَرد" "هَرد" ; +---- hide_V = irregV "هِدي" "هِد" "هِدّن" ; +---- hit_V = irregDuplV "هِت" "هِت" "هِت" ; +---- hold_V = irregV "هْلد" "هلد" "هلد" ; +---- hurt_V = irregV "هُرت" "هُرت" "هُرت" ; +---- keep_V = irregV "كّة" "كةت" "كةت" ; +---- kneel_V = irregV "كنّل" "كنلت" "كنلت" ; +---- knit_V = irregDuplV "كنِت" "كنِت" "كنِت" ; +---- know_V = irregV "كنْو" "كنو" "كنْو" ; +---- lay_V = irregV "لَي" "لَِد" "لَِد" ; +---- lead_V = irregV "لَد" "لد" "لد" ; +---- leap_V = irregV "لَة" (variants {"لَةد" ; "لةت"}) (variants {"لَةد" ; "لةت"}) ; +---- learn_V = irregV "لَرن" (variants {"لَرند" ; "لَرنت"}) (variants {"لَرند" ; "لَرنت"}) ; +---- leave_V = irregV "لَثي" "لفت" "لفت" ; +---- lend_V = irregV "لند" "لنت" "لنت" ; +---- let_V = irregDuplV "لت" "لت" "لت" ; +---- lie_V = irregV "لِي" "لَي" "لَِن" ; +---- light_V = irregV "لِغهت" (variants {"لِغهتد" ; "لِت"}) "لِغهتد" ; +---- lose_V = irregV "لْسي" "لْست" "لْست" ; +---- make_V = irregV "مَكي" "مَدي" "مَدي" ; +---- mean_V = irregV "مَن" "مَنت" "مَنت" ; +---- meet_V = irregV "مّت" "مت" "مت" ; +---- misspell_V = irregV "مِسّةلّ" (variants {"مِسّةلّد" ; "مِسّةلت"}) (variants {"مِسّةلّد" ; "مِسّةلت"}) ; +---- mistake_V = irregV "مِستَكي" "مِستّْك" "مِستَكن" ; +---- mow_V = irregV "مْو" "مْود" (variants {"مْود" ; "مْون"}) ; +---- overcome_V = irregV "ْثرعْمي" "ْثرعَمي" "ْثرعْمي" ; +---- overdo_V = mkV "ْثردْ" "ْثردْس" "ْثردِد" "ْثردْني" "ْثردِْنغ" ; +---- overtake_V = irregV "ْثرتَكي" "ْثرتّْك" "ْثرتَكن" ; +---- overthrow_V = irregV "ْثرتهرْو" "ْثرتهرو" "ْثرتهرْون" ; +---- pay_V = irregV "ةَي" "ةَِد" "ةَِد" ; +---- plead_V = irregV "ةلَد" "ةلد" "ةلد" ; +---- prove_V = irregV "ةرْثي" "ةرْثد" (variants {"ةرْثد" ; "ةرْثن"}) ; +---- put_V = irregDuplV "ةُت" "ةُت" "ةُت" ; +---- quit_V = irregDuplV "قُِت" "قُِت" "قُِت" ; +---- read_V = irregV "رَد" "رَد" "رَد" ; +---- rid_V = irregDuplV "رِد" "رِد" "رِد" ; +---- ride_V = irregV "رِدي" "رْدي" "رِدّن" ; +---- ring_V = irregV "رِنغ" "رَنغ" "رُنغ" ; +---- rise_V = irregV "رِسي" "رْسي" "رِسن" ; +---- run_V = irregDuplV "رُن" "رَن" "رُن" ; +---- saw_V = irregV "سَو" "سَود" (variants {"سَود" ; "سَون"}) ; +---- say_V = irregV "سَي" "سَِد" "سَِد" ; +---- see_V = irregV "سّ" "سَو" "سّن" ; +---- seek_V = irregV "سّك" "سُْغهت" "سُْغهت" ; +---- sell_V = irregV "سلّ" "سْلد" "سْلد" ; +---- send_V = irregV "سند" "سنت" "سنت" ; +---- set_V = irregDuplV "ست" "ست" "ست" ; +---- sew_V = irregV "سو" "سود" (variants {"سود" ; "سون"}) ; +---- shake_V = irregV "سهَكي" "سهّْك" "سهَكن" ; +---- shave_V = irregV "سهَثي" "سهَثد" (variants {"سهَثد" ; "سهَثن"}) ; +---- shear_V = irregV "سهَر" "سهْري" "سهْرن" ; +---- shed_V = irregDuplV "سهد" "سهد" "سهد" ; +---- shine_V = irregV "سهِني" "سهْني" "سهْني" ; +---- shoe_V = irregV "سهْي" "سهْد" (variants {"سهْد" ; "سهْد"}) ; +---- shoot_V = irregV "سهّْت" "سهْت" "سهْت" ; +---- show_V = irregV "سهْو" "سهْود" (variants {"سهْود" ; "سهْون"}) ; +---- shrink_V = irregV "سهرِنك" "سهرَنك" "سهرُنك" ; +---- shut_V = irregDuplV "سهُت" "سهُت" "سهُت" ; +---- sing_V = irregV "سِنغ" "سَنغ" "سُنغ" ; +---- sink_V = irregV "سِنك" "سَنك" "سُنك" ; +---- sit_V = irregDuplV "سِت" "سَت" "سَت" ; +---- sleep_V = irregV "سلّة" "سلةت" "سلةت" ; +---- slay_V = irregV "سلَي" "سلو" "سلَِن" ; +---- slide_V = irregV "سلِدي" "سلِد" "سلِد" ; +---- sling_V = irregV "سلِنغ" "سلُنغ" "سلُنغ" ; +---- slit_V = irregDuplV "سلِت" "سلِت" "سلِت" ; +---- smite_V = irregV "سمِتي" "سمْتي" "سمِتّن" ; +---- sow_V = irregV "سْو" "سْود" (variants {"سْود" ; "سْون"}) ; +---- speak_V = irregV "سةَك" "سةْكي" "سةْكن" ; +---- speed_V = irregV "سةّد" "سةد" "سةد" ; +---- spend_V = irregV "سةند" "سةنت" "سةنت" ; +---- spill_V = irregV "سةِلّ" (variants {"سةِلّد" ; "سةِلت"}) (variants {"سةِلّد" ; "سةِلت"}) ; +---- spin_V = irregDuplV "سةِن" "سةُن" "سةُن" ; +---- spit_V = irregDuplV "سةِت" (variants {"سةِت" ; "سةَت"}) "سةِت" ; +---- split_V = irregDuplV "سةلِت" "سةلِت" "سةلِت" ; +---- spread_V = irregV "سةرَد" "سةرَد" "سةرَد" ; +---- spring_V = irregV "سةرِنغ" (variants {"سةرَنغ" ; "سةرُنغ"}) "سةرُنغ" ; +---- stand_V = irregV "ستَند" "ستّْد" "ستّْد" ; +---- steal_V = irregV "ستَل" "ستْلي" "ستْلن" ; +---- stick_V = irregV "ستِعك" "ستُعك" "ستُعك" ; +---- sting_V = irregV "ستِنغ" "ستُنغ" "ستُنغ" ; +---- stink_V = irregV "ستِنك" "ستَنك" "ستُنك" ; +---- stride_V = irregV "سترِدي" "سترْد" "سترِدّن" ; +---- strike_V = irregV "سترِكي" "سترُعك" "سترُعك" ; +---- string_V = irregV "سترِنغ" "سترُنغ" "سترُنغ" ; +---- strive_V = irregV "سترِثي" "سترْثي" "سترِثن" ; +---- swear_V = irregV "سوَر" "سوْري" "سوْرن" ; +---- sweep_V = irregV "سوّة" "سوةت" "سوةت" ; +---- swell_V = irregV "سولّ" "سولّد" (variants {"سولّد" ; "سوْلّن"}) ; +---- swim_V = irregDuplV "سوِم" "سوَم" "سوُم" ; +---- swing_V = irregV "سوِنغ" "سوُنغ" "سوُنغ" ; +---- take_V = irregV "تَكي" "تّْك" "تَكن" ; +---- teach_V = irregV "تَعه" "تَُغهت" "تَُغهت" ; +---- tear_V = irregV "تَر" "تْري" "تْرن" ; +---- tell_V = irregV "تلّ" "تْلد" "تْلد" ; +---- think_V = irregV "تهِنك" "تهُْغهت" "تهُْغهت" ; +---- thrive_V = irregV "تهرِثي" (variants {"تهرِثد" ; "تهرْثي"}) "تهرِثد" ; +---- throw_V = irregV "تهرْو" "تهرو" "تهرْون" ; +---- thrust_V = irregV "تهرُست" "تهرُست" "تهرُست" ; +---- tread_V = irregV "ترَد" "ترْد" "ترْدّن" ; +---- understand_V = irregV "ُندرستَند" "ُندرستّْد" "ُندرستّْد" ; +---- uphold_V = irregV "ُةهْلد" "ُةهلد" "ُةهلد" ; +---- upset_V = irregDuplV "ُةست" "ُةست" "ُةست" ; +---- wake_V = irregV "وَكي" "وْكي" "وْكن" ; +---- wear_V = irregV "وَر" "وْري" "وْرن" ; +---- weave_V = irregV "وَثي" (variants {"وَثد" ; "وْثي"}) (variants {"وَثد" ; "وْثن"}) ; +---- wed_V = irregDuplV "ود" "ود" "ود" ; +---- weep_V = irregV "وّة" "وةت" "وةت" ; +---- wind_V = irregV "وِند" "وُْند" "وُْند" ; +---- win_V = irregDuplV "وِن" "وْن" "وْن" ; +---- withhold_V = irregV "وِتهّْلد" "وِتهّلد" "وِتهّلد" ; +---- withstand_V = irregV "وِتهستَند" "وِتهستّْد" "وِتهستّْد" ; +---- wring_V = irregV "ورِنغ" "ورُنغ" "ورُنغ" ; +---- write_V = irregV "ورِتي" "ورْتي" "ورِتّن" ; +} diff --git a/lib/src/amharic/LangAmh.gf b/lib/src/amharic/LangAmh.gf new file mode 100644 index 000000000..64881e99a --- /dev/null +++ b/lib/src/amharic/LangAmh.gf @@ -0,0 +1,15 @@ +--# -path=.:../abstract:../common:../prelude + +--(c) 2010 Markos KG +-- Licensed under LGPL + +concrete LangAmh of Lang = + GrammarAmh, + LexiconAmh + ** { + + flags startcat = Phr ; unlexer = text ; lexer = text ; coding = utf8 ; + +} + + diff --git a/lib/src/amharic/LexAmhTran.gf b/lib/src/amharic/LexAmhTran.gf new file mode 100644 index 000000000..bbf342962 --- /dev/null +++ b/lib/src/amharic/LexAmhTran.gf @@ -0,0 +1,378 @@ +--# -path=.:prelude +-- (c) 2010 Markos KG +-- Licensed under LGPL + +concrete LexiconAmh of Lexicon = CatAmh ** open + + ParadigmsAmh, ResAmh, Prelude in { + + -- + flags + optimize=values ; + coding = utf8; + + lin + airplane_N = mkN "!wr/pl!n" ; + answer_V2S = mkV3mls"???";--answer_V2S = mkV2 (compoundV "????" (mkV "????")) ; + apartment_N = mkN "!p!rt!m!" ; + apple_N = mkN "b'l'?" ; + art_N = mkN "Tb'b" ; + ask_V2Q = mkV3mls "???";--ask_V2Q = mkV2 (mkV "??????") ; + baby_N = mkN "hS!n" ; + bad_A = mkA "m'Tf/" ; + bank_N = mkN "b!nk" ; + beautiful_A = mkA "q/nj/" ; + become_VA = mkV2nr"??";--become_VA = mkV "????"; + beer_N = mkN "b#r!" ; + beg_V2V = mkV3mls "???";-- beg_V2V = mkV2V (compoundV "?????" (mkV "????")) "??" "??" False; + big_A = mkA "tlq" ; + bike_N = mkN "b#?kl%t"; + bird_N = mkN "w'f" feminine ; + black_A = mkA "Tq&r" ; + bless_V = mkV3brk "???"; + blue_A = mkA "?m!y!w#" ; + boat_N = mkN "j'lb!" feminine ; + book_N = mkN "m'Sh!f" ; + boot_N = mkN "b/t#" ; + boss_N = mkN "!l'q!" ; + boy_N = mkN "lj" ; + bread_N = mkN "?b/" ; + break_V2 = mkV3gdl"???"; + broad_A = mkA "?f#" ; + brother_N = mkN "w'ndm"; + brown_A = mkA "b&n#" ; + butter_N = mkN "qb%" ; + buy_V2 = mkV2bl "??";--buy_V2 = mkV2 (mkV "??????"); + camera_N = mkN "k!m%r!" ; + cap_N = mkN "b!rn%T!" ; + car_N = mkN "m'k#n!" ; + carpet_N = mkN "mnT!f" ; + cat_N = mkN "?m't" feminine ; + ceiling_N = mkN "T!r!"; + chair_N = mkN "w'nb'r" ; + cheese_N = mkN "!yb"; + child_N = mkN "hS!n" ; + church_N = mkN (mkN "b%t'") (mkN "kr?ty!n" feminine); + city_N = mkN "k't'm!" feminine ; + clean_A = mkA "nS&h" ; + clever_A = mkA "blh" ; + close_V2 = mkV2bl "??";--close_V2 = mkV2 (compoundV "???" do_V2); + coat_N = mkN "k/t" ; + cold_A = mkA "q'zq!z!" ; + come_V = mkV2bl "??" ; + computer_N = mkN "k/mp#wt'r" ; + country_N = mkN "h!g'r" feminine ; + -- cousin_N = mkN "y'!k?t" (mkN "lj"); --cousin_N = mkCmpdNoun "???" (mkN "???") ; -- a compund noun made of two nouns + cow_N = mkN "l!m" feminine ; + die_V = mkV2nr "??" ; + dirty_A = mkA "q/x!x!" ; + distance_N3 = mkN3 (mkN (mkN "y!l'w") (mkN "rq't")) (mkPrep "k'" "" True) (mkPrep "w'd'" "" True); + doctor_N = mkN "h!k#m" ; + dog_N = mkN "wx!" ; + door_N = mkN "b'r" ; + drink_V2 = mkV2bl "??"; + --easy_A2V = mkA2V "q'l!l"; + eat_V2 = mkV2bl "??"; + empty_A = mkA "b!d/" ; + enemy_N = mkN "T'l!t" ; + factory_N = mkN "f!br#k!" ; + father_N2 = mkN2 (mkN "!b!t") (mkPrep "y'" "" True) ; + fear_VS = mkV2bl "??"; + --find_V2 = mkV2 (mkV "????") ; + fish_N = mkN "!?" ; + floor_N = mkN "w'l'l" ; + forget_V2 = mkV2bl"??";--forget_V2 = mkV2 (mkV "??????") ; + fridge_N = mkN "m!q'zq'Z!" ; + friend_N = mkN "g7d'N!"; + fruit_N = mkN "fr!fr%" ; +-- fun_AV = mkAV (regA "???") ; + garden_N = mkN "m!?" ; + girl_N = mkN "lj#t" feminine ; + glove_N = mkN "g&w!nt" ; + gold_N = mkN "w'rq" ; + good_A = mkA "Tr&" ; + --go_V = mkV "????" ; + green_A = mkA "!r'ng&Ad%" ; + harbour_N = mkN "w'd'b" ; --harbour_N = mkCmpdNoun "????" (mkN "???") ; + hate_V2 = mkV2bl "??";--hate_V2 = mkV2 (compoundV "????" do_V2) ; + hat_N = mkN "b!rn%T!" ; +-- have_V2 = dirV2 (mk5V "????" "???" "???" "???" "??????") ; + hear_V2 = mkV2bl "??";--hear_V2 = mkV2 (mkV "????") ; + hill_N = mkN "!q'b't" ; + --hope_VS = (compoundV "????" do_V2); -- + horse_N = mkN "f'r'?" ; + hot_A = mkA "tk&?" ; + house_N = mkN "b%t" ; + important_A = mkA "T'q!m#" ; + industry_N = mkN "#nd&?tr#" ; + iron_N = mkN "br't" ; + king_N = mkN "ng&?" ; + --know_V2 = mkV2 (mkV "?????") ; + --know_VS = mkV "?????"; + lake_N = mkN "h!yq" ; + lamp_N = mkN "k&r!z" ; + --learn_V2 = mkV3brk "???"; --learn_V2 = mkV2 (mkV "??????") ; + leather_N = mkN "q/d!" ; + leave_V2 = mkV3gdl "???";--leave_V2 = mkV2 (mkV "????") ; + like_V2 = mkV3gdl "???";--like_V2 = mkV2 (compoundV "????" do_V2); + --listen_V2 = mkV2 (mkV "????") ; + live_V = mkV2nr "??" ; ---- touch + long_A = mkA "r'jm" ; + lose_V2 = mkV2bl "??";--lose_V2 = mkV2 (compoundV "???" do_V2) ; + love_N = mkN "fqr" ; + --love_V2 = mkV2 (compoundV "????" do_V2) "??"; + man_N = mkN "?w" ; -- not correct according to rules should be discussed + --married_A2 = mkA "?????????" "??" ; + meat_N = mkN "?g!" ; + milk_N = mkN "w't't" ; + moon_N = mkN "C'r'q!" feminine ; + mother_N = mkN "(n!t" feminine; -- not covered need to be discussed + mountain_N = mkN "t'r!r!" ; + music_N = mkN "m&z#q!" feminine ; + narrow_A = mkA "T'b!b" ; + new_A = mkA "!d#?" ; + newspaper_N = mkN "g!z%T!" ; + oil_N = mkN "z'yt" ; + old_A = mkA "!r/g%" ; + open_V2 = mkV3gdl "???";--open_V2 = mkV2 (mkV "??????") ; + paint_V2A = mkV2bl "??";--paint_V2A = mkV2 (compoundV "???" do_V2) ; + paper_N = mkN "w'r'q't" ; + paris_PN = mkPN "p!r#?" Fem ; + peace_N = mkN "?l!m"; + pen_N = mkN "b(r" ; + planet_N = mkN "pl!n%t" ; + plastic_N = mkN "pl!?t#k" ; + --play_V2 = mkV2 (mkV "??????") ; + policeman_N = mkN "p/l#?" ; + priest_N = (mkN "q%?") ; +-- probable_AS = mkAS (regA "????????") ; + queen_N = mkN "ng?t" feminine ; + radio_N = mkN "r!d#y/" ; + --rain_V0 = compoundV "????" (mkV "????" ) ; + --read_V2 = mkV2 (mkV "?????"); + red_A = mkA "q'y" ; + religion_N = mkN "(mn't" ; + restaurant_N = mkN (mkN "mgb") (mkN "b%t"); + river_N = mkN "w'nz"; + rock_N = mkN "!l't" ; + roof_N = mkN "T!ry!"; + rubber_N = mkN "g/m!" ; + run_V = mkV2nr "??" ; + --say_V = mkV "";--say_VS = mkV "????" ; + school_N = mkN (mkN "tmhrt") (mkN "b%t") ; -- will + science_N = mkN "?yn?" ; + sea_N = mkN "b!hr" ; + --seek_V2 = mkV2 (compoundV "????" do_V2) ; + --see_V2 = mkV2 (mkV "??????") ; + --sell_V3 = mkV3 (mkV "?????") "??" ""; + send_V3 = mkV2yz "??";--send_V3 = mkV2yz "??"; + sheep_N = mkN "b'g"; + ship_N = mkN "m'rk'b" feminine ; + shirt_N = mkN "x'm#z"; + shoe_N = mkN "C!m!" ; + shop_N = mkN "?q"; + short_A = mkA "!Cr" ; + silver_N = mkN "br" ; + sister_N = mkN "(ht"; + sleep_V = mkV2bl "??" ; + small_A = mkA "tnx" ; + snake_N = mkN "(b!b" ; + sock_N = mkN "k!l?" ; + --speak_V2 = mkV2 (mkV "?????"); + star_N = mkN "k/k'b" feminine ; + steel_N = mkN "br't" ; + stone_N = mkN "dng!y" ; + stove_N = mkN "mdj!" ; + student_N =mkN "t'm!r#" ; + stupid_A = mkA "b!l'g%" ; + sun_N = mkN "S'h!y" feminine ; + switch8off_V2 = mkV2bl "??" ;--switch8off_V2 = mkV2 (mkV "?????") ; -- ADRAGI + switch8on_V2 = mkV2bl "??";--switch8on_V2 = mkV2 (compoundV "???" do_V2) ; -- ADRAGI -- abra + table_N = mkN "T'r'P%z!"; + --talk_V3 = mkV3 (mkV "?????") "??" "???????????"; + teacher_N = mkN "!?t'm!r#" ; + --teach_V2 = mkV2 (mkV "?????") ; + television_N = mkN "t%l%v#Zn" ; + thick_A = mkA "w'fr!m" ; + thin_A = mkA "q'Cn" ; + train_N = mkN "b!b&r" ; + --travel_V = mkV "????" ; + tree_N = mkN "z!f"; + ugly_A = mkA "f&ng!" ; + --understand_V2 = mkV2 (mkV "??????") ; + university_N = mkN "y&nv'r?t#" ; + village_N = mkN "m'nd'r" feminine ; + wait_V2 = mkV3mls "???"; --wait_V2 = mkV2 (compoundV "??????" do_V2) ; + + --walk_V = mkV "????" ; + warm_A = mkA "m&q" ; + war_N = mkN "T/rn't" ; + --watch_V2 = mkV2 (mkV "??????") ; + water_N = mkN "wh!" feminine ; -- not covered masculine ending with y + white_A = mkA "n'C" ; + window_N = mkN "m'?k/t" ; + wine_N = mkN "w'yn" ; + want_V = mkV3mls"???"; + + --win_V2 = mkV2 (mkV "?????") ; + woman_N = mkN "?t" feminine; + --wonder_VQ = compoundV "?????" (mkV "????") ; + wood_N = mkN "(nC't" ; + write_V2 = mkV3gdl "???";--write_V2 = mkV2 (mkV "?????") ; + yellow_A = mkA "b#C!" ; + young_A = mkA "w'T!t" ; + --do_V2 = mkV2 (mkV "????") ; + now_Adv = mkAdv "!h&n" ; + --already_Adv = mkAdv "?" ; + song_N = mkN "z'f'n" ; + add_V3 = mkV3mls "???";--add_V3 = mkV3 (compoundV "?????" do_V2) "" "" ; + number_N = mkN "q&Tr" ; + --put_V2 = mkV2 (mkV "?????") ; + stop_V = mkV2nr "??" ; -- some times A - qm ( later) + jump_V = mkV3gdl "???" ; + --left_Ord = {s = "gr!" ; n = singular}; + --right_Ord = {s= "q'N" ; n = singular}; + far_Adv = mkAdv "r&q" ; + correct_A = mkA "tkkl" ; + dry_A = mkA "d'r'q" ; + dull_A = mkA "d&ld&m" ; + full_A = mkA "m&l&" ; + heavy_A = mkA "k'b!d" ; + near_A = mkA "qrb" ; + rotten_A = mkA "gm" ; + round_A = mkA "kb" ; + sharp_A = mkA "x&l" ; + smooth_A = mkA "l'?l!?" ; + straight_A = mkA "q'Tt!" ; + wet_A = mkA "rTb" ; ---- + wide_A = mkA "?f#" ; + animal_N = mkN "(n??" ; + ashes_N = mkN "!m'd" ; + back_N = mkN "j'rb!" ; + bark_N = mkN "qrf#" ; + belly_N = mkN "h/d" ; + blood_N = mkN "d'm" ; + bone_N = mkN "!Tnt" ; + breast_N = mkN "T&t" ; + cloud_N = mkN "d'm'n!" ; + day_N = mkN "q'n" ; + dust_N = mkN "!b&w!r!" ; + ear_N = mkN "j/r/" ; + earth_N = mkN "m'r%t" feminine ; + egg_N = mkN "(nq&l!l" ; + eye_N = mkN "!yn" ; + fat_N = mkN "w'fr!m" ; + feather_N = mkN "l!b!" ; + fingernail_N = mkN "Tfr" ; + fire_N = mkN "(?t" ; + flower_N = mkN "!b'b!" ; + fog_N = mkN "Cg!g"; + foot_N = mkN "(gr" ; -- not properly covered need to be discussed + forest_N = mkN "C!k!" ; + grass_N = mkN "?r" ; + guts_N = mkN "" ; + hair_N = mkN "S'g&r" ; + hand_N = mkN "(j" ; + head_N = mkN "Cnql!t" ; + heart_N = mkN "lb" ; + horn_N = mkN "q'nd" ; + husband_N = mkN "b!l" ; + ice_N = mkN "b'r'd/"; + knee_N = mkN "g&lb't" ; + leaf_N = mkN "qT'l" ; + leg_N = mkN "(gr" ; + liver_N = mkN "g&b't" ; + louse_N = mkN "qm!l" feminine ; + mouth_N = mkN "!f" ; + name_N = mkN "?m" ; + neck_N = mkN "!ng't"; + night_N = mkN "mxt"; + nose_N = mkN "!fnC!" ; + person_N = mkN "?w" ; + rain_N = mkN "zn!b"; + road_N = mkN "m'ng'd" ; + root_N = mkN "?r" ; + rope_N = mkN "g'm'd" ; + salt_N = mkN "C'w" ; + sand_N = mkN "!x'w!" ; + seed_N = mkN "z'r" ; + skin_N = mkN "q/d!" ; + sky_N = mkN "?m!y" ; + smoke_N = mkN "C?"; -- singular masc nouns ending with aN,wN yet to be implemented + snow_N = mkN "b'r'd/"; + stick_N = mkN "b'tr" ; + tail_N = mkN "Cr!" ; + tongue_N = mkN "ml!?"; + tooth_N = mkN "Tr?"; + wife_N = mkN "m#?t" feminine ; + wind_N = mkN "n'f!?" ; + wing_N = mkN "knf" ; + worm_N = mkN "tl" feminine; + year_N = mkN "!m't" ; + blow_V = mkV2bl "??" ;--blow_V3 = mkbela "??" ; + breathe_V = mkV4dbdb "????";--breathe_V = compoundV "????" (mkV "????" ) ; + --burn_V = mkV "????" ; + -- dig_V = mkV "???" ; + fall_V = mkV3gdl "???" ; + float_V = mkV3gdl "???" ; -- test!! WRONG + flow_V = mkV3gdl"???" ; + fly_V = mkV3gdl "???" ; + + freeze_V = mkV4dbdb "????"; + give_V3 = mkV2sT "??";--give_V3 = mkV3 (mkV "????") "??" ""; + laugh_V = mkV2yz "??" ; +-- lie_N = mkN "????" masculine ; + lie_V = mkV2wN "??" ; + --play_V = mkV "??????" ; + sew_V = mkV2bl "??" ; + sing_V = mkV3mls"???" ; + --sit_V = mkV "??????" ; + --smell_V = mkV "??????" ; + spit_V = mkV2bl "??" ; + stand_V = mkV2nr "??";--stand_V = compoundV "????" (mkV "????" ); + --swell_V = mkV "???" ; + swim_V = mkV2wN "??" ; + --think_V = mkV2sT "??" ; + turn_V = mkV3tTb "???"; + --vomit_V = compoundV "????" (mkV "????") ; + bite_V2 = mkV3gdl "???";--bite_V2 = mkV2 (mkV "?????") ; + count_V2 = mkV3qTr"???"; + cut_V2 = mkV3qTr"???"; + fear_V2 = mkV2bl "??";--fear_V2 = mkV2 (mkV "????") ; + fight_V2 = mkV4dbdb "????";--fight_V2 = mkV2 (mkV "????") ; + hit_V2 = mkV2bl "??";--hit_V2 = mkV2 (compoundV "?????" (mkV "?????" )); + hold_V2 = mkV2yz "??";--hold_V2 = mkV2 (mkV "?????") ; + --hunt_V2 = mkV2 (compoundV "????" do_V2); + kill_V2 = mkV3gdl "???";--kill_V2 = mkV2 (compoundV "???" (mkV "?????" )) ; + pull_V2 = mkV2yz "??";--pull_V2 = mkV2 (mkV "??????"); + push_V2 = mkV2bl "??";--push_V2 = mkV2 (mkV "???????") "??" ; + rub_V2 = mkV3gdl "???";--rub_V2 = mkV2 (mkV "?????") ; + scratch_V2 = mkV2yz "??";--scratch_V2 = mkV2 (mkV "??????") "??" ; + split_V2 = mkV3gdl "???";--split_V2 = mkV2 (mkV "?????") "??" ; + squeeze_V2 = mkV3gdl "???"; + --squeeze_V2 = dirV2 (regV "???????") ; + stab_V2 = mkV2bl "??";--stab_V2 = dirV2 (regDuplV "????") ; + suck_V2 = mkV4dbdb "????";--suck_V2 = mkV2 (mkV "?????") ; + throw_V2 = mkV4dbdb "????";--throw_V2 = mkV2 (mkV "???????") ; + --tie_V2 = mkV2 (mkV "???????") ; + --wash_V2 = mkV2 (mkV "?????") ; + wipe_V2 = mkV3gdl "???";--wipe_V2 = mkV2 (compoundV "???" (mkV "????" )); + + other_A = mkA "l%l!" ; + + grammar_N = mkN "?w!?w" ; + language_N = mkN "?n?" ; + rule_N = mkN "hg" ; + +---- added 4/6/2007 + john_PN = mkPN "y/h!n?" Masc ; + question_N = mkN "Ty!q%" ; + ready_A = mkA "zgj&" ; + reason_N = mkN "m?l%" ; + today_Adv = mkAdv "z!r%" ; + --uncertain_A = mkA "y!lt'r'g!g'T'"; + + ------------------------ + + +} diff --git a/lib/src/amharic/LexiconAmh.gf b/lib/src/amharic/LexiconAmh.gf new file mode 100644 index 000000000..4e51c3527 --- /dev/null +++ b/lib/src/amharic/LexiconAmh.gf @@ -0,0 +1,378 @@ +--# -path=.:prelude +-- (c) 2010 Markos KG +-- Licensed under LGPL + +concrete LexiconAmh of Lexicon = CatAmh ** open + + ParadigmsAmh, ResAmh, Prelude in { + + -- + flags + optimize=values ; + coding = utf8; + + lin + + airplane_N = mkN "አውሮፕላን" ; + answer_V2 = mkV2 (mkV3mls"mls") (mkPrep "" "" True);--answer_V2S = mkV2 (compoundV "جواب" (mkV "دینا")) ; + apartment_N = mkN "አፓርታማ" ; + apple_N = mkN "በለስ" ; + art_N = mkN "ጥበብ" ; + ask_V2Q = mkV3mls "Tyq";--ask_V2Q = mkV2 (mkV "پوچھنا") ; + baby_N = mkN "ህጻን" ; + bad_A = mkA "መጥፎ" ; + bank_N = mkN "ባንክ" ; + beautiful_A = mkA "ቆንጆ" ; + become_VA = mkV2nr"hn";--become_VA = mkV "بننا"; + beer_N = mkN "ቢራ" ; + beg_V2V = mkV3mls "lmn";-- beg_V2V = mkV2V (compoundV "التجا" (mkV "كرنا")) "سے" "كہ" False; + big_A = mkA "ትልቅ" ; + bike_N = mkN "ቢስክሌት"; + bird_N = mkN "ወፍ" feminine ; + black_A = mkA "ጥቁር" ; + bless_V = mkV3brk "brk"; + blue_A = mkA "ሰማያዊ" ; + boat_N = mkN "ጀልባ" feminine ; + book_N = mkN "መጽሃፍ" ; + boot_N = mkN "ቦቲ" ; + boss_N = mkN "አለቃ" ; + boy_N = mkN "ልጅ" ; + bread_N = mkN "ዻቦ" ; + break_V2 = mkV2 (mkV3gdl"sbr") (mkPrep "" "" True); + broad_A = mkA "ሰፊ" ; + brother_N = mkN "ወንድም"; + brown_A = mkA "ቡኒ" ; + butter_N = mkN "ቅቤ" ; + buy_V2 = mkV2 (mkV2bl "gz")(mkPrep "ከ" "" True);--buy_V2 = mkV2 (mkV "خریدنا"); + camera_N = mkN "ካሜራ" ; + cap_N = mkN "ባርኔጣ" ; + car_N = mkN "መኪና" ; + carpet_N = mkN "ምንጣፍ" ; + cat_N = mkN "ዽመት" feminine ; + ceiling_N = mkN "ጣራ"; + chair_N = mkN "ወንበር" ; + cheese_N = mkN "አይብ"; + child_N = mkN "ህጻን" ; + church_N = mkN (mkN "ቤተ") (mkN "ክርስትያን" feminine); + city_N = mkN "ከተማ" feminine ; + clean_A = mkA "ንጹህ" ; + clever_A = mkA "ብልህ" ; + close_V2 = mkV2 (mkV2bl "zg") (mkPrep "" "" True);--close_V2 = mkV2 (compoundV "بند" do_V2); + coat_N = mkN "ኮት" ; + cold_A = mkA "ቀዝቃዛ" ; + come_V = mkV2bl "mT" ; + computer_N = mkN "ኮምፒውተር" ; + country_N = mkN "ሃገር" feminine ; + cousin_N = mkN( mkN "አክስት") (mkN "ልጅ"); --cousin_N = mkCmpdNoun "چچا" (mkN "زاد") ; -- a compund noun made of two nouns + cow_N = mkN "ላም" feminine ; + die_V = mkV2nr "mt" ; + dirty_A = mkA "ቆሻሻ" ; + -- distance_N3 = mkN3 (mkN (mkN "ያለው") (mkN "ርቀት")) (mkPrep "ከ" "" True) (mkPrep "ወደ" "" True); + doctor_N = mkN "ሃኪም" ; + dog_N = mkN "ውሻ" ; + door_N = mkN "በር" ; + drink_V2 = mkV2 (mkV2bl "TT") (mkPrep "" "" True); + -- easy_A2V = mkA "ቀላል"; + eat_V2 = mkV2 (mkV2bl "bl" ) (mkPrep "" "" True); + empty_A = mkA "ባዶ" ; + enemy_N = mkN "ጠላት" ; + factory_N = mkN "ፋብሪካ" ; + father_N2 = mkN2 (mkN "አባት") (mkPrep "የ" "" True) ; + fear_VS = mkV2bl "fr"; + find_V2 = mkV2( mkV3asr "'gN" ) (mkPrep "" "" True); + fish_N = mkN "አሳ" ; + floor_N = mkN "ወለል" ; + forget_V2 = mkV2 (mkV2bl"rs") (mkPrep "" "" True);--forget_V2 = mkV2 (mkV "بھولنا") ; + fridge_N = mkN "ማቀዝቀዣ" ; + friend_N = mkN "ጓደኛ"; + fruit_N = mkN "ፍራፍሬ" ; +-- fun_AV = mkAV (regA "فuن") ; + garden_N = mkN "ማሳ" ; + girl_N = mkN "ልጃገረድ" feminine ; + glove_N = mkN "ጉዋንት" ; + gold_N = mkN "ወርቅ" ; + good_A = mkA "ጥሩ" ; + --go_V = mkV "جانا" ; + green_A = mkA "አረንጉኣዴ" ; + harbour_N = mkN "ወደብ" ; --harbour_N = mkCmpdNoun "بندر" (mkN "گاہ") ; + hate_V2 = mkV2 (mkV2bl "Tl") (mkPrep "" "" True);--hate_V2 = mkV2 (compoundV "نفرت" do_V2) ; + hat_N = mkN "ባርኔጣ" ; + -- have_V2 = mkV2 (mkV2sT "!l") (mkPrep "" "" True); + hear_V2 = mkV2 (mkV2bl "sm") (mkPrep "" "" True);--hear_V2 = mkV2 (mkV "سننا") ; + hill_N = mkN "አቀበት" ; + --hope_VS = (compoundV "امید" do_V2); -- + horse_N = mkN "ፈረስ" ; + hot_A = mkA "ትኩስ" ; + house_N = mkN "ቤት" ; + important_A = mkA "ጠቃሚ" ; + industry_N = mkN "ኢንዱስትሪ" ; + iron_N = mkN "ብረት" ; + king_N = mkN "ንጉስ" ; + know_V2 = mkV2 (mkV3asr "wq") (mkPrep "" "" True); + --know_VS = mkV "جاننا"; + lake_N = mkN "ሃይቅ" ; + lamp_N = mkN "ኩራዝ" ; +--learn_V2 = mkV2 (mkV3brk "tmr") (mkPrep "" "" True); --learn_V2 = mkV2 (mkV "سیكھنا") ; + leather_N = mkN "ቆዳ" ; + leave_V2 = mkV2 (mkV3gdl "lqq") (mkPrep "" "" True); --leave_V2 = mkV2 (mkV "جانا") ; + like_V2 = mkV2 (mkV3gdl "wdd" ) (mkPrep "" "" True);--like_V2 = mkV2 (compoundV "پسند" do_V2); + listen_V2 = mkV2 (mkV3brk "dmT") (mkPrep "" "" True); + live_V = mkV2nr "nr" ; ---- touch + long_A = mkA "ረጅም" ; + lose_V2 = mkV2 (mkV2bl "Tf" ) (mkPrep "" "" True);--lose_V2 = mkV2 (compoundV "كھو" do_V2) ; + love_N = mkN "ፍቅር" ; + love_V2 = mkV2 (mkV3gdl "wdd") (mkPrep "" "" True); + man_N = mkN "ሰው" ; -- not correct according to rules should be discussed + --married_A2 = mkA "شادی كرنا" "سے" ; + meat_N = mkN "ስጋ" ; + milk_N = mkN "ወተት" ; + moon_N = mkN "ጨረቃ" feminine ; + mother_N = mkN "እናት" feminine; -- not covered need to be discussed + mountain_N = mkN "ተራራ" ; + music_N = mkN "ሙዚቃ" feminine ; + narrow_A = mkA "ጠባብ" ; + new_A = mkA "አዲስ" ; + newspaper_N = mkN "ጋዜጣ" ; + oil_N = mkN "ዘይት" ; + old_A = mkA "አሮጌ" ; + open_V2 = mkV2 (mkV3gdl "kft") (mkPrep "" "" True);--open_V2 = mkV2 (mkV "كھولنا") ; + paint_V2 = mkV2 (mkV2bl "qb") (mkPrep "" "" True);--paint_V2A = mkV2 (compoundV "رنگ" do_V2) ; + paper_N = mkN "ወረቀት" ; + paris_PN = mkPN "ፓሪስ" Fem ; + peace_N = mkN "ሰላም"; + pen_N = mkN "ብእር" ; + planet_N = mkN "ፕላኔት" ; + plastic_N = mkN "ፕላስቲክ" ; + play_V2 = mkV2 (mkV4dbdb "Cwt") (mkPrep "" "" True); ---- + policeman_N = mkN "ፖሊስ" ; + priest_N = (mkN "ቄስ") ; +-- probable_AS = mkAS (regA "پرoبابلع") ; + queen_N = mkN "ንግስት" feminine ; + radio_N = mkN "ራዲዮ" ; + --rain_V0 = compoundV "بارش" (mkV "ہونا" ) ; + --read_V2 = mkV2 (mkV "پڑھنا"); + red_A = mkA "ቀይ" ; + religion_N = mkN "እምነት" ; + restaurant_N = mkN (mkN "ምግብ") (mkN "ቤት"); + river_N = mkN "ወንዝ"; + rock_N = mkN "አለት" ; + roof_N = mkN "ጣርያ"; + rubber_N = mkN "ጎማ" ; + run_V = mkV2nr "rT" ; + say_VS = mkV2sT "'l";--say_VS = mkV "كہنا" ; + school_N = mkN (mkN "ትምህርት") (mkN "ቤት") ; -- will + science_N = mkN "ሳይንስ" ; + sea_N = mkN "ባህር" ; + --seek_V2 = mkV2 () ; + see_V2 = mkV2 (mkV2sT "äy")(mkPrep "" "" True); + sell_V3 = mkV3 (mkV2sT "xT" ) (mkPrep "ለ" "" True) (mkPrep "" "" True); + send_V3 = mkV3 (mkV2yz "lk" ) (mkPrep "ለ" "" True) (mkPrep "" "" True);--send_V3 = mkV2yz "lk"; + sheep_N = mkN "በግ"; + ship_N = mkN "መርከብ" feminine ; + shirt_N = mkN "ሸሚዝ"; + shoe_N = mkN "ጫማ" ; + shop_N = mkN "ሱቅ"; + short_A = mkA "አጭር" ; + silver_N = mkN "ብር" ; + sister_N = mkN "እህት"; + sleep_V = mkV2bl "tN" ; + small_A = mkA "ትንሽ" ; + snake_N = mkN "እባብ" ; + sock_N = mkN "ካልሲ" ; + speak_V2 = mkV2 ( mkV3brk ("ngr"))(mkPrep "" "" True); + star_N = mkN "ኮከብ" feminine ; + steel_N = mkN "ብረት" ; + stone_N = mkN "ድንጋይ" ; + stove_N = mkN "ምድጃ" ; + student_N =mkN "ተማሪ" ; + stupid_A = mkA "ባለጌ" ; + sun_N = mkN "ጸሃይ" feminine ; + switch8off_V2 = mkV2 (mkV2bl "Tf" )(mkPrep "" "" True) ;--switch8off_V2 = mkV2 (mkV "چلانا") ; -- ADRAGI + switch8on_V2 = mkV2 (mkV2bl "br")(mkPrep "" "" True) ;--switch8on_V2 = mkV2 (compoundV "بند" do_V2) ; -- ADRAGI -- abra + table_N = mkN "ጠረጴዛ"; + talk_V3 = mkV3 (mkV3asr "'wr" ) (mkPrep "ለ" "" True) (mkPrep "" "" True); + teacher_N = mkN "አስተማሪ" ; + --teach_V2 = mkV2 (mkV "پڑھنا") ; + television_N = mkN "ቴሌቪዥን" ; + thick_A = mkA "ወፍራም" ; + thin_A = mkA "ቀጭን" ; + train_N = mkN "ባቡር" ; + --travel_V = mkV "gwz" ; + tree_N = mkN "ዛፍ"; + ugly_A = mkA "ፉንጋ" ; + understand_V2 = mkV2 (mkV2bl"trd")(mkPrep "" "" True) ; + university_N = mkN "ዩንቨርሲቲ" ; + village_N = mkN "መንደር" feminine ; + wait_V2 = mkV2 (mkV3mls "Tbq")(mkPrep "" "" True) ;--wait_V2 = mkV2 (compoundV "انتظار" do_V2) ; + + walk_V = mkV3tTb "rmd" ; + warm_A = mkA "ሙቅ" ; + war_N = mkN "ጦርነት" ; + watch_V2 = mkV2 (mkV4dbdb ("mlkt"))(mkPrep "" "" True) ; + water_N = mkN "ውሃ" feminine ; -- not covered masculine ending with y + white_A = mkA "ነጭ" ; + window_N = mkN "መስኮት" ; + wine_N = mkN "ወይን" ; + want_V = mkV3mls"flg"; + + --win_V2 = mkV2 (mkV "جیتنا") ; + woman_N = mkN "ሴት" feminine; + --wonder_VQ = compoundV "حعران" (mkV "ہونا") ; + wood_N = mkN "እንጨት" ; + write_V2 = mkV2 (mkV3gdl "ktb")(mkPrep "" "" True) ;--write_V2 = mkV2 (mkV "لكھنا") ; + yellow_A = mkA "ቢጫ" ; + young_A = mkA "ወጣት" ; + do_V2 = mkV2 (mkV2bl "sr")(mkPrep "" "" True) ; + now_Adv = ss "አሁን" ; + --already_Adv = mkAdv "ی" ; + song_N = mkN "ዘፈን" ; + add_V3 = mkV3(mkV3mls "Cmr" ) (mkPrep "" "" True) (mkPrep "" "" True);--add_V3 = mkV3 (compoundV "اضافہ" do_V2) "" "" ; + number_N = mkN "ቁጥር" ; + --put_V2 = mkV2 (mkV "ڈالنا") ; + stop_V = mkV2nr "qm" ; -- some times A - qm ( later) + jump_V = mkV3gdl "zll" ; + left_Ord = mkA"ግራ" ; + right_Ord =mkA"ቀኝ" ; + far_Adv = ss "ሩቅ" ; + correct_A = mkA "ትክክል" ; + dry_A = mkA "ደረቅ" ; + dull_A = mkA "ዱልዱም" ; + full_A = mkA "ሙሉ" ; + heavy_A = mkA "ከባድ" ; + near_A = mkA "ቅርብ" ; + rotten_A = mkA "ግም" ; + round_A = mkA "ክብ" ; + sharp_A = mkA "ሹል" ; + smooth_A = mkA "ለስላሳ" ; + straight_A = mkA "ቀጥታ" ; + wet_A = mkA "ርጥብ" ; ---- + wide_A = mkA "ሰፊ" ; + animal_N = mkN "እንስሳ" ; + ashes_N = mkN "አመድ" ; + back_N = mkN "ጀርባ" ; + bark_N = mkN "ቅርፊት" ; + belly_N = mkN "ሆድ" ; + blood_N = mkN "ደም" ; + bone_N = mkN "አጥንት" ; + breast_N = mkN "ጡት" ; + cloud_N = mkN "ደመና" ; + day_N = mkN "ቀን" ; + dust_N = mkN "አቡዋራ" ; + ear_N = mkN "ጆሮ" ; + earth_N = mkN "መሬት" feminine ; + egg_N = mkN "እንቁላል" ; + eye_N = mkN "አይን" ; + fat_N = mkN "ወፍራም" ; + feather_N = mkN "ላባ" ; + fingernail_N = mkN "ጥፍር" ; + fire_N = mkN "እሳት" ; + flower_N = mkN "አበባ" ; + fog_N = mkN "ጭጋግ"; + foot_N = mkN "እግር" ; -- not properly covered need to be discussed + forest_N = mkN "ጫካ" ; + grass_N = mkN "ሳር" ; + guts_N = mkN "" ; + hair_N = mkN "ጸጉር" ; + hand_N = mkN "እጅ" ; + head_N = mkN "ጭንቅላት" ; + heart_N = mkN "ልብ" ; + horn_N = mkN "ቀንድ" ; + husband_N = mkN "ባል" ; + ice_N = mkN "በረዶ"; + knee_N = mkN "ጉልበት" ; + leaf_N = mkN "ቅጠል" ; + leg_N = mkN "እግር" ; + liver_N = mkN "ጉበት" ; + louse_N = mkN "ቅማል" feminine ; + mouth_N = mkN "አፍ" ; + name_N = mkN "ስም" ; + neck_N = mkN "አንገት"; + night_N = mkN "ምሽት"; + nose_N = mkN "አፍንጫ" ; + person_N = mkN "ሰው" ; + rain_N = mkN "ዝናብ"; + road_N = mkN "መንገድ" ; + root_N = mkN "ስር" ; + rope_N = mkN "ገመድ" ; + salt_N = mkN "ጨው" ; + sand_N = mkN "አሸዋ" ; + seed_N = mkN "ዘር" ; + skin_N = mkN "ቆዳ" ; + sky_N = mkN "ሰማይ" ; + smoke_N = mkN "ጭስ"; -- singular masc nouns ending with aN,wN yet to be implemented + snow_N = mkN "በረዶ"; + stick_N = mkN "በትር" ; + tail_N = mkN "ጭራ" ; + tongue_N = mkN "ምላስ"; + tooth_N = mkN "ጥርስ"; + wife_N = mkN "ሚስት" feminine ; + wind_N = mkN "ነፋስ" ; + wing_N = mkN "ክንፍ" ; + worm_N = mkN "ትል" feminine; + year_N = mkN "አመት" ; + blow_V = mkV2bl "nf" ;--blow_V3 = mkbela "nf" ; + breathe_V = mkV4dbdb "tnfs";--breathe_V = compoundV "سانس" (mkV "لینا" ) ; + burn_V = mkV3brk "qTl" ; + dig_V = mkV3qTr "qfr" ; + fall_V = mkV3gdl "wdq" ; + float_V = mkV3gdl "kbr" ; -- test!! WRONG + flow_V = mkV3gdl"fss" ; + fly_V = mkV3gdl "brr" ; + + freeze_V = mkV4dbdb "qzqz"; + give_V3 = mkV3 (mkV2sT "sT" ) (mkPrep "ለ" "" True) (mkPrep "" "" True);--give_V3 = mkV3 (mkV "دینا") "كو" ""; + laugh_V = mkV2yz "sq" ; + -- lie_N = mkN "ሃሰት" ; + lie_V = mkV2wN "wx" ; + play_V = mkV3brk "Cwt" ; + sew_V = mkV2bl "sf" ; + sing_V = mkV3mls"zmr" ; + sit_V = mkV3gdl "qmT" ; + smell_V = mkV3gdl "xtt" ; + spit_V = mkV2bl "tf" ; + stand_V = mkV2nr "qm";--stand_V = compoundV "كھڑے" (mkV "ہونا" ); + --swell_V = mkV "äbT" ; + swim_V = mkV2wN "wN" ; + think_V = mkV3asr "'sb" ; + turn_V = mkV3tTb "tTf"; + --vomit_V = compoundV "التی" (mkV "كرنا") ; + bite_V2 = mkV2 (mkV3gdl "nks") (mkPrep "" "" True);--bite_V2 = mkV2 (mkV "كاتنا") ; + count_V2 = mkV2 (mkV3qTr"qTr") (mkPrep "" "" True); + cut_V2 = mkV2 (mkV3qTr"qrT") (mkPrep "" "" True); + fear_V2 = mkV2 (mkV2bl "fr") (mkPrep "" "" True);--fear_V2 = mkV2 (mkV "ڈرنا") ; + fight_V2 = mkV2 (mkV4dbdb "dbdb") (mkPrep "" "" True);--fight_V2 = mkV2 (mkV "لڑنا") ; + hit_V2 = mkV2 (mkV2sT "gC") (mkPrep "" "" True);--hit_V2 = mkV2 (compoundV "تھوكر" (mkV "مارنا" )); + hold_V2 = mkV2 (mkV2yz "yz") (mkPrep "" "" True);--hold_V2 = mkV2 (mkV "پكڑنا") ; + hunt_V2 = mkV2 (mkV3asr "'dn" )(mkPrep "" "" True); + kill_V2 = mkV2 (mkV3gdl "gdl") (mkPrep "" "" True);--kill_V2 = mkV2 (compoundV "مار" (mkV "ڈالنا" )) ; + pull_V2 = mkV2 (mkV2yz "sb") (mkPrep "" "" True);--pull_V2 = mkV2 (mkV "كھنچنا"); + push_V2 = mkV2 (mkV2bl "gf") (mkPrep "" "" True);--push_V2 = mkV2 (mkV "دھكیلنا") "كو" ; + rub_V2 = mkV2 (mkV3gdl "Trg") (mkPrep "" "" True);--rub_V2 = mkV2 (mkV "رگڑنا") ; + scratch_V2 = mkV2 (mkV2yz "fq") (mkPrep "" "" True);--scratch_V2 = mkV2 (mkV "كھرچنا") "كو" ; + split_V2 = mkV2 (mkV3gdl "kfl") (mkPrep "" "" True);--split_V2 = mkV2 (mkV "بانتا") "كو" ; + squeeze_V2 = mkV2 (mkV3gdl "Cmq") (mkPrep "" "" True); + + stab_V2 = mkV2 (mkV2bl "wg") (mkPrep "" "" True);--stab_V2 = dirV2 (regDuplV "ستاب") ; + suck_V2 = mkV2 (mkV4dbdb "mgmg") (mkPrep "" "" True);--suck_V2 = mkV2 (mkV "چوسنا") ; + throw_V2 = mkV2 (mkV4dbdb "wrwr") (mkPrep "" "" True);--throw_V2 = mkV2 (mkV "پھینكنا") ; + tie_V2 = mkV2 (mkV3asr "'sr")(mkPrep "" "" True); + wash_V2 = mkV2 (mkV3asr "'Tb")(mkPrep "" "" True); + wipe_V2 = mkV2 (mkV3gdl "Trg") (mkPrep "" "" True);--wipe_V2 = mkV2 (compoundV "صاف" (mkV "كرنا" )); + + other_A = mkA "ሌላ" ; + + grammar_N = mkN "ስዋሰው" ; + language_N = mkN "ቋንቋ" ; + rule_N = mkN "ህግ" ; + +---- added 4/6/2007 + john_PN = mkPN "ዮሃንስ" Masc ; + question_N = mkN "ጥያቄ" ; + ready_A = mkA "ዝግጁ" ; + reason_N = mkN "ምክንያት" ; + today_Adv = ss "ዛሬ" ; + --uncertain_A = mkA "ያልተረጋገጠ"; + + + +} diff --git a/lib/src/amharic/LexiconMlt.gf b/lib/src/amharic/LexiconMlt.gf new file mode 100644 index 000000000..fe5f1f337 --- /dev/null +++ b/lib/src/amharic/LexiconMlt.gf @@ -0,0 +1,57 @@ +--# -path=alltenses + +concrete LexiconMlt of Lexicon = open ResMlt, Prelude in { + +--CatMlt ** +--open ParadigmsMlt, ResMlt, Prelude in { + + flags optimize=values ; coding=utf8 ; + + lin + {- ===== VERBS ===== -} + + -- cut_V2 = mkVerb "qata'" "aqta'" "aqtgħu" ; + -- write_V2 = mkVerb "kiteb" ; + -- break_V2 = mkVerb "kiser" ; +-- find_V2 = mkVerb "ħareġ" ; + -- throw_V2 = mkVerb "tefa'" ; + -- hear_V2 = mkVerb "sama'" "isma'" "isimgħu" ; + -- fear_V2 = mkVerb "beża'" ; +-- fear_V2 = mkVerb "ħareġ" ; +-- pray_V = mkVerb "talab" "itlob" "itolbu" + -- understand_V2 = mkVerb "fehem" ; + -- pull_V2 = mkVerb "ġibed" ; + --walk_V = mkVerb "mexa'" ; + + die_V = mkVerb "qarmeċ" ; + + + {- ===== NOUNS ===== -} + + airplane_N = mkNoun "ajruplan" Masc ; + apple_N = mkNoun "tuffieħa" Fem ; + +-- oper + -- Define different possible patterns + {- + pattern_AA : Pattern = { v1 = "a" ; v2 = "a" } ; -- eg QASAM + pattern_AE : Pattern = { v1 = "a" ; v2 = "e" } ; -- eg QABEŻ + pattern_EE : Pattern = { v1 = "e" ; v2 = "e" } ; -- eg QERED + pattern_EA : Pattern = { v1 = "e" ; v2 = "a" } ; -- eg SERAQ + pattern_IE : Pattern = { v1 = "i" ; v2 = "e" } ; -- eg KITEB + pattern_OO : Pattern = { v1 = "o" ; v2 = "o" } ; -- eg QOROB + pattern_OA : Pattern = { v1 = "o" ; v2 = "o" } ; -- GĦOLA, GĦOXA, ĦOLA (only!) + -} + + --Define some roots + {- + root_HTF : Root = { K = "ħ" ; T = "t" ; B = "f" ; L=[] } ; -- pattern: AA + root_HRG : Root = { K = "ħ" ; T = "r" ; B = "ġ" ; L=[] } ; -- pattern: AE + root_QRD : Root = { K = "q" ; T = "r" ; B = "d" ; L=[] } ; -- pattern: EE + root_SRQ : Root = { K = "s" ; T = "r" ; B = "q" ; L=[] } ; -- pattern: EA + root_KTB : Root = { K = "k" ; T = "t" ; B = "b" ; L=[] } ; -- pattern: IE + root_QRB : Root = { K = "q" ; T = "r" ; B = "b" ; L=[] } ; -- pattern: oo + root_GMGM : Root = { K = "g" ; T = "m" ; B = "g" ; L = "m" } ; + root_MQDR : Root = { K = "m" ; T = "q" ; B = "d" ; L = "r" } ; + -} +} ; diff --git a/lib/src/amharic/MorphoAmh.gf b/lib/src/amharic/MorphoAmh.gf new file mode 100644 index 000000000..0f9e070e1 --- /dev/null +++ b/lib/src/amharic/MorphoAmh.gf @@ -0,0 +1,81 @@ +resource MorphoAmh = open Prelude,Predef in { + +flags optimize = all ;--noexpand; + coding=utf8 ; +oper +-------------------------------------------------------------- Helps to regulate the use of endings for both nouns and adjectives: changes--------------------------------------------------------------- + {--("ል"|"ሕ"|"ም"|"ሥ"|"ር"|"ስ"|"ሽ"|"ቅ"|"ብ"|"ቭ"|"ት"|"ች"|"ን"|"ኝ"|"እ"|"ክ"|"ው"|"ዝ"|"ዥ"|"ይ"|"ድ"|"ጅ"|"ግ"|"ጥ"|"ጭ"|"ጵ"|"ጽ"|"ፍ"|"ፕ") --} +-- Number + replaceLastLet6_7 : Str -> Str = \c -> + let y = last (c) in + case c of { "ህ" => "ሆች" ; + "ል" => "ሎች" ; + "ሕ" => "ሖች" ; + "ም" => "ሞች" ; + "ሥ" => "ሦች" ; + "ር" => "ሮች" ; + "ስ" => "ሶች" ; + "ሽ" => "ሾች" ; + "ቅ" => "ቆች" ; + "ብ" => "ቦች" ; + "ቭ" => "ቮች" ; + "ት" => "ቶች" ; + "ች" => "ቾች" ; + "ን" => "ኖች" ; + "ኝ" => "ኞች" ; + "እ" => "ኦች" ; + "ክ" => "ኮች" ; + "ው" => "ዎች" ; + "ዝ" => "ዞች" ; + "ዥ" => "ዦች" ; + "ይ" => "ዮች" ; + "ድ" => "ዶች" ; + "ጅ" => "ጆች" ; + "ግ" => "ጎች" ; + "ጥ" => "ጦች" ; + "ጭ" => "ጮች" ; + "ጵ" => "ጶች" ; + "ጽ" => "ጾች" ; + "ፍ" => "ፎች" ; + "ፕ" => "ፖች" ; + _ => y+"ዎች" + } ; + + +-- Species / Masculine + + replaceLastLet6_2_M : Str -> Str = \c -> + let y = last (c) in + case y of { "ህ" => "ሁ" ; "ል" => "ሉ" ; "ሕ" => "ሁ" ; "ም" => "ሙ" ; "ሥ" => "ሱ" ; "ር" => "ሩ" ; "ስ" => "ሱ" ; "ሽ" => "ሹ" ; + "ቅ" => "ቁ" ; "ብ" => "ቡ" ; "ቭ" => "ቩ" ; "ት" => "ቱ" ; "ች" => "ቹ" ; "ን" => "ኑ" ; "ኝ" => "ኙ" ; "እ" => "ኡ" ; "ክ" => "ኩ" ; + "ው" => "ዉ" ; "ዝ" => "ዙ" ; "ዥ" => "ዡ" ; "ይ" => "ዩ" ; "ድ" => "ዱ" ; "ጅ" => "ጁ" ; "ግ" => "ጉ" ; "ጥ" => "ጡ" ; "ጭ" => "ጩ" ; + "ጵ" => "ጱ" ; "ጽ" => "ጹ" ; "ፍ" => "ፉ" ; "ፕ" => "ፑ" ; _ => y+"ዉ"} ; + +-- Species / Feminine + + replaceLastLet6_2_F: Str -> Str = \c -> + let y = last (c) in + case c of { "ህ" => "ኋ" ; "ል" => "ሏ" ; "ሕ" => "ኋ" ; "ም" => "ሟ" ; "ሥ" => "ሷ" ; "ር" => "ሯ" ; "ስ" => "ሷ" ; "ሽ" => "ሿ" ; + "ቅ" => "ቋ" ; "ብ" => "ቧ" ; "ቭ" => "ቯ" ; "ት" => "ቷ" ; "ች" => "ቿ" ; "ን" => "ኗ" ; "ኝ" => "ኟ" ; "ክ" => "ኳ" ; + "ዝ" => "ዟ" ; "ዥ" => "ዧ" ; "ድ" => "ዷ" ; "ጅ" => "ጇ" ; "ግ" => "ጓ" ; "ጥ" => "ጧ" ; "ጭ" => "ጩ" ; + "ጵ" => "ጷ" ; "ጽ" => "ጿ" ; "ፍ" => "ፏ" ; "ፕ" => "ፗ" ; _ => y+"ዋ" + + } ; + + -- pallatalization + + pallatalize : Str -> Str = \c-> + case c of { + "d" => "j"; + "t" => "c"; + "T" => "C"; + "n" => "N"; + "l" => "y"; + "s" => "x"; + "z" => "Z"; + "S" => "C"; + _ => c + } ; + + +} diff --git a/lib/src/amharic/NounAmh.gf b/lib/src/amharic/NounAmh.gf new file mode 100644 index 000000000..c2816561d --- /dev/null +++ b/lib/src/amharic/NounAmh.gf @@ -0,0 +1,201 @@ +--# -path=.:../Romance:../common:../abstract:../common:prelude + +concrete NounAmh of Noun = CatAmh ** open ResAmh,ParamX, Prelude in { + +flags optimize=noexpand ; +flags coding = utf8; + + +lin + + DetCN det cn = + + { + s = \\ c => case c of + { + Acc => det.s ! cn.g ! Nom ++ cn.s ! det.n! det.d ! c ; + _ => det.s ! cn.g ! c ++ cn.s ! det.n! det.d ! Nom + }; + a = {png = Per3 det.n cn.g; isPron = False} + + }; + + -- + UsePN pn = { + s = pn.s; + a = {png=Per3 Sg pn.g; isPron = False} + + }; + -- + UsePron p = p ; + + -- + PredetNP pred np = { + s = \\c => case pred.isDecl of { + True => pred.s! c ++ np.s ! Nom ; -- amzaNaw temari, yeabzaNaw temari , lebzaNaw temari + False => np.s ! c ++ pred.s!c + }; + a = np.a + } ; + +-- FIX NEEDED! consider the case for number and gender later !!! --- arabic book table --- to solve affices + +--Compound Participle : is formed by prefixing the relative pronoun yete : to the forms of the perfect mood -- there are three ways of building the participle in Amh + + PPartNP np v2 = + + + { + s = \\c => "y'"++ (v2.s ! Perf!Pas! np.a.png) ++ np.s ! c; + + a = np.a + } ; + + + DetNP det = { + + s = \\_ => det.s!Masc!Nom; + a = { png = Per3 det.n Masc ; isPron = False} + + }; + + + AdvNP np adv = { + s = \\c => np.s ! c ++ adv.s; + a = np.a + }; + + DetQuantOrd quant num ord = { + + s = \\g,c=> quant.s!num.n!g!c ++ num.s!quant.d!Nom ++ ord.s!g!num.n!quant.d!Nom; + d = Indef; + n = num.n; + isNum = True; + isPron = quant.isPron + + } ; + + DetQuant quant num = { + + s = \\g,c =>quant.s!num.n!g!c ++ num.s!quant.d!c ; + d = quant.d; + n = num.n; + isNum = True; + isPron = quant.isPron + + } ; + + PossPron p = { + s = \\_,_,_ => p.s ! Gen; + d = Indef; + isNum = False; + isPron = True } ; + + NumCard n = {s = \\s,c => n.s!Masc!Sg!s!c ; n = Pl; hasCard = True} ; + + NumDigits n = {s = n.s ! NCard } ; + + NumNumeral numeral = {s = numeral.s ! NCard} ; + + OrdDigits n = {s = n.s ! NOrd} ; + + + OrdNumeral numeral = {s = numeral.s ! NOrd} ; + + + NumSg = {s = \\s,c => []; n = Sg ; hasCard = False} ; + + NumPl = {s = \\s,c => []; n = Pl ; hasCard = False} ; + + + -- AdNum adn num = { + -- s = \\g,d,c => adn.s ++ num.s ! g ! d ! c ; + -- n = num.n } ; + -- + + OrdSuperl a = { + s = \\g,n,s,c => a.s!g!n!s!c ; + + }; + + + + DefArt = { + s = \\_,_,_ => []; + d = Def ; + isNum,isPron = False + } ; + + + + IndefArt = { + s = \\n,g,_ => case of { + =>"አንድ" ++ []; + =>"አንዲት" ++ []; + => [] }; + d = Indef ; + isNum,isPron = False + } ; + + + MassNP cn = + {s = \\_=> cn.s ! Sg ! Indef!Nom ; + + a = { png = Per3 Sg cn.g; isPron = False } }; + + + UseN n = n ; + + --UseN n = n ** {adj = \\_,_,_ => []}; + + + ComplN2 f x = {s = \\n,s,c => f.c2++ x.s ! c ++ f.s ! n !Indef! Nom ; + g = f.g } ; + + ComplN3 f x = {s = \\n,s,c => f.c2 ++ x.s ! c ++ f.s ! n !Indef! Nom ;g = f.g; c2 = f.c3} ; + +-- => f.c2 ++ x.s ! c++"ያለው" ++ f.s ! n !Indef! Nom ; +-- => f.c2 ++ x.s ! c ++"ያሉት"++ f.s ! n !Indef! Nom }; +-- g = f.g; c2 = f.c3; + + UseN2 n = n ; + + UseN3 n = n ; + + Use2N3 f = { + s = \\n,s,c => f.s ! n !Indef! Nom ; + g = f.g ; + c2 = f.c2 + } ; + + Use3N3 f = { + s = \\n,s,c => f.s ! n !Indef! Nom ; + g = f.g ; + c2 = f.c3 + } ; + --TO DO!! + AdjCN ap cn = { + s = \\n,s,c => + case c of + { + Acc => ap.s ! cn.g !n ! s !Nom++ cn.s ! n! Indef ! c ; + _ => ap.s ! cn.g !n ! s !c ++ cn.s ! n! Indef ! Nom + }; + + g = cn.g + } ; + + + -- -- RelCN cn rs = {s = \\n,c => cn.s ! n ! c ++ rs.s ! {n = n ; p = P3}} ; + + AdvCN cn ad = {s = \\n,s,c => ad.s ++ cn.s ! n ! Indef ! c ; + g = cn.g} ; + -- -- + -- -- SentCN cn sc = {s = \\n,c => cn.s ! n ! c ++ sc.s} ; + + + ApposCN cn np = {s = \\n,s,c => cn.s ! n !Indef! Nom ++ np.s ! c ; + g = cn.g} ; + + + } diff --git a/lib/src/amharic/NumeralAmh.gf b/lib/src/amharic/NumeralAmh.gf new file mode 100644 index 000000000..a686f454b --- /dev/null +++ b/lib/src/amharic/NumeralAmh.gf @@ -0,0 +1,121 @@ + +concrete NumeralAmh of Numeral = CatAmh ** open ResAmh,ParamX in { +flags coding = UTF8; +lincat + + + Digit = {s : DForm => CardOrd => Gender=>Number=>Species=>Case=> Str} ; + Sub10 = {s : DForm => CardOrd =>Gender=>Number=>Species=>Case=> Str } ; + Sub100 = {s : CardOrd => Gender=>Number=>Species=>Case=> Str } ; + Sub1000 = {s : CardOrd => Gender=>Number=>Species=>Case=> Str } ; + Sub1000000 = {s : CardOrd => Gender=>Number=>Species=>Case=> Str } ; + + + +lin num x = x ; +lin n2 = mkNum "ሁለት" "ሃያ" "ሁለተኛ" ; +lin n3 = mkNum "ሶስት" "ሰላሳ" "ሶስተኛ"; +lin n4 = mkNum "አራት" "አርባ" "አራተኛ"; +lin n5 = mkNum "አምስት" "ሃምሳ" "አምስተኛ"; +lin n6 = mkNum "ስድስት" "ስድሳ" "ስድስተኛ"; +lin n7 = mkNum "ሰባት" "ሰባ" "ሰባተኛ"; +lin n8 = mkNum "ስምንት" "ሰማንያ" "ስምንተኛ"; +lin n9 = mkNum "ዘጠኝ" "ዘጠና" "ዘጠነኛ"; + +lin pot01 = mkNum "አንድ" "አስር" "አንደኛ" ; +lin pot0 d = d ; +lin pot110 = regCardOrd "አስር" ; +lin pot111 = regCardOrd "አስራንድ" ; +lin pot1to19 d = {s = \\o,g,n,s,c =>case c of { + Gen => ("የአስራ"++ d.s ! unit ! o!g!n! s!c); + Dat => ("ለአስራ"++ d.s ! unit ! o!g!n! s!c) ; + _ => ( "አስራ"++ d.s ! unit ! o!g!n!s!c) } } ; +lin pot0as1 n = {s = n.s ! unit}; +lin pot1 d = {s = d.s ! ten} ; +lin pot1plus d e = { + s = \\o,g,n,s,c => case c of { + + Gen|Dat => d.s ! ten ! NCard !Masc!Sg!Indef! c ++ e.s ! unit ! o!g!n!s! Nom ; + _ =>d.s ! ten ! NCard !Masc!Sg!Indef! Nom ++ e.s ! unit ! o!g!n!s! c + }} ; +lin pot1as2 n = n ; +lin pot2 d = {s = \\o,g,n,s,c => case c of { + Gen|Dat => d.s ! unit ! NCard !Masc!Sg!Indef! c ++ mkCard o "መቶ" !g!n! s!Nom; + _ => d.s ! unit ! NCard !Masc!Sg! Indef! Nom ++ mkCard o "መቶ" !g!n!s!c}} ; + + +lin pot2plus d e = { s = \\o,g,n,s,c => case c of { + Gen|Dat => d.s ! unit ! NCard !Masc!Sg!Indef! c ++ "መቶ" ++ e.s ! o!g!n!s! Nom ; + _ => d.s ! unit ! NCard!Masc!Sg! Indef! Nom ++ "መቶ" ++ e.s ! o!g!n!s! c + }} ; +lin pot2as3 n = n ; +lin pot3 n = { + s = \\o,g,n2,s,c => case c of { + Gen|Dat => n.s ! NCard !Masc!Sg! Indef! c ++ mkCard o "ሺህ" !g!n2! s!Nom ; + _ => n.s ! NCard !Masc!Sg! Indef! Nom ++ mkCard o "ሺህ" !g!n2 ! s!c}} ; + +lin pot3plus n m = { + s = \\o,g,n2,s,c => case c of { + Gen|Dat => n.s ! NCard !Masc!Sg! Indef!c ++ "ሺህ" ++ m.s ! o!g!n2!s! Nom; + _=> n.s ! NCard !Masc!Sg! Indef! Nom ++ "ሺህ" ++ m.s ! o!g!n2!s! c}}; + + + + + +--numerals as sequences of digits + + lincat + + Dig = TDigit ; + + lin + IDig d = d ** {tail = T1} ; + + IIDig d i = { + s = \\o,g,n,s,c => case c of { + Gen|Dat => d.s ! NCard !Masc!Sg!Indef!c ++ commaIf i.tail ++ i.s ! o!g!n!s! Nom ; + _ => d.s ! NCard !Masc!Sg!Indef! Nom ++ commaIf i.tail ++ i.s ! o!g!n!s! c }; + + tail = inc i.tail + } ; + + D_0 = mk3Dig "0" "0ኛ" ; + D_1 = mk3Dig "1" "1ኛ" ; + D_2 = mkDig "2"; + D_3 = mkDig "3"; + D_4 = mkDig "4" ; + D_5 = mkDig "5" ; + D_6 = mkDig "6" ; + D_7 = mkDig "7" ; + D_8 = mkDig "8" ; + D_9 = mk2Dig "9" "9ኛ"; + + oper + commaIf : DTail -> Str = \t -> case t of { + T3 => "," ; + _ => [] + } ; + + inc : DTail -> DTail = \t -> case t of { + T1 => T2 ; + T2 => T3 ; + T3 => T1 + } ; +------------------ :) what a releif + + mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o ; + mkDig : Str -> TDigit = \c -> mk2Dig c (c + "ተኛ") ; + mk3Dig : Str -> Str -> TDigit = \c,o -> { + s = table {NCard => adjaffix c ; NOrd => adjaffix o} + } ; + + TDigit = { + s : CardOrd => Gender=>Number=>Species=>Case=> Str + } ; + + +-- የማትረሳዋ ምሽት - ተመስገን አምላኬ! + +} + diff --git a/lib/src/amharic/Numerals.gf b/lib/src/amharic/Numerals.gf new file mode 100644 index 000000000..ee5ea8d52 --- /dev/null +++ b/lib/src/amharic/Numerals.gf @@ -0,0 +1,35 @@ +abstract Numerals = { + +-- numerals from 1 to 999999 in decimal notation + +flags startcat=Numeral ; + +cat + Numeral ; -- 0.. + Digit ; -- 2..9 + Sub10 ; -- 1..9 + Sub100 ; -- 1..99 + Sub1000 ; -- 1..999 + Sub1000000 ; -- 1..999999 + +fun + num : Sub1000000 -> Numeral ; + + n2, n3, n4, n5, n6, n7, n8, n9 : Digit ; + + pot01 : Sub10 ; -- 1 + pot0 : Digit -> Sub10 ; -- d * 1 + pot110 : Sub100 ; -- 10 + pot111 : Sub100 ; -- 11 + pot1to19 : Digit -> Sub100 ; -- 10 + d + pot0as1 : Sub10 -> Sub100 ; -- coercion of 1..9 + pot1 : Digit -> Sub100 ; -- d * 10 + pot1plus : Digit -> Sub10 -> Sub100 ; -- d * 10 + n + pot1as2 : Sub100 -> Sub1000 ; -- coercion of 1..99 + pot2 : Sub10 -> Sub1000 ; -- m * 100 + pot2plus : Sub10 -> Sub100 -> Sub1000 ; -- m * 100 + n + pot2as3 : Sub1000 -> Sub1000000 ; -- coercion of 1..999 + pot3 : Sub1000 -> Sub1000000 ; -- m * 1000 + pot3plus : Sub1000 -> Sub1000 -> Sub1000000 ; -- m * 1000 + n + +} diff --git a/lib/src/amharic/OrthoAmh.gf b/lib/src/amharic/OrthoAmh.gf new file mode 100644 index 000000000..541d115d9 --- /dev/null +++ b/lib/src/amharic/OrthoAmh.gf @@ -0,0 +1,7 @@ +resource OrthoAmh = open Prelude, Predef in { + +flags coding=utf8 ; + + + +} diff --git a/lib/src/amharic/ParadigmsAmh.gf b/lib/src/amharic/ParadigmsAmh.gf new file mode 100644 index 000000000..63cd124db --- /dev/null +++ b/lib/src/amharic/ParadigmsAmh.gf @@ -0,0 +1,2408 @@ +--# -path=.:../abstract:../../prelude:../common +-- +----1 Amharic Lexical Paradigms +---- +-- (c) 2010 Markos KG +-- Licensed under LGPL +---- +---- This is an API to the user of the resource grammar +---- for adding lexical items. It gives functions for forming +---- expressions of open categories: nouns, adjectives, verbs. +---- +---- Closed categories (determiners, pronouns, conjunctions) are +---- accessed through the resource syntax API, $Structural.gf$. +---- +---- The main difference with $MorphoAmh.gf$ is that the types +---- referred to are compiled resource grammar types. We have moreover +---- had the design principle of always having existing forms, rather +---- than stems, as string arguments of the paradigms. +---- +---- The structure of functions for each word class $C$ is the following: +---- first we give a handful of patterns that aim to cover all +---- regular cases. Then we give a worst-case function $mkC$, which serves as an +---- escape to construct the most irregular words of type $C$. +---- +---- The following modules are presupposed: +-- +resource ParadigmsAmh = open + Predef, + Prelude, + MorphoAmh, + ParamX, + OrthoAmh,ResAmh, + CatAmh + in { + + flags coding = utf8; + + +oper + + masculine : Gender ; + feminine : Gender ; + masculine = Masc ; + feminine = Fem ; + + mkN = overload { + mkN : Str-> N + = \s -> regN s ** {lock_N = <>}; + mkN : Str-> Gender-> N + = \s,g -> regN2 s g ** {lock_N = <>} ; + mkN : (x1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,x16 : Str)-> Gender -> N = \bEtu,bEtun,yebEtu,lebEtu,bEt,bEtn,yebEt,lebEt,bEtocu,bEtocun,yebEtocu,lebEtocu,bEtoc,bEtocn,yebEtoc,lebEtoc,g-> mkNoun bEtu bEtun yebEtu lebEtu bEt bEtn yebEt lebEt bEtocu bEtocun yebEtocu lebEtocu bEtoc bEtocn yebEtoc lebEtoc g ** {lock_N = <>}; + mkN : N -> N -> N + = \s,n -> compN s n ** {lock_N = <>}; + + + } ; + + mkA = overload { + mkA : Str-> Adjective + = \s -> regAdj s ** {lock_Adj = <>}; + + -- mkA : Str-> Adjective + -- = \s -> regAdj2 s ** {lock_Adj = <>}; + + mkA : (x1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,x32 : Str)-> Adjective = \msdn,msda,msdg,msdd,msin,msia,msig,msid,mpdn,mpda,mpdg,mpdd,mpin,mpia,mpig,mpid, + fsdn,fsda,fsdg,fsdd,fsin,fsia,fsig,fsid,fpdn,fpda,fpdg,fpdd,fpin,fpia,fpig,fpid-> mkAdjective msdn msda msdg msdd msin msia msig msid mpdn mpda mpdg mpdd mpin mpia mpig mpid + fsdn fsda fsdg fsdd fsin fsia fsig fsid fpdn fpda fpdg fpdd fpin fpia fpig fpid ** {lock_Adj = <>}; + + } ; + + mkV = overload { + mkV : Str-> V + = \s -> mkV3gdl s ** {lock_V = <>}; + + + + } ; + + +mkV3gdl : Str -> Verb = \v -> + + let root = getRoot3 v + + in { + + s = table { + + + Perf => table { + + Act => table { + + Per1 Sg => appPattern3 root C1aC2aC3ku ; + Per1 Pl => appPattern3 root C1aC2aC3n ; + Per2 Sg Masc => appPattern3 root C1aC2aC3k ; + Per2 Sg Fem => appPattern3 root C1aC2aC3sh ; + Per2 Pl _ => appPattern3 root C1aC2aC3achehu ; + Per3 Sg Masc => appPattern3 root C1aC2aC3e ; + Per3 Sg Fem => appPattern3 root C1aC2aC3ech ; + Per3 Pl _=> appPattern3 root C1aC2aC3u}; + + Pas => table { + + Per1 Sg => appPattern3 root pteC1aC2aC3ku ; + Per1 Pl => appPattern3 root pteC1aC2aC3n ; + Per2 Sg Masc => appPattern3 root pteC1aC2aC3k ; + Per2 Sg Fem => appPattern3 root pteC1aC2aC3sh ; + Per2 Pl _ => appPattern3 root pteC1aC2aC3achehu ; + Per3 Sg Masc => appPattern3 root pteC1aC2aC3e ; + Per3 Sg Fem => appPattern3 root pteC1aC2aC3ech ; + Per3 Pl _=> appPattern3 root pteC1aC2aC3u + + } + } ; + + CompPerf => table { + + Act => table { + Per1 Sg => appPattern3pal root C1aC2C3iealehu ; + Per1 Pl => appPattern3 root C1aC2C3enal ; + Per2 Sg Masc => appPattern3 root C1aC2C3ekal ; + Per2 Sg Fem => appPattern3 root C1aC2C3eshal ; + Per2 Pl _ => appPattern3 root C1aC2C3achehual ; + Per3 Sg Masc => appPattern3 root C1aC2C3oal ; + Per3 Sg Fem => appPattern3 root C1aC2C3alech ; + Per3 Pl _=> appPattern3 root C1aC2C3ewwal }; + + Pas => table { Per1 Sg => appPattern3pal root pteC1aC2C3iealehu ; + Per1 Pl => appPattern3 root pteC1aC2C3enal ; + Per2 Sg Masc => appPattern3 root pteC1aC2C3ekal ; + Per2 Sg Fem => appPattern3 root pteC1aC2C3eshal ; + Per2 Pl _ => appPattern3 root pteC1aC2C3achehual ; + Per3 Sg Masc => appPattern3 root pteC1aC2C3oal ; + Per3 Sg Fem => appPattern3 root pteC1aC2C3alech ; + Per3 Pl _=> appPattern3 root pteC1aC2C3ewwal } + } ; + + + Cont => table { + + Act => table { + Per1 Sg => appPattern3 root eC1aC2C3 ; + Per1 Pl => appPattern3 root enC1aC2C3e ; + Per2 Sg Masc => appPattern3 root teC1aC2C3 ; + Per2 Sg Fem => appPattern3pal root teC1aC2C3 ; + Per2 Pl _ => appPattern3 root teC1aC2C3u ; + Per3 Sg Masc => appPattern3 root yeC1aC2C3 ; + Per3 Sg Fem => appPattern3 root teC1aC2C3 ; + Per3 Pl _=> appPattern3 root yeC1aC2C3u}; + + Pas =>table { Per1 Sg => appPattern3 root peC1aC2C3 ; + Per1 Pl => appPattern3 root penC1aC2C3e ; + Per2 Sg Masc => appPattern3 root pteC1aC2C3 ; + Per2 Sg Fem => appPattern3pal root pteC1aC2C3 ; + Per2 Pl _ => appPattern3 root pteC1aC2C3u ; + Per3 Sg Masc => appPattern3 root pyeC1aC2C3 ; + Per3 Sg Fem => appPattern3 root pteC1aC2C3 ; + Per3 Pl _=> appPattern3 root pyeC1aC2C3u} + }; + + Imperf => table { + + Act => table { + Per1 Sg => appPattern3 root eC1aC2C3alehu ; + Per1 Pl => appPattern3 root enC1aC2C3alen ; + Per2 Sg Masc => appPattern3 root teC1aC2C3yaleh ; + Per2 Sg Fem => appPattern3pal root teC1aC2C3aleh ; + Per2 Pl _ => appPattern3 root teC1aC2C3alachehu ; + Per3 Sg Masc => appPattern3 root yeC1aC2C3al ; + Per3 Sg Fem => appPattern3 root teC1aC2C3alech ; + Per3 Pl _=> appPattern3 root yeC1aC2C3alu + } ; + + Pas => table {Per1 Sg => appPattern3 root peC1aC2aC3alehu ; + Per1 Pl => appPattern3 root penC1aC2aC3alen ; + Per2 Sg Masc => appPattern3 root pteC1aC2aC3yaleh ; + Per2 Sg Fem => appPattern3pal root pteC1aC2aC3aleh ; + Per2 Pl _ => appPattern3 root pteC1aC2aC3alachehu ; + Per3 Sg Masc => appPattern3 root pyeC1aC2aC3al ; + Per3 Sg Fem => appPattern3 root pteC1aC2aC3alech ; + Per3 Pl _=> appPattern3 root pyeC1aC2aC3alu } + } ; + + Jus_Imperat => table { + + Act => table { + + Per1 Sg => appPattern3 root leC1C2aC3 ; + Per1 Pl => appPattern3 root enC1C2aC3 ; + Per2 Sg Masc => appPattern3 root C1C2aC3 ; + Per2 Sg Fem => appPattern3pal root C1C2aC3i ; + Per2 Pl _ => appPattern3 root C1C2aC3u ; + Per3 Sg Masc => appPattern3 root yC1C2aC3 ; + Per3 Sg Fem => appPattern3 root tC1C2aC3 ; + Per3 Pl _=> appPattern3 root yC1C2aC3u }; + + Pas => table { + Per1 Sg => appPattern3 root pleC1C2aC3 ; + Per1 Pl => appPattern3 root penC1C2aC3 ; + Per2 Sg Masc => appPattern3 root pC1C2aC3 ; + Per2 Sg Fem => appPattern3pal root pC1C2aC3i ; + Per2 Pl _ => appPattern3 root pC1C2aC3u ; + Per3 Sg Masc => appPattern3 root pyC1C2aC3 ; + Per3 Sg Fem => appPattern3 root ptC1C2aC3 ; + Per3 Pl _=> appPattern3 root pyC1C2aC3u + + } + } ; + + + Gerund => table { + + Act => table { + + Per1 Sg => appPattern3pal root C1aC2C3ie ; + Per1 Pl => appPattern3 root C1aC2C3en ; + Per2 Sg Masc => appPattern3 root C1aC2C3ek ; + Per2 Sg Fem => appPattern3 root C1aC2C3esh ; + Per2 Pl _ => appPattern3 root C1aC2C3achehu ; + Per3 Sg Masc => appPattern3 root C1aC2C3o ; + Per3 Sg Fem => appPattern3 root C1aC2C3a ; + Per3 Pl _=> appPattern3 root C1aC2C3ew }; + + Pas => table {Per1 Sg => appPattern3pal root ptC1aC2C3ie ; + Per1 Pl => appPattern3 root ptC1aC2C3en ; + Per2 Sg Masc => appPattern3 root ptC1aC2C3ek ; + Per2 Sg Fem => appPattern3 root ptC1aC2C3esh ; + Per2 Pl _ => appPattern3 root ptC1aC2C3achehu ; + Per3 Sg Masc => appPattern3 root ptC1aC2C3o ; + Per3 Sg Fem => appPattern3 root ptC1aC2C3a ; + Per3 Pl _=> appPattern3 root ptC1aC2C3ew } + } ; + + + Infinitive => table { + Act => table { + _ => appPattern3 root meC1C2aC3 }; + + Pas => table { _ => appPattern3 root pmeC1C2aC3 } + + + }; + Parti => table { + Act => table { + _ => appPattern3pal root C1eC2aC3 }; + Pas => table { _ => appPattern3pal root pteC1eC2aC3 } + + + } + + } + }; + + + + + mkV3mls : Str -> Verb = \v -> + + let root = getRoot3 v + + in { + + s = table { + + + Perf => table { + + Act => table { + + Per1 Sg => appPattern3 root C1aC2aC3ku ; + Per1 Pl => appPattern3 root C1aC2aC3n ; + Per2 Sg Masc => appPattern3 root C1aC2aC3k ; + Per2 Sg Fem => appPattern3 root C1aC2aC3sh ; + Per2 Pl _ => appPattern3 root C1aC2aC3achehu ; + Per3 Sg Masc => appPattern3 root C1aC2aC3e ; + Per3 Sg Fem => appPattern3 root C1aC2aC3ech ; + Per3 Pl _=> appPattern3 root C1aC2aC3u + } ; + + Pas => table { + + Per1 Sg => appPattern3 root pteC1aC2aC3ku ; + Per1 Pl => appPattern3 root pteC1aC2aC3n ; + Per2 Sg Masc => appPattern3 root pteC1aC2aC3k ; + Per2 Sg Fem => appPattern3 root pteC1aC2aC3sh ; + Per2 Pl _ => appPattern3 root pteC1aC2aC3achehu ; + Per3 Sg Masc => appPattern3 root pteC1aC2aC3e ; + Per3 Sg Fem => appPattern3 root pteC1aC2aC3ech ; + Per3 Pl _=> appPattern3 root pteC1aC2aC3u + } + + +}; + + + CompPerf => table { + + Act => table { Per1 Sg => appPattern3 root C1aC2C3iealehu ; + Per1 Pl => appPattern3 root C1aC2C3enal ; + Per2 Sg Masc => appPattern3 root C1aC2C3ekal ; + Per2 Sg Fem => appPattern3 root C1aC2C3eshal ; + Per2 Pl _ => appPattern3 root C1aC2C3achehual ; + Per3 Sg Masc => appPattern3 root C1aC2C3oal ; + Per3 Sg Fem => appPattern3 root C1aC2C3alech ; + Per3 Pl _=> appPattern3 root C1aC2C3ewwal }; + + Pas => table { + + Per1 Sg => appPattern3pal root pteC1aC2C3iealehu ; + Per1 Pl => appPattern3 root pteC1aC2C3enal ; + Per2 Sg Masc => appPattern3 root pteC1aC2C3ekal ; + Per2 Sg Fem => appPattern3 root pteC1aC2C3eshal ; + Per2 Pl _ => appPattern3 root pteC1aC2C3achehual ; + Per3 Sg Masc => appPattern3 root pteC1aC2C3oal ; + Per3 Sg Fem => appPattern3 root pteC1aC2C3alech ; + Per3 Pl _=> appPattern3 root pteC1aC2C3ewwal + } + + + + + } ; + + Cont => table { + Act => table { Per1 Sg => appPattern3 root eC1aC2C3 ; + Per1 Pl => appPattern3 root enC1aC2C3e ; + Per2 Sg Masc => appPattern3 root teC1aC2C3 ; + Per2 Sg Fem => appPattern3pal root teC1aC2C3 ; + Per2 Pl _ => appPattern3 root teC1aC2C3u ; + Per3 Sg Masc => appPattern3 root yeC1aC2C3 ; + Per3 Sg Fem => appPattern3 root teC1aC2C3 ; + Per3 Pl _=> appPattern3 root yeC1aC2C3u }; + + Pas => table { Per1 Sg => appPattern3 root peC1aC2C3 ; + Per1 Pl => appPattern3 root penC1aC2C3e ; + Per2 Sg Masc => appPattern3 root pteC1aC2C3 ; + Per2 Sg Fem => appPattern3pal root pteC1aC2C3 ; + Per2 Pl _ => appPattern3 root pteC1aC2C3u ; + Per3 Sg Masc => appPattern3 root pyeC1aC2C3 ; + Per3 Sg Fem => appPattern3 root pteC1aC2C3 ; + Per3 Pl _=> appPattern3 root pyeC1aC2C3u } + +}; + Imperf => table { + Act => table { + Per1 Sg => appPattern3 root eC1aC2C3alehu ; + Per1 Pl => appPattern3 root enC1aC2C3alen ; + Per2 Sg Masc => appPattern3 root teC1aC2C3yaleh ; + Per2 Sg Fem => appPattern3pal root teC1aC2C3aleh ; + Per2 Pl _=> appPattern3 root teC1aC2C3alachehu ; + Per3 Sg Masc => appPattern3 root yeC1aC2C3al ; + Per3 Sg Fem => appPattern3 root teC1aC2C3alech ; + Per3 Pl _=> appPattern3 root yeC1aC2C3alu }; + Pas => table { + + Per1 Sg => appPattern3 root peC1aC2aC3alehu ; + Per1 Pl => appPattern3 root penC1aC2aC3alen ; + Per2 Sg Masc => appPattern3 root pteC1aC2aC3yaleh ; + Per2 Sg Fem => appPattern3pal root pteC1aC2aC3aleh ; + Per2 Pl _ => appPattern3 root pteC1aC2aC3alachehu ; + Per3 Sg Masc => appPattern3 root pyeC1aC2aC3al ; + Per3 Sg Fem => appPattern3 root pteC1aC2aC3alech ; + Per3 Pl _=> appPattern3 root pyeC1aC2aC3alu + + } + + } ; + + Jus_Imperat => table { + Act=> table{ + Per1 Sg => appPattern3 root leC1aC2C3 ; + Per1 Pl => appPattern3 root enC1aC2C3 ; + Per2 Sg Masc => appPattern3 root C1aC2C3 ; + Per2 Sg Fem =>appPattern3pal root C1aC2C3i; + Per2 Pl _ => appPattern3 root C1aC2C3u ; + Per3 Sg Masc => appPattern3 root yC1aC2C3 ; + Per3 Sg Fem => appPattern3 root tC1aC2C3 ; + Per3 Pl _=> appPattern3 root yC1aC2C3u }; + + Pas => table { + + Per1 Sg => appPattern3 root pleC1C2aC3 ; + Per1 Pl => appPattern3 root penC1C2aC3 ; + Per2 Sg Masc => appPattern3 root pC1C2aC3 ; + Per2 Sg Fem => appPattern3pal root pC1C2aC3i ; + Per2 Pl _ => appPattern3 root pC1C2aC3u ; + Per3 Sg Masc => appPattern3 root pyC1C2aC3 ; + Per3 Sg Fem => appPattern3 root ptC1C2aC3 ; + Per3 Pl _=> appPattern3 root pyC1C2aC3u + } + + } ; + + + Gerund => table { + Act => table { + Per1 Sg => appPattern3 root C1aC2C3ie ; + Per1 Pl => appPattern3 root C1aC2C3en ; + Per2 Sg Masc => appPattern3 root C1aC2C3ek ; + Per2 Sg Fem => appPattern3 root C1aC2C3esh ; + Per2 Pl _ => appPattern3 root C1aC2C3achehu ; + Per3 Sg Masc => appPattern3 root C1aC2C3o ; + Per3 Sg Fem => appPattern3 root C1aC2C3a ; + Per3 Pl _=> appPattern3 root C1aC2C3ew }; + + Pas => table { + + Per1 Sg => appPattern3pal root ptC1aC2C3ie ; + Per1 Pl => appPattern3 root ptC1aC2C3en ; + Per2 Sg Masc => appPattern3 root ptC1aC2C3ek ; + Per2 Sg Fem => appPattern3 root ptC1aC2C3esh ; + Per2 Pl _ => appPattern3 root ptC1aC2C3achehu ; + Per3 Sg Masc => appPattern3 root ptC1aC2C3o ; + Per3 Sg Fem => appPattern3 root ptC1aC2C3a ; + Per3 Pl _=> appPattern3 root ptC1aC2C3ew + } + + } ; + + Infinitive => table { + + Act => table { + + _ => appPattern3 root meC1aC2aC3 }; + + Pas => table { + + _ => appPattern3 root pmeC1C2aC3 + + + } + }; + Parti => table { + + Act => table + + { + + _ => appPattern3pal root C1eC2aC3 + }; + + Pas => table { + + _ => appPattern3pal root pteC1eC2aC3 + + + } + + } + + + } + }; + mkV3brk : Str -> Verb = \v -> + + let root = getRoot3 v + + in { + + s = table { + + + Perf => table { + + Act=> table { + + Per1 Sg => appPattern3 root C1AC2aC3ku ; + Per1 Pl => appPattern3 root C1AC2aC3n ; + Per2 Sg Masc => appPattern3 root C1AC2aC3k ; + Per2 Sg Fem => appPattern3 root C1AC2aC3sh ; + Per2 Pl _ => appPattern3 root C1AC2aC3achehu ; + Per3 Sg Masc => appPattern3 root C1AC2aC3e ; + Per3 Sg Fem => appPattern3 root C1AC2aC3ech ; + Per3 Pl _=> appPattern3 root C1AC2aC3u + } ; + Pas=> table { + Per1 Sg => appPattern3 root pC1AC2aC3ku ; + Per1 Pl => appPattern3 root pC1AC2aC3n ; + Per2 Sg Masc => appPattern3 root pC1AC2aC3k ; + Per2 Sg Fem => appPattern3 root pC1AC2aC3sh ; + Per2 Pl _ => appPattern3 root pC1AC2aC3achehu ; + Per3 Sg Masc => appPattern3 root pC1AC2aC3e ; + Per3 Sg Fem => appPattern3 root pC1AC2aC3ech ; + Per3 Pl _=> appPattern3 root pC1AC2aC3u } } ; + + + CompPerf => table { + Act =>table{ + Per1 Sg => appPattern3 root C1AC2C3iealehu ; + Per1 Pl => appPattern3 root C1AC2C3enal ; + Per2 Sg Masc => appPattern3 root C1AC2C3ekal ; + Per2 Sg Fem => appPattern3 root C1AC2C3eshal ; + Per2 Pl _ => appPattern3 root C1AC2C3achehual ; + Per3 Sg Masc => appPattern3 root C1AC2C3oal ; + Per3 Sg Fem => appPattern3 root C1AC2C3alech ; + Per3 Pl _=> appPattern3 root C1AC2C3ewwal + } ; + + Pas => table { + Per1 Sg => appPattern3 root pC1AC2C3iealehu ; + Per1 Pl => appPattern3 root pC1AC2C3enal ; + Per2 Sg Masc => appPattern3 root pC1AC2C3ekal ; + Per2 Sg Fem => appPattern3 root pC1AC2C3eshal ; + Per2 Pl _ => appPattern3 root pC1AC2C3achehual ; + Per3 Sg Masc => appPattern3 root pC1AC2C3oal ; + Per3 Sg Fem => appPattern3 root pC1AC2C3alech ; + Per3 Pl _=> appPattern3 root pC1AC2C3ewwal } +} ; + + Cont => table { + + Act => table { + + Per1 Sg => appPattern3 root eC1AC2C3 ; + Per1 Pl => appPattern3 root enC1AC2C3e ; + Per2 Sg Masc => appPattern3 root teC1AC2C3 ; + Per2 Sg Fem => appPattern3pal root teC1AC2C3 ; + Per2 Pl _ => appPattern3 root teC1AC2C3u ; + Per3 Sg Masc => appPattern3 root yeC1AC2C3 ; + Per3 Sg Fem => appPattern3 root teC1AC2C3 ; + Per3 Pl _=> appPattern3 root yeC1AC2C3u }; + + Pas => table { + + Per1 Sg => appPattern3 root peC1AC2C3 ; + Per1 Pl => appPattern3 root penC1AC2C3e ; + Per2 Sg Masc => appPattern3 root pteC1AC2C3 ; + Per2 Sg Fem => appPattern3pal root pteC1AC2C3 ; + Per2 Pl _ => appPattern3 root pteC1AC2C3u ; + Per3 Sg Masc => appPattern3 root pyeC1AC2C3 ; + Per3 Sg Fem => appPattern3 root pteC1AC2C3 ; + Per3 Pl _=> appPattern3 root pyeC1AC2C3u } + + +}; + Imperf => table { + Act => table { + Per1 Sg => appPattern3 root eC1AC2C3alehu ; + Per1 Pl => appPattern3 root enC1AC2C3alen ; + Per2 Sg Masc => appPattern3 root teC1AC2C3yaleh ; + Per2 Sg Fem => appPattern3pal root teC1AC2C3aleh ; + Per2 Pl _ => appPattern3 root teC1AC2C3alachehu ; + Per3 Sg Masc => appPattern3 root yeC1AC2C3al ; + Per3 Sg Fem => appPattern3 root teC1AC2C3alech ; + Per3 Pl _=> appPattern3 root yeC1AC2C3alu }; + + + Pas => table { + + + Per1 Sg => appPattern3 root peC1AC2C3alehu ; + Per1 Pl => appPattern3 root penC1AC2C3alen ; + Per2 Sg Masc => appPattern3 root pteC1AC2C3yaleh ; + Per2 Sg Fem => appPattern3pal root pteC1AC2C3aleh ; + Per2 Pl _ => appPattern3 root pteC1AC2C3alachehu ; + Per3 Sg Masc => appPattern3 root pyeC1AC2C3al ; + Per3 Sg Fem => appPattern3 root pteC1AC2C3alech ; + Per3 Pl _=> appPattern3 root pyeC1AC2C3alu + + } + + } ; + + Jus_Imperat => table { + Act => table { + + Per1 Sg => appPattern3 root leC1AC2C3 ; + Per1 Pl => appPattern3 root enC1AC2C3 ; + Per2 Sg Masc => appPattern3 root C1AC2C3 ; + Per2 Sg Fem => appPattern3pal root C1AC2C3i; + Per2 Pl _ => appPattern3 root C1AC2C3u ; + Per3 Sg Masc => appPattern3 root yC1AC2C3 ; + Per3 Sg Fem => appPattern3 root tC1AC2C3 ; + Per3 Pl _=> appPattern3 root yC1AC2C3u }; + + Pas => table { + + Per1 Sg => appPattern3 root pleC1AC2C3 ; + Per1 Pl => appPattern3 root penC1AC2C3 ; + Per2 Sg Masc => appPattern3 root pC1AC2C3 ; + Per2 Sg Fem => appPattern3pal root pC1AC2C3i; + Per2 Pl _ => appPattern3 root pC1AC2C3u ; + Per3 Sg Masc => appPattern3 root pyC1AC2C3 ; + Per3 Sg Fem => appPattern3 root ptC1AC2C3 ; + Per3 Pl _=> appPattern3 root pyC1AC2C3u + } + + } ; + + + Gerund => table { + Act => table { + Per1 Sg => appPattern3PasPer root C1AC2C3ie ; + Per1 Pl => appPattern3PasPer root C1AC2C3en ; + Per2 Sg Masc => appPattern3PasPer root C1AC2C3ek ; + Per2 Sg Fem => appPattern3PasPer root C1AC2C3esh ; + Per2 Pl _ => appPattern3PasPer root C1AC2C3achehu ; + Per3 Sg Masc => appPattern3PasPer root C1AC2C3o ; + Per3 Sg Fem => appPattern3PasPer root C1AC2C3a ; + Per3 Pl _=> appPattern3PasPer root C1AC2C3ew }; + + Pas => table { + + Per1 Sg => appPattern3PasPer root pC1AC2C3ie ; + Per1 Pl => appPattern3PasPer root pC1AC2C3en ; + Per2 Sg Masc => appPattern3PasPer root pC1AC2C3ek ; + Per2 Sg Fem => appPattern3PasPer root pC1AC2C3esh ; + Per2 Pl _ => appPattern3PasPer root pC1AC2C3achehu ; + Per3 Sg Masc => appPattern3PasPer root pC1AC2C3o ; + Per3 Sg Fem => appPattern3PasPer root pC1AC2C3a ; + Per3 Pl _=> appPattern3PasPer root pC1AC2C3ew + } + + } ; + + Infinitive => table { + Act => table { + _ => appPattern3 root meC1AC2aC3 }; + Pas => table { + + _ => appPattern3 root pmeC1AC2aC3 + + + } + + + } ; + + Parti => table { + Act => table { + _ => appPattern3pal root C1aC2aC3i }; + + Pas => table { + + _ => appPattern3pal root pC1aC2aC3i + + + } + + + } + + + } + }; + + mkV3tTb : Str -> Verb = \v -> + + let root = getRoot3 v + + in { + + s = table { + + + Perf => table { + + + Act=>table { + + Per1 Sg => appPattern3 root C1AC2aC3ku ; + Per1 Pl => appPattern3 root C1AC2aC3n ; + Per2 Sg Masc => appPattern3 root C1AC2aC3k ; + Per2 Sg Fem => appPattern3 root C1AC2aC3sh ; + Per2 Pl _ => appPattern3 root C1AC2aC3achehu ; + Per3 Sg Masc => appPattern3 root C1AC2aC3e ; + Per3 Sg Fem => appPattern3 root C1AC2aC3ech ; + Per3 Pl _=> appPattern3 root C1AC2aC3u }; + + Pas => table {Per1 Sg => appPattern3 root pC1AC2aC3ku ; + Per1 Pl => appPattern3 root pC1AC2aC3n ; + Per2 Sg Masc => appPattern3 root pC1AC2aC3k ; + Per2 Sg Fem => appPattern3 root pC1AC2aC3sh ; + Per2 Pl _ => appPattern3 root pC1AC2aC3achehu ; + Per3 Sg Masc => appPattern3 root pC1AC2aC3e ; + Per3 Sg Fem => appPattern3 root pC1AC2aC3ech ; + Per3 Pl _=> appPattern3 root pC1AC2aC3u } + } ; + + CompPerf => table { + + Act => table { + + Per1 Sg => appPattern3 root C1AC2C3iealehu ; + Per1 Pl => appPattern3 root C1AC2C3enal ; + Per2 Sg Masc => appPattern3 root C1AC2C3ekal ; + Per2 Sg Fem => appPattern3 root C1AC2C3eshal ; + Per2 Pl _ => appPattern3 root C1AC2C3achehual ; + Per3 Sg Masc => appPattern3 root C1AC2C3oal ; + Per3 Sg Fem => appPattern3 root C1AC2C3alech ; + Per3 Pl _=> appPattern3 root C1AC2C3ewwal }; + + Pas => table { Per1 Sg => appPattern3 root pC1AC2C3iealehu ; + Per1 Pl => appPattern3 root pC1AC2C3enal ; + Per2 Sg Masc => appPattern3 root pC1AC2C3ekal ; + Per2 Sg Fem => appPattern3 root pC1AC2C3eshal ; + Per2 Pl _ => appPattern3 root pC1AC2C3achehual ; + Per3 Sg Masc => appPattern3 root pC1AC2C3oal ; + Per3 Sg Fem => appPattern3 root pC1AC2C3alech ; + Per3 Pl _=> appPattern3 root pC1AC2C3ewwal} + } ; + + + + Cont => table { + Act => table { + + Per1 Sg => appPattern3 root eC1AC2aC3 ; + Per1 Pl => appPattern3 root enC1AC2aC3e ; + Per2 Sg Masc => appPattern3 root teC1AC2aC3 ; + Per2 Sg Fem => appPattern3pal root teC1AC2aC3 ; + Per2 Pl _ => appPattern3 root teC1AC2aC3u ; + Per3 Sg Masc => appPattern3 root yeC1AC2aC3 ; + Per3 Sg Fem => appPattern3 root teC1AC2aC3 ; + Per3 Pl _=> appPattern3 root yeC1AC2aC3u }; + + Pas => table {Per1 Sg => appPattern3 root peC1AC2aC3 ; + Per1 Pl => appPattern3 root penC1AC2aC3e ; + Per2 Sg Masc => appPattern3 root pteC1AC2aC3 ; + Per2 Sg Fem => appPattern3pal root pteC1AC2aC3 ; + Per2 Pl _ => appPattern3 root pteC1AC2aC3u ; + Per3 Sg Masc => appPattern3 root pyeC1AC2aC3 ; + Per3 Sg Fem => appPattern3 root pteC1AC2aC3 ; + Per3 Pl _=> appPattern3 root pyeC1AC2aC3u} + +}; + Imperf => table { + + Act => table { + + Per1 Sg => appPattern3 root eC1AC2aC3alehu ; + Per1 Pl => appPattern3 root enC1AC2aC3alen ; + Per2 Sg Masc => appPattern3 root teC1AC2aC3yaleh ; + Per2 Sg Fem => appPattern3pal root teC1AC2aC3aleh ; + Per2 Pl _ => appPattern3 root teC1AC2aC3alachehu ; + Per3 Sg Masc => appPattern3 root yeC1AC2aC3al ; + Per3 Sg Fem => appPattern3 root teC1AC2aC3alech ; + Per3 Pl _=> appPattern3 root yeC1AC2aC3alu}; + + Pas => table {Per1 Sg => appPattern3 root peC1AC2aC3alehu ; + Per1 Pl => appPattern3 root penC1AC2aC3alen ; + Per2 Sg Masc => appPattern3 root pteC1AC2aC3yaleh ; + Per2 Sg Fem => appPattern3pal root pteC1AC2aC3aleh ; + Per2 Pl _ => appPattern3 root pteC1AC2aC3alachehu ; + Per3 Sg Masc => appPattern3 root pyeC1AC2aC3al ; + Per3 Sg Fem => appPattern3 root pteC1AC2aC3alech ; + Per3 Pl _=> appPattern3 root pyeC1AC2aC3alu} + + + } ; + + Jus_Imperat => table { + + Act => table { + + Per1 Sg => appPattern3 root leC1AC2aC3 ; + Per1 Pl => appPattern3 root enC1AC2aC3 ; + Per2 Sg Masc => appPattern3 root C1AC2aC3 ; + Per2 Sg Fem => appPattern3pal root C1AC2aC3i; + Per2 Pl _ => appPattern3 root C1AC2aC3u ; + Per3 Sg Masc => appPattern3 root yC1AC2aC3 ; + Per3 Sg Fem => appPattern3 root tC1AC2aC3 ; + Per3 Pl _=> appPattern3 root yC1AC2aC3u } ; + + + Pas => table { Per1 Sg => appPattern3 root pleC1AC2aC3 ; + Per1 Pl => appPattern3 root penC1AC2aC3 ; + Per2 Sg Masc => appPattern3 root pC1AC2aC3 ; + Per2 Sg Fem => appPattern3pal root pC1AC2aC3i; + Per2 Pl _ => appPattern3 root pC1AC2aC3u ; + Per3 Sg Masc => appPattern3 root pyC1AC2aC3 ; + Per3 Sg Fem => appPattern3 root ptC1AC2aC3 ; + Per3 Pl _=> appPattern3 root pyC1AC2aC3u} + + } ; + + + Gerund => table { + + + Act => table { + + Per1 Sg => appPattern3 root C1AC2C3ie ; + Per1 Pl => appPattern3 root C1AC2C3en ; + Per2 Sg Masc => appPattern3 root C1AC2C3ek ; + Per2 Sg Fem => appPattern3 root C1AC2C3esh ; + Per2 Pl _ => appPattern3 root C1AC2C3achehu ; + Per3 Sg Masc => appPattern3 root C1AC2C3o ; + Per3 Sg Fem => appPattern3 root C1AC2C3a ; + Per3 Pl _=> appPattern3 root C1AC2C3ew }; + + + Pas => table { + Per1 Sg => appPattern3 root pC1AC2C3ie ; + Per1 Pl => appPattern3 root pC1AC2C3en ; + Per2 Sg Masc => appPattern3 root pC1AC2C3ek ; + Per2 Sg Fem => appPattern3 root pC1AC2C3esh ; + Per2 Pl _ => appPattern3 root pC1AC2C3achehu ; + Per3 Sg Masc => appPattern3 root pC1AC2C3o ; + Per3 Sg Fem => appPattern3 root pC1AC2C3a ; + Per3 Pl _=> appPattern3 root pC1AC2C3ew} + + } ; + + Infinitive => table { + + Act => table { + _ => appPattern3 root meC1AC2aC3 }; + + Pas => table {_ => appPattern3 root pmeC1AC2aC3} + + + } ; + Parti => table { + Act => table { + _ => appPattern3pal root C1aC2aC3i }; + + Pas => table {_ => appPattern3pal root pC1aC2aC3i} + + + } + + + } + }; + + + mkV3qTr : Str -> Verb = \v -> + + let root = getRoot3 v + + in { + + s = table { + + + Perf => table { + Act=> table { + + Per1 Sg => appPattern3 root C1oC2eC3ku ; + Per1 Pl => appPattern3 root C1oC2eC3n ; + Per2 Sg Masc => appPattern3 root C1oC2eC3k ; + Per2 Sg Fem => appPattern3 root C1oC2eC3sh ; + Per2 Pl _ => appPattern3 root C1oC2eC3achehu ; + Per3 Sg Masc => appPattern3 root C1oC2eC3e ; + Per3 Sg Fem => appPattern3 root C1oC2eC3ech ; + Per3 Pl _=> appPattern3 root C1oC2eC3u }; + + Pas => table { Per1 Sg => appPattern3 root pC1oC2eC3ku ; + Per1 Pl => appPattern3 root pC1oC2eC3n ; + Per2 Sg Masc => appPattern3 root pC1oC2eC3k ; + Per2 Sg Fem => appPattern3 root pC1oC2eC3sh ; + Per2 Pl _ => appPattern3 root pC1oC2eC3achehu ; + Per3 Sg Masc => appPattern3 root pC1oC2eC3e ; + Per3 Sg Fem => appPattern3 root pC1oC2eC3ech ; + Per3 Pl _=> appPattern3 root pC1oC2eC3u} + } ; + + CompPerf => table { + + Act => table { + + Per1 Sg => appPattern3pal root C1oC2C3iealehu ; + Per1 Pl => appPattern3 root C1oC2C3enal ; + Per2 Sg Masc => appPattern3 root C1oC2C3ekal ; + Per2 Sg Fem => appPattern3 root C1oC2C3eshal ; + Per2 Pl _ => appPattern3 root C1oC2C3achehual ; + Per3 Sg Masc => appPattern3 root C1oC2C3oal ; + Per3 Sg Fem => appPattern3 root C1oC2C3alech ; + Per3 Pl _=> appPattern3 root C1oC2C3ewwal }; + + + Pas => table {Per1 Sg => appPattern3pal root pC1oC2C3iealehu ; + Per1 Pl => appPattern3 root pC1oC2C3enal ; + Per2 Sg Masc => appPattern3 root pC1oC2C3ekal ; + Per2 Sg Fem => appPattern3 root pC1oC2C3eshal ; + Per2 Pl _ => appPattern3 root pC1oC2C3achehual ; + Per3 Sg Masc => appPattern3 root pC1oC2C3oal ; + Per3 Sg Fem => appPattern3 root pC1oC2C3alech ; + Per3 Pl _=> appPattern3 root pC1oC2C3ewwal} + } ; + Cont => table { + Act => table { + + Per1 Sg => appPattern3 root eC1oC2C3 ; + Per1 Pl => appPattern3 root enC1oC2C3e ; + Per2 Sg Masc => appPattern3 root teC1oC2C3 ; + Per2 Sg Fem => appPattern3pal root teC1oC2C3 ; + Per2 Pl _ => appPattern3 root teC1oC2C3u ; + Per3 Sg Masc => appPattern3 root yeC1oC2C3 ; + Per3 Sg Fem => appPattern3 root teC1oC2C3 ; + Per3 Pl _=> appPattern3 root yeC1oC2C3u }; + + + Pas => table {Per1 Sg => appPattern3 root peC1oC2C3 ; + Per1 Pl => appPattern3 root penC1oC2C3e ; + Per2 Sg Masc => appPattern3 root pteC1oC2C3 ; + Per2 Sg Fem => appPattern3pal root pteC1oC2C3 ; + Per2 Pl _ => appPattern3 root pteC1oC2C3u ; + Per3 Sg Masc => appPattern3 root pyeC1oC2C3 ; + Per3 Sg Fem => appPattern3 root pteC1oC2C3 ; + Per3 Pl _=> appPattern3 root pyeC1oC2C3u } + }; + + Imperf => table { + + Act => table { + + Per1 Sg => appPattern3 root eC1oC2C3alehu ; + Per1 Pl => appPattern3 root enC1oC2C3alen ; + Per2 Sg Masc => appPattern3 root teC1oC2C3aleh ; + Per2 Sg Fem => appPattern3pal root teC1oC2C3yalesh ; + Per2 Pl _ => appPattern3 root teC1oC2C3alachehu ; + Per3 Sg Masc => appPattern3 root yeC1oC2C3al ; + Per3 Sg Fem => appPattern3 root teC1oC2C3alech ; + Per3 Pl _=> appPattern3 root yeC1oC2C3alu }; + + Pas => table {Per1 Sg => appPattern3 root peC1oC2C3alehu ; + Per1 Pl => appPattern3 root penC1oC2C3alen ; + Per2 Sg Masc => appPattern3 root pteC1oC2C3aleh ; + Per2 Sg Fem => appPattern3pal root pteC1oC2C3yalesh ; + Per2 Pl _ => appPattern3 root pteC1oC2C3alachehu ; + Per3 Sg Masc => appPattern3 root pyeC1oC2C3al ; + Per3 Sg Fem => appPattern3 root pteC1oC2C3alech ; + Per3 Pl _=> appPattern3 root pyeC1oC2C3alu} + + + } ; + + Jus_Imperat => table { + + + Act => table { + + Per1 Sg => appPattern3 root leC1uC2eC3 ; + Per1 Pl => appPattern3 root enC1uC2eC3 ; + Per2 Sg Masc => appPattern3 root C1uC2eC3 ; + Per2 Sg Fem => appPattern3pal root C1uC2eC3i; + Per2 Pl _ => appPattern3 root C1uC2eC3u ; + Per3 Sg Masc => appPattern3 root yC1uC2eC3 ; + Per3 Sg Fem => appPattern3 root tC1uC2eC3 ; + Per3 Pl _=> appPattern3 root yC1uC2eC3u }; + + Pas => table {Per1 Sg => appPattern3 root pleC1uC2eC3 ; + Per1 Pl => appPattern3 root penC1uC2eC3 ; + Per2 Sg Masc => appPattern3 root pC1uC2eC3 ; + Per2 Sg Fem => appPattern3pal root pC1uC2eC3i; + Per2 Pl _ => appPattern3 root pC1uC2eC3u ; + Per3 Sg Masc => appPattern3 root pyC1uC2eC3 ; + Per3 Sg Fem => appPattern3 root ptC1uC2eC3 ; + Per3 Pl _=> appPattern3 root pyC1uC2eC3u} + + } ; + + + Gerund => table { + + Act => table { + + Per1 Sg => appPattern3pal root C1oC2C3ie ; + Per1 Pl => appPattern3 root C1oC2C3en ; + Per2 Sg Masc => appPattern3 root C1oC2C3ek ; + Per2 Sg Fem => appPattern3 root C1oC2C3esh ; + Per2 Pl _ => appPattern3 root C1oC2C3achehu ; + Per3 Sg Masc => appPattern3 root C1oC2C3o ; + Per3 Sg Fem => appPattern3 root C1oC2C3a ; + Per3 Pl _=> appPattern3 root C1oC2C3ew }; + + Pas => table { Per1 Sg => appPattern3pal root pC1oC2C3ie ; + Per1 Pl => appPattern3 root pC1oC2C3en ; + Per2 Sg Masc => appPattern3 root pC1oC2C3ek ; + Per2 Sg Fem => appPattern3 root pC1oC2C3esh ; + Per2 Pl _ => appPattern3 root pC1oC2C3achehu ; + Per3 Sg Masc => appPattern3 root pC1oC2C3o ; + Per3 Sg Fem => appPattern3 root pC1oC2C3a ; + Per3 Pl _=> appPattern3 root pC1oC2C3ew} + + } ; + + Infinitive => table { + + Act => table { + + _ => appPattern3 root meC1uC2eC3 }; + Pas => table {_ => appPattern3 root pmeC1uC2eC3} + + + } ; + + Parti => table { + Act => table { + _ => appPattern3pal root C1oC2aC3i }; + + Pas => table {_ => appPattern3pal root pC1oC2aC3i } + + + } + + + } + }; + + + + + + mkV2bl : Str -> Verb = \v -> + + let root = getRoot2 v + + in { + + s = table { + + + Perf => table { + + Act=>table { + Per1 Sg => appPattern2 root C1aC2hu ; + Per1 Pl => appPattern2 root C1aC2n ; + Per2 Sg Masc => appPattern2 root C1aC2k ; + Per2 Sg Fem => appPattern2 root C1aC2sh ; + Per2 Pl _ => appPattern2 root C1aC2achehu ; + Per3 Sg Masc => appPattern2 root C1aC2a ; + Per3 Sg Fem => appPattern2 root C1aC2ach ; + Per3 Pl _=> appPattern2 root C1aC2u }; + + Pas => table { Per1 Sg => appPattern2 root pC1aC2hu ; + Per1 Pl => appPattern2 root pC1aC2n ; + Per2 Sg Masc => appPattern2 root pC1aC2k ; + Per2 Sg Fem => appPattern2 root pC1aC2sh ; + Per2 Pl _ => appPattern2 root pC1aC2achehu ; + Per3 Sg Masc => appPattern2 root pC1aC2a ; + Per3 Sg Fem => appPattern2 root pC1aC2ach ; + Per3 Pl _=> appPattern2 root pC1aC2u} + } ; + +CompPerf => table { + Act => table { + Per1 Sg => appPattern2 root C1eC2ciealehu ; + Per1 Pl => appPattern2 root C1eC2tenal ; + Per2 Sg Masc => appPattern2 root C1eC2tekal ; + Per2 Sg Fem => appPattern2 root C1eC2teshal ; + Per2 Pl _ => appPattern2 root C1eC2tachehual ; + Per3 Sg Masc => appPattern2 root C1eC2toal ; + Per3 Sg Fem => appPattern2 root C1eC2talech ; + Per3 Pl _=> appPattern2 root C1eC2tewal}; + + + Pas => table { Per1 Sg => appPattern2 root pC1eC2ciealehu ; + Per1 Pl => appPattern2 root pC1eC2tenal ; + Per2 Sg Masc => appPattern2 root pC1eC2tekal ; + Per2 Sg Fem => appPattern2 root pC1eC2teshal ; + Per2 Pl _ => appPattern2 root pC1eC2tachehual ; + Per3 Sg Masc => appPattern2 root pC1eC2toal ; + Per3 Sg Fem => appPattern2 root pC1eC2talech ; + Per3 Pl _=> appPattern2 root pC1eC2tewal} + + + + }; + +Cont => table { + Act => table { + Per1 Sg => appPattern2 root eC1eC2a ; + Per1 Pl => appPattern2 root enC1eC2a ; + Per2 Sg Masc => appPattern2 root teC1eC2a ; + Per2 Sg Fem => appPattern2pal root teC1eC2i ; + Per2 Pl _ => appPattern2 root teC1eC2u ; + Per3 Sg Masc => appPattern2 root yeC1eC2a ; + Per3 Sg Fem => appPattern2 root teC1eC2a ; + Per3 Pl _=> appPattern2 root yeC1eC2u }; + + Pas => table {Per1 Sg => appPattern2 root peC1eC2a ; + Per1 Pl => appPattern2 root penC1eC2a ; + Per2 Sg Masc => appPattern2 root pteC1eC2a ; + Per2 Sg Fem => appPattern2pal root pteC1eC2i ; + Per2 Pl _ => appPattern2 root pteC1eC2u ; + Per3 Sg Masc => appPattern2 root pyeC1eC2a ; + Per3 Sg Fem => appPattern2 root pteC1eC2a ; + Per3 Pl _=> appPattern2 root pyeC1eC2u} + + }; + Imperf => table { + Act => table { + Per1 Sg => appPattern2 root eC1eC2alehu ; + Per1 Pl => appPattern2 root enC1eC2alen ; + Per2 Sg Masc => appPattern2 root teC1eC2yaleh ; + Per2 Sg Fem => appPattern2pal root teC1eC2aleh ; + Per2 Pl _ => appPattern2 root teC1eC2alachehu ; + Per3 Sg Masc => appPattern2 root yeC1eC2al ; + Per3 Sg Fem => appPattern2 root teC1eC2alech ; + Per3 Pl _=> appPattern2 root yeC1eC2alu}; + + Pas => table { Per1 Sg => appPattern2 root peC1eC2alehu ; + Per1 Pl => appPattern2 root penC1eC2alen ; + Per2 Sg Masc => appPattern2 root pteC1eC2yaleh ; + Per2 Sg Fem => appPattern2pal root pteC1eC2aleh ; + Per2 Pl _ => appPattern2 root pteC1eC2alachehu ; + Per3 Sg Masc => appPattern2 root pyeC1eC2al ; + Per3 Sg Fem => appPattern2 root pteC1eC2alech ; + Per3 Pl _=> appPattern2 root pyeC1eC2alu} + + } ; + + Jus_Imperat => table { + + Act => table { + + Per1 Sg => appPattern2 root leC1C2a ; + Per1 Pl => appPattern2 root enC1C2a ; + Per2 Sg Masc => appPattern2 root C1C2a ; + Per2 Sg Fem => appPattern2pal root C1C2i ; + Per2 Pl _ => appPattern2 root C1C2u ; + Per3 Sg Masc => appPattern2 root yC1C2a ; + Per3 Sg Fem => appPattern2 root tC1C2a ; + Per3 Pl _=> appPattern2 root yC1C2u }; + + + Pas => table { Per1 Sg => appPattern2 root pleC1C2a ; + Per1 Pl => appPattern2 root penC1C2a ; + Per2 Sg Masc => appPattern2 root pC1C2a ; + Per2 Sg Fem => appPattern2pal root pC1C2i ; + Per2 Pl _ => appPattern2 root pC1C2u ; + Per3 Sg Masc => appPattern2 root pyC1C2a ; + Per3 Sg Fem => appPattern2 root ptC1C2a ; + Per3 Pl _=> appPattern2 root pyC1C2u} + + } ; + + + Gerund => table { + Act => table { + Per1 Sg => appPattern2 root C1eC2cie ; + Per1 Pl => appPattern2 root C1eC2ten ; + Per2 Sg Masc => appPattern2 root C1eC2tek ; + Per2 Sg Fem => appPattern2 root C1eC2tesh ; + Per2 Pl _ => appPattern2 root C1eC2tachehu ; + Per3 Sg Masc => appPattern2 root C1eC2to ; + Per3 Sg Fem => appPattern2 root C1eC2ta ; + Per3 Pl _=> appPattern2 root C1eC2tew}; + + Pas => table { Per1 Sg => appPattern2 root pC1eC2cie ; + Per1 Pl => appPattern2 root pC1eC2ten ; + Per2 Sg Masc => appPattern2 root pC1eC2tek ; + Per2 Sg Fem => appPattern2 root pC1eC2tesh ; + Per2 Pl _ => appPattern2 root pC1eC2tachehu ; + Per3 Sg Masc => appPattern2 root pC1eC2to ; + Per3 Sg Fem => appPattern2 root pC1eC2ta ; + Per3 Pl _=> appPattern2 root pC1eC2tew} + } ; + + + Infinitive => table { + Act => table { + _ => appPattern2 root meC1C2at }; + + Pas => table {_ => appPattern2 root pmeC1C2at} + + + } ; + + Parti => table { + Act => table { + _ => appPattern2pal root C1eC2 }; + + Pas => table {_ => appPattern2pal root pC1eC2} + + + } + + + } + }; + + mkV2yz : Str -> Verb = \v -> + + let root = getRoot2 v + + in { + + s = table { + + + Perf => table { + + Act => table { + + Per1 Sg => appPattern2 root C1AC2hu ; + Per1 Pl => appPattern2 root C1AC2n ; + Per2 Sg Masc => appPattern2 root C1AC2k ; + Per2 Sg Fem => appPattern2 root C1AC2sh ; + Per2 Pl _ => appPattern2 root C1AC2achehu ; + Per3 Sg Masc => appPattern2 root C1AC2a ; + Per3 Sg Fem => appPattern2 root C1AC2ach ; + Per3 Pl _=> appPattern2 root C1AC2u}; + + + Pas => table {Per1 Sg => appPattern2 root C1AC2hu ; + Per1 Pl => appPattern2 root C1AC2n ; + Per2 Sg Masc => appPattern2 root C1AC2k ; + Per2 Sg Fem => appPattern2 root C1AC2sh ; + Per2 Pl _ => appPattern2 root C1AC2achehu ; + Per3 Sg Masc => appPattern2 root C1AC2a ; + Per3 Sg Fem => appPattern2 root C1AC2ach ; + Per3 Pl _=> appPattern2 root C1AC2u} + } ; + +CompPerf => table { + Act => table { + + Per1 Sg => appPattern2 root C1C2iealehu ; + Per1 Pl => appPattern2 root C1C2enal ; + Per2 Sg Masc => appPattern2 root C1C2ekal ; + Per2 Sg Fem => appPattern2 root C1C2eshal ; + Per2 Pl _ => appPattern2 root C1C2achehual ; + Per3 Sg Masc => appPattern2 root C1C2oal ; + Per3 Sg Fem => appPattern2 root C1C2alech ; + Per3 Pl _=> appPattern2 root C1C2ewal }; + + Pas => table { + + Per1 Sg => appPattern2 root C1C2iealehu ; + Per1 Pl => appPattern2 root C1C2enal ; + Per2 Sg Masc => appPattern2 root C1C2ekal ; + Per2 Sg Fem => appPattern2 root C1C2eshal ; + Per2 Pl _ => appPattern2 root C1C2achehual ; + Per3 Sg Masc => appPattern2 root C1C2oal ; + Per3 Sg Fem => appPattern2 root C1C2alech ; + Per3 Pl _=> appPattern2 root C1C2ewal } + + + + }; + +Cont => table { + + Act => table { + + Per1 Sg => appPattern2 root eC1C2 ; + Per1 Pl => appPattern2 root enC1C2 ; + Per2 Sg Masc => appPattern2 root teC1C2 ; + Per2 Sg Fem => appPattern2pal root teC1C2 ; + Per2 Pl _ => appPattern2 root teC1C2u ; + Per3 Sg Masc => appPattern2 root yeC1C2 ; + Per3 Sg Fem => appPattern2 root teC1C2 ; + Per3 Pl _=> appPattern2 root yeC1C2u }; + + Pas => table {Per1 Sg => appPattern2 root eC1C2 ; + Per1 Pl => appPattern2 root enC1C2 ; + Per2 Sg Masc => appPattern2 root teC1C2 ; + Per2 Sg Fem => appPattern2pal root teC1C2 ; + Per2 Pl _ => appPattern2 root teC1C2u ; + Per3 Sg Masc => appPattern2 root yeC1C2 ; + Per3 Sg Fem => appPattern2 root teC1C2 ; + Per3 Pl _=> appPattern2 root yeC1C2u} +}; + + Imperf => table { + + Act => table { + + + Per1 Sg => appPattern2 root eC1C2alehu ; + Per1 Pl => appPattern2 root enC1C2alen ; + Per2 Sg Masc => appPattern2 root teC1C2yaleh ; + Per2 Sg Fem => appPattern2pal root teC1C2aleh ; + Per2 Pl _ => appPattern2 root teC1C2alachehu ; + Per3 Sg Masc => appPattern2 root yeC1C2al ; + Per3 Sg Fem => appPattern2 root teC1C2alech ; + Per3 Pl _=> appPattern2 root yeC1C2alu }; + + Pas => table { + Per1 Sg => appPattern2 root eC1C2alehu ; + Per1 Pl => appPattern2 root enC1C2alen ; + Per2 Sg Masc => appPattern2 root teC1C2yaleh ; + Per2 Sg Fem => appPattern2pal root teC1C2aleh ; + Per2 Pl _ => appPattern2 root teC1C2alachehu ; + Per3 Sg Masc => appPattern2 root yeC1C2al ; + Per3 Sg Fem => appPattern2 root teC1C2alech ; + Per3 Pl _=> appPattern2 root yeC1C2alu} + + + } ; + + Jus_Imperat => table { + + Act => table { + + Per1 Sg => appPattern2 root leC1aC2a ; + Per1 Pl => appPattern2 root enC1aC2a ; + Per2 Sg Masc => appPattern2 root C1aC2 ; + Per2 Sg Fem => appPattern2pal root C1aC2i ; + Per2 Pl _ => appPattern2 root C1eC2u ; + Per3 Sg Masc => appPattern2 root yC1aC2a ; + Per3 Sg Fem => appPattern2 root tC1aC2a ; + Per3 Pl _=> appPattern2 root yC1aC2u }; + + + Pas => table {Per1 Sg => appPattern2 root leC1aC2a ; + Per1 Pl => appPattern2 root enC1aC2a ; + Per2 Sg Masc => appPattern2 root C1aC2 ; + Per2 Sg Fem => appPattern2pal root C1aC2i ; + Per2 Pl _ => appPattern2 root C1eC2u ; + Per3 Sg Masc => appPattern2 root yC1aC2a ; + Per3 Sg Fem => appPattern2 root tC1aC2a ; + Per3 Pl _=> appPattern2 root yC1aC2u} + + } ; + + + Gerund => table { + + Act => table { + + Per1 Sg => appPattern2 root C1C2ie ; + Per1 Pl => appPattern2 root C1C2en ; + Per2 Sg Masc => appPattern2 root C1C2ek ; + Per2 Sg Fem => appPattern2 root C1C2esh ; + Per2 Pl _ => appPattern2 root C1C2achehu ; + Per3 Sg Masc => appPattern2 root C1C2o ; + Per3 Sg Fem => appPattern2 root C1C2a ; + Per3 Pl _=> appPattern2 root C1C2ew }; + + Pas => table {Per1 Sg => appPattern2 root C1C2ie ; + Per1 Pl => appPattern2 root C1C2en ; + Per2 Sg Masc => appPattern2 root C1C2ek ; + Per2 Sg Fem => appPattern2 root C1C2esh ; + Per2 Pl _ => appPattern2 root C1C2achehu ; + Per3 Sg Masc => appPattern2 root C1C2o ; + Per3 Sg Fem => appPattern2 root C1C2a ; + Per3 Pl _=> appPattern2 root C1C2ew} + } ; + + + Infinitive => table { + Act => table { + + _ => appPattern2 root meC1aC2}; + + Pas => table { _ => appPattern2 root meC1aC2} + + + } ; + + Parti => table { + Act => table {_ => appPattern2pal root C1aC2ii }; + + Pas => table {_ => appPattern2pal root C1aC2ii } + + + + + } + + + } + }; + + + + mkV2nr : Str -> Verb = \v -> + + let root = getRoot2 v + + in { + + s = table { + + + Perf => table { + + Act => table { + + Per1 Sg => appPattern2 root C1oC2hu ; + Per1 Pl => appPattern2 root C1oC2n ; + Per2 Sg Masc => appPattern2 root C1oC2k ; + Per2 Sg Fem => appPattern2 root C1oC2sh ; + Per2 Pl _ => appPattern2 root C1oC2achehu ; + Per3 Sg Masc => appPattern2 root C1oC2a ; + Per3 Sg Fem => appPattern2 root C1oC2ach ; + Per3 Pl _=> appPattern2 root C1oC2u }; + + Pas => table { Per1 Sg => appPattern2 root C1oC2hu ; + Per1 Pl => appPattern2 root C1oC2n ; + Per2 Sg Masc => appPattern2 root C1oC2k ; + Per2 Sg Fem => appPattern2 root C1oC2sh ; + Per2 Pl _ => appPattern2 root C1oC2achehu ; + Per3 Sg Masc => appPattern2 root C1oC2a ; + Per3 Sg Fem => appPattern2 root C1oC2ach ; + Per3 Pl _=> appPattern2 root C1oC2u} + } ; + + CompPerf => table { + Act => table { + Per1 Sg => appPattern2pal root C1oC2iealehu ; + Per1 Pl => appPattern2 root C1oC2enal ; + Per2 Sg Masc => appPattern2 root C1oC2ekal ; + Per2 Sg Fem => appPattern2 root C1oC2eshal; + Per2 Pl _ => appPattern2 root C1oC2achehual; + Per3 Sg Masc => appPattern2 root C1oC2oal ; + Per3 Sg Fem => appPattern2 root C1oC2Alech ; + Per3 Pl _=> appPattern2 root C1oC2ewal }; + + Pas => table { + Per1 Sg => appPattern2pal root C1oC2iealehu ; + Per1 Pl => appPattern2 root C1oC2enal ; + Per2 Sg Masc => appPattern2 root C1oC2ekal ; + Per2 Sg Fem => appPattern2 root C1oC2eshal; + Per2 Pl _ => appPattern2 root C1oC2achehual; + Per3 Sg Masc => appPattern2 root C1oC2oal ; + Per3 Sg Fem => appPattern2 root C1oC2Alech ; + Per3 Pl _=> appPattern2 root C1oC2ewal} + }; + +Cont => table { Act => table { + Per1 Sg => appPattern2 root eC1oC2 ; + Per1 Pl => appPattern2 root enC1oC2 ; + Per2 Sg Masc => appPattern2 root teC1oC2 ; + Per2 Sg Fem => appPattern2pal root teC1oC2i ; + Per2 Pl _ => appPattern2 root teC1oC2u ; + Per3 Sg Masc => appPattern2 root yeC1oC2 ; + Per3 Sg Fem => appPattern2 root teC1oC2 ; + Per3 Pl _=> appPattern2 root yeC1oC2u}; + + Pas => table { Per1 Sg => appPattern2 root eC1oC2 ; + Per1 Pl => appPattern2 root enC1oC2 ; + Per2 Sg Masc => appPattern2 root teC1oC2 ; + Per2 Sg Fem => appPattern2pal root teC1oC2i ; + Per2 Pl _ => appPattern2 root teC1oC2u ; + Per3 Sg Masc => appPattern2 root yeC1oC2 ; + Per3 Sg Fem => appPattern2 root teC1oC2 ; + Per3 Pl _=> appPattern2 root yeC1oC2u} + }; + Imperf => table { + + Act => table { + + Per1 Sg => appPattern2 root eC1oC2alehu ; + Per1 Pl => appPattern2 root enC1oC2alen ; + Per2 Sg Masc => appPattern2 root teC1oC2yaleh ; + Per2 Sg Fem => appPattern2pal root teC1oC2alesh ; + Per2 Pl _ => appPattern2 root teC1oC2alachehu ; + Per3 Sg Masc => appPattern2 root yeC1oC2al ; + Per3 Sg Fem => appPattern2 root teC1oC2alech ; + Per3 Pl _=> appPattern2 root yeC1oC2alu } ; + Pas => table { Per1 Sg => appPattern2 root eC1oC2alehu ; + Per1 Pl => appPattern2 root enC1oC2alen ; + Per2 Sg Masc => appPattern2 root teC1oC2yaleh ; + Per2 Sg Fem => appPattern2pal root teC1oC2alesh ; + Per2 Pl _ => appPattern2 root teC1oC2alachehu ; + Per3 Sg Masc => appPattern2 root yeC1oC2al ; + Per3 Sg Fem => appPattern2 root teC1oC2alech ; + Per3 Pl _=> appPattern2 root yeC1oC2alu} + + + } ; + + Jus_Imperat => table { + + + Act => table { + + Per1 Sg => appPattern2 root leC1uC2; + Per1 Pl => appPattern2 root enC1uC2; + Per2 Sg Masc => appPattern2 root C1uC2 ; + Per2 Sg Fem => appPattern2pal root C1uC2i ; + Per2 Pl __ => appPattern2 root C1uC2u ; + Per3 Sg Masc => appPattern2 root yC1uC2 ; + Per3 Sg Fem => appPattern2 root tC1uC2 ; + Per3 Pl _=> appPattern2 root yC1uC2u }; + + Pas => table { Per1 Sg => appPattern2 root leC1uC2; + Per1 Pl => appPattern2 root enC1uC2; + Per2 Sg Masc => appPattern2 root C1uC2 ; + Per2 Sg Fem => appPattern2pal root C1uC2i ; + Per2 Pl __ => appPattern2 root C1uC2u ; + Per3 Sg Masc => appPattern2 root yC1uC2 ; + Per3 Sg Fem => appPattern2 root tC1uC2 ; + Per3 Pl _=> appPattern2 root yC1uC2u} + + } ; + + + Gerund => table { + + Act => table { + + Per1 Sg => appPattern2 root C1oC2ie ; + Per1 Pl => appPattern2 root C1oC2en ; + Per2 Sg Masc => appPattern2 root C1oC2ek ; + Per2 Sg Fem => appPattern2 root C1oC2esh; + Per2 Pl _ => appPattern2 root C1oC2achehu; + Per3 Sg Masc => appPattern2 root C1oC2o ; + Per3 Sg Fem => appPattern2 root C1oC2A ; + Per3 Pl _=> appPattern2 root C1oC2ew }; + + Pas => table { Per1 Sg => appPattern2 root C1oC2ie ; + Per1 Pl => appPattern2 root C1oC2en ; + Per2 Sg Masc => appPattern2 root C1oC2ek ; + Per2 Sg Fem => appPattern2 root C1oC2esh; + Per2 Pl _ => appPattern2 root C1oC2achehu; + Per3 Sg Masc => appPattern2 root C1oC2o ; + Per3 Sg Fem => appPattern2 root C1oC2A ; + Per3 Pl _=> appPattern2 root C1oC2ew} + + } ; + + + Infinitive => table { + + Act => table { + + _ => appPattern2 root meC1oC2 }; + + Pas => table {_ => appPattern2 root meC1oC2 } + + + } ; + Parti => table { + Act => table { + + _ => appPattern2pal root C1uaC2i }; + + Pas => table { _ => appPattern2pal root C1uaC2i } + + + } + + + } + }; + + mkV2sT : Str -> Verb = \v -> + + let root = getRoot2 v + + in { + + s = table { + + + Perf => table { + + + Act => table { + + Per1 Sg => appPattern2 root C1eC2hu ; + Per1 Pl => appPattern2 root C1eC2n ; + Per2 Sg Masc => appPattern2 root C1eC2k ; + Per2 Sg Fem => appPattern2 root C1eC2sh ; + Per2 Pl _ => appPattern2 root C1eC2achehu ; + Per3 Sg Masc => appPattern2 root C1eC2a ; + Per3 Sg Fem => appPattern2 root C1eC2ach ; + Per3 Pl _=> appPattern2 root C1aC2u }; + + Pas => table { Per1 Sg => appPattern2 root C1eC2hu ; + Per1 Pl => appPattern2 root C1eC2n ; + Per2 Sg Masc => appPattern2 root C1eC2k ; + Per2 Sg Fem => appPattern2 root C1eC2sh ; + Per2 Pl _ => appPattern2 root C1eC2achehu ; + Per3 Sg Masc => appPattern2 root C1eC2a ; + Per3 Sg Fem => appPattern2 root C1eC2ach ; + Per3 Pl _=> appPattern2 root C1aC2u} + } ; + +CompPerf => table { + + Act => table { + Per1 Sg => appPattern2 root C1eC2ciealehu ; + Per1 Pl => appPattern2 root C1eC2tenal ; + Per2 Sg Masc => appPattern2 root C1eC2tekal ; + Per2 Sg Fem => appPattern2 root C1eC2teshal ; + Per2 Pl _ => appPattern2 root C1eC2tachehual ; + Per3 Sg Masc => appPattern2 root C1eC2toal ; + Per3 Sg Fem => appPattern2 root C1eC2talech ; + Per3 Pl _=> appPattern2 root C1eC2tewal }; + + Pas => table { Per1 Sg => appPattern2 root C1eC2ciealehu ; + Per1 Pl => appPattern2 root C1eC2tenal ; + Per2 Sg Masc => appPattern2 root C1eC2tekal ; + Per2 Sg Fem => appPattern2 root C1eC2teshal ; + Per2 Pl _ => appPattern2 root C1eC2tachehual ; + Per3 Sg Masc => appPattern2 root C1eC2toal ; + Per3 Sg Fem => appPattern2 root C1eC2talech ; + Per3 Pl _=> appPattern2 root C1eC2tewal } + } ; +Cont => table { + Act => table { + Per1 Sg => appPattern2 root eC1oC2 ; + Per1 Pl => appPattern2 root enC1oC2 ; + Per2 Sg Masc => appPattern2 root teC1oC2 ; + Per2 Sg Fem => appPattern2pal root teC1oC2i ; + Per2 Pl _ => appPattern2 root teC1oC2u ; + Per3 Sg Masc => appPattern2 root yeC1oC2 ; + Per3 Sg Fem => appPattern2 root teC1oC2 ; + Per3 Pl _=> appPattern2 root yeC1oC2u }; + + Pas => table {Per1 Sg => appPattern2 root eC1oC2 ; + Per1 Pl => appPattern2 root enC1oC2 ; + Per2 Sg Masc => appPattern2 root teC1oC2 ; + Per2 Sg Fem => appPattern2pal root teC1oC2i ; + Per2 Pl _ => appPattern2 root teC1oC2u ; + Per3 Sg Masc => appPattern2 root yeC1oC2 ; + Per3 Sg Fem => appPattern2 root teC1oC2 ; + Per3 Pl _=> appPattern2 root yeC1oC2u} +}; + Imperf => table { + + Act => table { + + Per1 Sg => appPattern2 root eC1eC2alehu ; + Per1 Pl => appPattern2 root enC1eC2alen ; + Per2 Sg Masc => appPattern2 root teC1eC2yaleh ; + Per2 Sg Fem => appPattern2pal root teC1eC2aleh ; + Per2 Pl _ => appPattern2 root teC1eC2alachehu ; + Per3 Sg Masc => appPattern2 root yeC1eC2al ; + Per3 Sg Fem => appPattern2 root teC1eC2alech ; + Per3 Pl _=> appPattern2 root yeC1eC2alu }; + + + Pas => table { Per1 Sg => appPattern2 root eC1eC2alehu ; + Per1 Pl => appPattern2 root enC1eC2alen ; + Per2 Sg Masc => appPattern2 root teC1eC2yaleh ; + Per2 Sg Fem => appPattern2pal root teC1eC2aleh ; + Per2 Pl _ => appPattern2 root teC1eC2alachehu ; + Per3 Sg Masc => appPattern2 root yeC1eC2al ; + Per3 Sg Fem => appPattern2 root teC1eC2alech ; + Per3 Pl _=> appPattern2 root yeC1eC2alu } + + + } ; + + Jus_Imperat => table { + + + Act => table { + + Per1 Sg => appPattern2 root leC1eC2; + Per1 Pl => appPattern2 root enC1eC2; + Per2 Sg Masc => appPattern2 root C1C2 ; + Per2 Sg Fem => appPattern2pal root C1eC2i ; + Per2 Pl _ => appPattern2 root C1C2u ; + Per3 Sg Masc => appPattern2 root yC1eC2 ; + Per3 Sg Fem => appPattern2 root tC1eC2 ; + Per3 Pl _=> appPattern2 root yC1C2u }; + + Pas => table { Per1 Sg => appPattern2 root leC1eC2; + Per1 Pl => appPattern2 root enC1eC2; + Per2 Sg Masc => appPattern2 root C1C2 ; + Per2 Sg Fem => appPattern2pal root C1eC2i ; + Per2 Pl _ => appPattern2 root C1C2u ; + Per3 Sg Masc => appPattern2 root yC1eC2 ; + Per3 Sg Fem => appPattern2 root tC1eC2 ; + Per3 Pl _=> appPattern2 root yC1C2u} + } ; + + + Gerund => table { + + + Act => table { + + Per1 Sg => appPattern2 root C1eC2cie ; + Per1 Pl => appPattern2 root C1eC2ten ; + Per2 Sg Masc => appPattern2 root C1eC2tek ; + Per2 Sg Fem => appPattern2 root C1eC2tesh ; + Per2 Pl _ => appPattern2 root C1eC2tachehu ; + Per3 Sg Masc => appPattern2 root C1eC2to ; + Per3 Sg Fem => appPattern2 root C1eC2ta ; + Per3 Pl _=> appPattern2 root C1eC2tew }; + + Pas => table {Per1 Sg => appPattern2 root C1eC2cie ; + Per1 Pl => appPattern2 root C1eC2ten ; + Per2 Sg Masc => appPattern2 root C1eC2tek ; + Per2 Sg Fem => appPattern2 root C1eC2tesh ; + Per2 Pl _ => appPattern2 root C1eC2tachehu ; + Per3 Sg Masc => appPattern2 root C1eC2to ; + Per3 Sg Fem => appPattern2 root C1eC2ta ; + Per3 Pl _=> appPattern2 root C1eC2tew } + } ; + + + Infinitive => table { + + Act => table { + + _ => appPattern2 root meC1C2et } ; + + Pas => table { _ => appPattern2 root meC1C2et} + + + } ; + Parti => table { + Act => table { + _ => appPattern2pal root C1eC2 }; + + Pas => table { + _ => appPattern2pal root C1eC2 } + + + } + + + } + }; + + + +mkV2wN : Str -> Verb = \v -> + + let root = getRoot2 v + + in { + + s = table { + + + Perf => table { + + Act => table { + + Per1 Sg => appPattern2 root C1AC2ehu ; + Per1 Pl => appPattern2 root C1AC2en ; + Per2 Sg Masc => appPattern2 root C1AC2ek; + Per2 Sg Fem => appPattern2 root C1AC2esh; + Per2 Pl _ => appPattern2 root C1AC2achehu ; + Per3 Sg Masc => appPattern2 root C1AC2a ; + Per3 Sg Fem => appPattern2 root C1AC2ach ; + Per3 Pl _=> appPattern2 root C1AC2u }; + + Pas => table { Per1 Sg => appPattern2 root C1AC2ehu ; + Per1 Pl => appPattern2 root C1AC2en ; + Per2 Sg Masc => appPattern2 root C1AC2ek; + Per2 Sg Fem => appPattern2 root C1AC2esh; + Per2 Pl _ => appPattern2 root C1AC2achehu ; + Per3 Sg Masc => appPattern2 root C1AC2a ; + Per3 Sg Fem => appPattern2 root C1AC2ach ; + Per3 Pl _=> appPattern2 root C1AC2u} + + } ; + +CompPerf => table { + Act => table { + Per1 Sg => appPattern2 root C1aC2ciealehu ; + Per1 Pl => appPattern2 root C1aC2tenal ; + Per2 Sg Masc => appPattern2 root C1aC2tekal ; + Per2 Sg Fem => appPattern2 root C1aC2teshal ; + Per2 Pl _ => appPattern2 root C1aC2tachehual ; + Per3 Sg Masc => appPattern2 root C1aC2toal ; + Per3 Sg Fem => appPattern2 root C1aC2talech ; + Per3 Pl _=> appPattern2 root C1aC2tewal}; + + Pas => table { Per1 Sg => appPattern2 root C1aC2ciealehu ; + Per1 Pl => appPattern2 root C1aC2tenal ; + Per2 Sg Masc => appPattern2 root C1aC2tekal ; + Per2 Sg Fem => appPattern2 root C1aC2teshal ; + Per2 Pl _ => appPattern2 root C1aC2tachehual ; + Per3 Sg Masc => appPattern2 root C1aC2toal ; + Per3 Sg Fem => appPattern2 root C1aC2talech ; + Per3 Pl _=> appPattern2 root C1aC2tewal} + + + }; + +Cont => table { Act => table { + Per1 Sg => appPattern2 root eC1aC2 ; + Per1 Pl => appPattern2 root enC1aC2 ; + Per2 Sg Masc => appPattern2 root teC1aC2 ; + Per2 Sg Fem => appPattern2pal root teC1aC2 ; + Per2 Pl _ => appPattern2 root teC1aC2u ; + Per3 Sg Masc => appPattern2 root yeC1aC2 ; + Per3 Sg Fem => appPattern2 root teC1aC2 ; + Per3 Pl _=> appPattern2 root yeC1aC2u }; + + Pas => table { + Per1 Sg => appPattern2 root eC1aC2 ; + Per1 Pl => appPattern2 root enC1aC2 ; + Per2 Sg Masc => appPattern2 root teC1aC2 ; + Per2 Sg Fem => appPattern2pal root teC1aC2 ; + Per2 Pl _ => appPattern2 root teC1aC2u ; + Per3 Sg Masc => appPattern2 root yeC1aC2 ; + Per3 Sg Fem => appPattern2 root teC1aC2 ; + Per3 Pl _=> appPattern2 root yeC1aC2u} + }; + Imperf => table { + + Act => table { + + Per1 Sg => appPattern2 root eC1aC2alehu ; + Per1 Pl => appPattern2 root enC1aC2alen ; + Per2 Sg Masc => appPattern2 root teC1aC2yaleh ; + Per2 Sg Fem => appPattern2pal root teC1aC2alesh ; + Per2 Pl _ => appPattern2 root teC1aC2alachehu ; + Per3 Sg Masc => appPattern2 root yeC1aC2al ; + Per3 Sg Fem => appPattern2 root teC1aC2alech ; + Per3 Pl _=> appPattern2 root yeC1aC2alu }; + + Pas => table { Per1 Sg => appPattern2 root eC1aC2alehu ; + Per1 Pl => appPattern2 root enC1aC2alen ; + Per2 Sg Masc => appPattern2 root teC1aC2yaleh ; + Per2 Sg Fem => appPattern2pal root teC1aC2alesh ; + Per2 Pl _ => appPattern2 root teC1aC2alachehu ; + Per3 Sg Masc => appPattern2 root yeC1aC2al ; + Per3 Sg Fem => appPattern2 root teC1aC2alech ; + Per3 Pl _=> appPattern2 root yeC1aC2alu} + + + } ; + + Jus_Imperat => table { + + Act => table { + + Per1 Sg => appPattern2 root leC1aC2a ; + Per1 Pl => appPattern2 root enC1aC2a ; + Per2 Sg Masc => appPattern2 root C1aC2 ; + Per2 Sg Fem => appPattern2pal root C1aC2i ; + Per2 Pl _ => appPattern2 root C1eC2u ; + Per3 Sg Masc => appPattern2 root yC1aC2a ; + Per3 Sg Fem => appPattern2 root tC1aC2a ; + Per3 Pl _=> appPattern2 root yC1aC2u }; + + Pas => table { Per1 Sg => appPattern2 root leC1aC2a ; + Per1 Pl => appPattern2 root enC1aC2a ; + Per2 Sg Masc => appPattern2 root C1aC2 ; + Per2 Sg Fem => appPattern2pal root C1aC2i ; + Per2 Pl _ => appPattern2 root C1eC2u ; + Per3 Sg Masc => appPattern2 root yC1aC2a ; + Per3 Sg Fem => appPattern2 root tC1aC2a ; + Per3 Pl _=> appPattern2 root yC1aC2u} + } ; + + + Gerund => table { + + Act => table { + + Per1 Sg => appPattern2 root C1aC2cie ; + Per1 Pl => appPattern2 root C1aC2ten ; + Per2 Sg Masc => appPattern2 root C1aC2tek ; + Per2 Sg Fem => appPattern2 root C1aC2tesh ; + Per2 Pl _ => appPattern2 root C1aC2tachehu ; + Per3 Sg Masc => appPattern2 root C1aC2to ; + Per3 Sg Fem => appPattern2 root C1aC2ta ; + Per3 Pl _=> appPattern2 root C1aC2tew} ; + + Pas => table { Per1 Sg => appPattern2 root C1aC2cie ; + Per1 Pl => appPattern2 root C1aC2ten ; + Per2 Sg Masc => appPattern2 root C1aC2tek ; + Per2 Sg Fem => appPattern2 root C1aC2tesh ; + Per2 Pl _ => appPattern2 root C1aC2tachehu ; + Per3 Sg Masc => appPattern2 root C1aC2to ; + Per3 Sg Fem => appPattern2 root C1aC2ta ; + Per3 Pl _=> appPattern2 root C1aC2tew} + } ; + + + Infinitive => table { + + Act => table { + + _ => appPattern2 root meC1aC2et }; + + Pas => table {_ => appPattern2 root meC1aC2et} + + + } ; + Parti => table { + Act => table { + + _ => appPattern2pal root C1aC2i }; + + Pas => table {_ => appPattern2pal root C1aC2i } + + + } + + + } + }; + + + +---------- QUAD + + mkV4dbdb : Str -> Verb = \v -> + + let root = getRoot4 v + + in { + + s = table { + + + Perf => table { + + Act => table { + + Per1 Sg => appPattern4 root C1aC2aC3aC4hu ; + Per1 Pl => appPattern4 root C1aC2aC3aC4n ; + Per2 Sg Masc => appPattern4 root C1aC2aC3aC4k ; + Per2 Sg Fem => appPattern4 root C1aC2aC3aC4sh ; + Per2 Pl _ => appPattern4 root C1aC2aC3aC4achehu ; + Per3 Sg Masc => appPattern4 root C1aC2aC3aC4a ; + Per3 Sg Fem => appPattern4 root C1aC2aC3aC4ech ; + Per3 Pl _=> appPattern4 root C1aC2aC3aC4u }; + + Pas => table {Per1 Sg => appPattern4 root C1aC2aC3aC4hu ; + Per1 Pl => appPattern4 root C1aC2aC3aC4n ; + Per2 Sg Masc => appPattern4 root C1aC2aC3aC4k ; + Per2 Sg Fem => appPattern4 root C1aC2aC3aC4sh ; + Per2 Pl _ => appPattern4 root C1aC2aC3aC4achehu ; + Per3 Sg Masc => appPattern4 root C1aC2aC3aC4a ; + Per3 Sg Fem => appPattern4 root C1aC2aC3aC4ech ; + Per3 Pl _=> appPattern4 root C1aC2aC3aC4u} + + } ; + +CompPerf => table { + Act => table { + Per1 Sg => appPattern4pal root C1aC2C3C4iealehu ; + Per1 Pl => appPattern4 root C1aC2C3C4enal ; + Per2 Sg Masc => appPattern4 root C1aC2C3C4ekal ; + Per2 Sg Fem => appPattern4 root C1aC2C3C4eshal ; + Per2 Pl _ => appPattern4 root C1aC2C3C4achehual ; + Per3 Sg Masc => appPattern4 root C1aC2C3C4oal ; + Per3 Sg Fem => appPattern4 root C1aC2C3C4alech ; + Per3 Pl _=> appPattern4 root C1aC2C3C4ewal }; + + + Pas => table { Per1 Sg => appPattern4pal root C1aC2C3C4iealehu ; + Per1 Pl => appPattern4 root C1aC2C3C4enal ; + Per2 Sg Masc => appPattern4 root C1aC2C3C4ekal ; + Per2 Sg Fem => appPattern4 root C1aC2C3C4eshal ; + Per2 Pl _ => appPattern4 root C1aC2C3C4achehual ; + Per3 Sg Masc => appPattern4 root C1aC2C3C4oal ; + Per3 Sg Fem => appPattern4 root C1aC2C3C4alech ; + Per3 Pl _=> appPattern4 root C1aC2C3C4ewal} +}; + +Cont => table { + Act => table { + Per1 Sg => appPattern4 root eC1aC2aC3C4 ; + Per1 Pl => appPattern4 root enC1aC2aC3C4 ; + Per2 Sg Masc => appPattern4 root teC1aC2aC3C4 ; + Per2 Sg Fem => appPattern4pal root teC1aC2aC3C4i ; + Per2 Pl _ => appPattern4 root teC1aC2aC3C4u ; + Per3 Sg Masc => appPattern4 root yeC1aC2aC3C4 ; + Per3 Sg Fem => appPattern4 root teC1aC2aC3C4 ; + Per3 Pl _=> appPattern4 root yeC1aC2aC3C4u }; + + Pas => table { Per1 Sg => appPattern4 root eC1aC2aC3C4 ; + Per1 Pl => appPattern4 root enC1aC2aC3C4 ; + Per2 Sg Masc => appPattern4 root teC1aC2aC3C4 ; + Per2 Sg Fem => appPattern4pal root teC1aC2aC3C4i ; + Per2 Pl _ => appPattern4 root teC1aC2aC3C4u ; + Per3 Sg Masc => appPattern4 root yeC1aC2aC3C4 ; + Per3 Sg Fem => appPattern4 root teC1aC2aC3C4 ; + Per3 Pl _=> appPattern4 root yeC1aC2aC3C4u } + + }; + Imperf => table { + + Act => table { + + Per1 Sg => appPattern4 root eC1aC2aC3C4alehu ; + Per1 Pl => appPattern4 root enC1aC2aC3C4alen ; + Per2 Sg Masc => appPattern4 root teC1aC2aC3C4yaleh ; + Per2 Sg Fem => appPattern4pal root teC1aC2aC3C4aleh ; + Per2 Pl _ => appPattern4 root teC1aC2aC3C4alachehu ; + Per3 Sg Masc => appPattern4 root yeC1aC2aC3C4al ; + Per3 Sg Fem => appPattern4 root teC1aC2aC3C4alech ; + Per3 Pl _=> appPattern4 root yeC1aC2aC3C4alu}; + + + Pas => table { Per1 Sg => appPattern4 root eC1aC2aC3C4alehu ; + Per1 Pl => appPattern4 root enC1aC2aC3C4alen ; + Per2 Sg Masc => appPattern4 root teC1aC2aC3C4yaleh ; + Per2 Sg Fem => appPattern4pal root teC1aC2aC3C4aleh ; + Per2 Pl _ => appPattern4 root teC1aC2aC3C4alachehu ; + Per3 Sg Masc => appPattern4 root yeC1aC2aC3C4al ; + Per3 Sg Fem => appPattern4 root teC1aC2aC3C4alech ; + Per3 Pl _=> appPattern4 root yeC1aC2aC3C4alu} + } ; + + Jus_Imperat => table { + + Act => table { + + Per1 Sg => appPattern4 root leC1aC2C3C4; + Per1 Pl => appPattern4 root enC1aC2C3C4; + Per2 Sg Masc => appPattern4 root C1aC2C3C4 ; + Per2 Sg Fem => appPattern4pal root C1aC2C3C4i ; + Per2 Pl _ => appPattern4 root C1aC2C3C4u ; + Per3 Sg Masc => appPattern4 root yC1aC2C3C4 ; + Per3 Sg Fem => appPattern4 root tC1aC2C3C4 ; + Per3 Pl _=> appPattern4 root yC1aC2C3C4u}; + + Pas => table { Per1 Sg => appPattern4 root leC1aC2C3C4; + Per1 Pl => appPattern4 root enC1aC2C3C4; + Per2 Sg Masc => appPattern4 root C1aC2C3C4 ; + Per2 Sg Fem => appPattern4pal root C1aC2C3C4i ; + Per2 Pl _ => appPattern4 root C1aC2C3C4u ; + Per3 Sg Masc => appPattern4 root yC1aC2C3C4 ; + Per3 Sg Fem => appPattern4 root tC1aC2C3C4 ; + Per3 Pl _=> appPattern4 root yC1aC2C3C4u} + } ; + + + Gerund => table { + + Act => table { + + Per1 Sg => appPattern4pal root C1aC2C3C4ie ; + Per1 Pl => appPattern4 root C1aC2C3C4en ; + Per2 Sg Masc => appPattern4 root C1aC2C3C4ek ; + Per2 Sg Fem => appPattern4 root C1aC2C3C4esh ; + Per2 Pl _ => appPattern4 root C1aC2C3C4achehu ; + Per3 Sg Masc => appPattern4 root C1aC2C3C4o ; + Per3 Sg Fem => appPattern4 root C1aC2C3C4a ; + Per3 Pl _=> appPattern4 root C1aC2C3C4ew}; + + Pas => table { Per1 Sg => appPattern4pal root C1aC2C3C4ie ; + Per1 Pl => appPattern4 root C1aC2C3C4en ; + Per2 Sg Masc => appPattern4 root C1aC2C3C4ek ; + Per2 Sg Fem => appPattern4 root C1aC2C3C4esh ; + Per2 Pl _ => appPattern4 root C1aC2C3C4achehu ; + Per3 Sg Masc => appPattern4 root C1aC2C3C4o ; + Per3 Sg Fem => appPattern4 root C1aC2C3C4a ; + Per3 Pl _=> appPattern4 root C1aC2C3C4ew} + } ; + + + Infinitive => table { + Act => table { + + _ => appPattern4 root meC1aC2C3aC4 }; + + Pas => table {_ => appPattern4 root meC1aC2C3aC4 } + + + } ; + + Parti => table { + Act => table { + + _ => appPattern4pal root C1eC2C3aC4i }; + + Pas => table {_ => appPattern4pal root C1eC2C3aC4i} + + + } + + + } + }; + + + +--test : for verbs that start with A - need further clearup with those -AS as well + mkV3asr : Str -> Verb = \v -> + + let root = getRoot3 v + + in { + + s = table { + + + Perf => table { + + Act => table { + + Per1 Sg => appPatternRemove root C1aC2aC3ku ; + Per1 Pl => appPatternRemove root C1aC2aC3n ; + Per2 Sg Masc => appPatternRemove root C1aC2aC3k ; + Per2 Sg Fem => appPatternRemove root C1aC2aC3sh ; + Per2 Pl _ => appPatternRemove root C1aC2aC3achehu ; + Per3 Sg Masc => appPatternRemove root C1aC2aC3e ; + Per3 Sg Fem => appPatternRemove root C1aC2aC3ech ; + Per3 Pl _=> appPatternRemove root C1aC2aC3u }; + + Pas => table { Per1 Sg => appPatternRemove root C1aC2aC3ku ; + Per1 Pl => appPatternRemove root C1aC2aC3n ; + Per2 Sg Masc => appPatternRemove root C1aC2aC3k ; + Per2 Sg Fem => appPatternRemove root C1aC2aC3sh ; + Per2 Pl _ => appPatternRemove root C1aC2aC3achehu ; + Per3 Sg Masc => appPatternRemove root C1aC2aC3e ; + Per3 Sg Fem => appPatternRemove root C1aC2aC3ech ; + Per3 Pl _=> appPatternRemove root C1aC2aC3u } + } ; + +CompPerf => table { + Act => table { + Per1 Sg => appPatternRemove root C1aC2C3ie ; + Per1 Pl => appPatternRemove root C1aC2C3en ; + Per2 Sg Masc => appPatternRemove root C1aC2C3ek ; + Per2 Sg Fem => appPatternRemove root C1aC2C3esh ; + Per2 Pl _ => appPatternRemove root C1aC2C3achehu ; + Per3 Sg Masc => appPatternRemove root C1aC2C3o ; + Per3 Sg Fem => appPatternRemove root C1aC2C3a ; + Per3 Pl _=> appPatternRemove root C1aC2C3ew}; + + Pas => table {Per1 Sg => appPatternRemove root C1aC2C3ie ; + Per1 Pl => appPatternRemove root C1aC2C3en ; + Per2 Sg Masc => appPatternRemove root C1aC2C3ek ; + Per2 Sg Fem => appPatternRemove root C1aC2C3esh ; + Per2 Pl _ => appPatternRemove root C1aC2C3achehu ; + Per3 Sg Masc => appPatternRemove root C1aC2C3o ; + Per3 Sg Fem => appPatternRemove root C1aC2C3a ; + Per3 Pl _=> appPatternRemove root C1aC2C3ew} + + + + }; + +Cont => table { + + Act => table { + Per1 Sg => appPatternRemove root eC1aC2C3alehu ; + Per1 Pl => appPatternRemove root enC1aC2C3alen ; + Per2 Sg Masc => appPatternRemove root teC1aC2C3yaleh ; + Per2 Sg Fem => appPatternRemove root teC1aC2C3aleh ; + Per2 Pl _ => appPatternRemove root teC1aC2C3alachehu ; + Per3 Sg Masc => appPatternRemove root yeC1aC2C3al ; + Per3 Sg Fem => appPatternRemove root teC1aC2C3alech ; + Per3 Pl _=> appPatternRemove root yeC1aC2C3alu }; + + + Pas => table { Per1 Sg => appPatternRemove root eC1aC2C3alehu ; + Per1 Pl => appPatternRemove root enC1aC2C3alen ; + Per2 Sg Masc => appPatternRemove root teC1aC2C3yaleh ; + Per2 Sg Fem => appPatternRemove root teC1aC2C3aleh ; + Per2 Pl _ => appPatternRemove root teC1aC2C3alachehu ; + Per3 Sg Masc => appPatternRemove root yeC1aC2C3al ; + Per3 Sg Fem => appPatternRemove root teC1aC2C3alech ; + Per3 Pl _=> appPatternRemove root yeC1aC2C3alu} + }; + + Imperf => table { + Act => table { + Per1 Sg => appPatternRemove root eC1aC2C3alehu ; + Per1 Pl => appPatternRemove root enC1aC2C3alen ; + Per2 Sg Masc => appPatternRemove root teC1aC2C3yaleh ; + Per2 Sg Fem => appPatternRemove root teC1aC2C3aleh ; + Per2 Pl _ => appPatternRemove root teC1aC2C3alachehu ; + Per3 Sg Masc => appPatternRemove root yeC1aC2C3al ; + Per3 Sg Fem => appPatternRemove root teC1aC2C3alech ; + Per3 Pl _=> appPatternRemove root yeC1aC2C3alu}; + + Pas => table { Per1 Sg => appPatternRemove root eC1aC2C3alehu ; + Per1 Pl => appPatternRemove root enC1aC2C3alen ; + Per2 Sg Masc => appPatternRemove root teC1aC2C3yaleh ; + Per2 Sg Fem => appPatternRemove root teC1aC2C3aleh ; + Per2 Pl _ => appPatternRemove root teC1aC2C3alachehu ; + Per3 Sg Masc => appPatternRemove root yeC1aC2C3al ; + Per3 Sg Fem => appPatternRemove root teC1aC2C3alech ; + Per3 Pl _=> appPatternRemove root yeC1aC2C3alu} + + } ; + + Jus_Imperat => table { + + Act => table { + + Per1 Sg => appPatternRemove root leC1C2aC3 ; + Per1 Pl => appPatternRemove root enC1C2aC3 ; + Per2 Sg Masc => appPatternRemove root C1C2aC3 ; + Per2 Sg Fem => appPatternRemove root C1C2aC3i ; + Per2 Pl _ => appPatternRemove root C1C2aC3u ; + Per3 Sg Masc => appPatternRemove root yC1C2aC3 ; + Per3 Sg Fem => appPatternRemove root tC1C2aC3 ; + Per3 Pl _=> appPatternRemove root yC1C2aC3u }; + + Pas => table {Per1 Sg => appPatternRemove root leC1C2aC3 ; + Per1 Pl => appPatternRemove root enC1C2aC3 ; + Per2 Sg Masc => appPatternRemove root C1C2aC3 ; + Per2 Sg Fem => appPatternRemove root C1C2aC3i ; + Per2 Pl _ => appPatternRemove root C1C2aC3u ; + Per3 Sg Masc => appPatternRemove root yC1C2aC3 ; + Per3 Sg Fem => appPatternRemove root tC1C2aC3 ; + Per3 Pl _=> appPatternRemove root yC1C2aC3u} + } ; + + + Gerund => table { + + + Act => table { + + Per1 Sg => appPatternRemove root C1aC2C3ie ; + Per1 Pl => appPatternRemove root C1aC2C3en ; + Per2 Sg Masc => appPatternRemove root C1aC2C3ek ; + Per2 Sg Fem => appPatternRemove root C1aC2C3esh ; + Per2 Pl _ => appPatternRemove root C1aC2C3achehu ; + Per3 Sg Masc => appPatternRemove root C1aC2C3o ; + Per3 Sg Fem => appPatternRemove root C1aC2C3a ; + Per3 Pl _=> appPatternRemove root C1aC2C3ew }; + + Pas => table { Per1 Sg => appPatternRemove root C1aC2C3ie ; + Per1 Pl => appPatternRemove root C1aC2C3en ; + Per2 Sg Masc => appPatternRemove root C1aC2C3ek ; + Per2 Sg Fem => appPatternRemove root C1aC2C3esh ; + Per2 Pl _ => appPatternRemove root C1aC2C3achehu ; + Per3 Sg Masc => appPatternRemove root C1aC2C3o ; + Per3 Sg Fem => appPatternRemove root C1aC2C3a ; + Per3 Pl _=> appPatternRemove root C1aC2C3ew} + } ; + + + Infinitive => table { + + Act => table { + + _ => appPatternRemove root meC1C2aC3 }; + + Pas => table {_ => appPatternRemove root meC1C2aC3} + + + } ; + + Parti => table { + Act => table { + _ => appPatternRemove root meC1C2aC3 }; + + Pas => table { _ => appPatternRemove root meC1C2aC3 } + + + } + + + } + }; + +-- trial +mkV3al: Str -> Verb = \v -> + + { + + s = table { + + + Perf => table { + + Act => table { + + Per1 Sg => "ነበረኝ" ; + Per1 Pl => "ነበረን"; + Per2 Sg Masc =>"ነበረህ"; + Per2 Sg Fem => "ነበረሽ"; + Per2 Pl _ => "ነበራችሁ"; + Per3 Sg Masc => "ነበረው"; + Per3 Sg Fem => "ነበራት"; + Per3 Pl _=> "ነበራቸው"}; + + Pas => table { + + Per1 Sg => "" ; + Per1 Pl => "" ; + Per2 Sg Masc => "" ; + Per2 Sg Fem => "" ; + Per2 Pl _ => "" ; + Per3 Sg Masc => "" ; + Per3 Sg Fem => "" ; + Per3 Pl _=> "" + + } + } ; + + CompPerf => table { + + Act => table { + Per1 Sg => "" ; + Per1 Pl => "" ; + Per2 Sg Masc => "" ; + Per2 Sg Fem => "" ; + Per2 Pl _ => "" ; + Per3 Sg Masc => "" ; + Per3 Sg Fem => "" ; + Per3 Pl _=> "" }; + + Pas => table { Per1 Sg => "" ; + Per1 Pl => "" ; + Per2 Sg Masc => "" ; + Per2 Sg Fem => "" ; + Per2 Pl _ => "" ; + Per3 Sg Masc => "" ; + Per3 Sg Fem => "" ; + Per3 Pl _=> "" } + } ; + + + Cont => table { + + Act => table { + Per1 Sg => "" ; + Per1 Pl => "" ; + Per2 Sg Masc => "" ; + Per2 Sg Fem => "" ; + Per2 Pl _ => "" ; + Per3 Sg Masc => "" ; + Per3 Sg Fem => "" ; + Per3 Pl _=> ""}; + + Pas =>table { + Per1 Sg => "" ; + Per1 Pl => "" ; + Per2 Sg Masc => "" ; + Per2 Sg Fem => "" ; + Per2 Pl _ => "" ; + Per3 Sg Masc => "" ; + Per3 Sg Fem => "" ; + Per3 Pl _=> ""} +}; + + Imperf => table { + + Act => table { + Per1 Sg => "አለኝ" ; + Per1 Pl => "አለን"; + Per2 Sg Masc =>"አለህ"; + Per2 Sg Fem => "አለሽ"; + Per2 Pl _ => "አላችሁ"; + Per3 Sg Masc => "አለው"; + Per3 Sg Fem => "አላት"; + Per3 Pl _=> "አላቸው"}; + + Pas => table { + Per1 Sg => "" ; + Per1 Pl => "" ; + Per2 Sg Masc => "" ; + Per2 Sg Fem => "" ; + Per2 Pl _ => "" ; + Per3 Sg Masc => "" ; + Per3 Sg Fem => "" ; + Per3 Pl _=> ""}}; + + Jus_Imperat => table { + + Act => table { + Per1 Sg => "" ; + Per1 Pl => "" ; + Per2 Sg Masc => "" ; + Per2 Sg Fem => "" ; + Per2 Pl _ => "" ; + Per3 Sg Masc => "" ; + Per3 Sg Fem => "" ; + Per3 Pl _=> "" }; + Pas => table { + Per1 Sg => "" ; + Per1 Pl => "" ; + Per2 Sg Masc => "" ; + Per2 Sg Fem => "" ; + Per2 Pl _ => "" ; + Per3 Sg Masc => "" ; + Per3 Sg Fem => "" ; + Per3 Pl _=> ""} + } ; + + + Gerund => table { + + Act => table { + Per1 Sg => "" ; + Per1 Pl => "" ; + Per2 Sg Masc => "" ; + Per2 Sg Fem => "" ; + Per2 Pl _ => "" ; + Per3 Sg Masc => "" ; + Per3 Sg Fem => "" ; + Per3 Pl _=> ""}; + + Pas => table { + Per1 Sg => "" ; + Per1 Pl => "" ; + Per2 Sg Masc => "" ; + Per2 Sg Fem => "" ; + Per2 Pl _ => "" ; + Per3 Sg Masc => "" ; + Per3 Sg Fem => "" ; + Per3 Pl _=> ""} + } ; + + + Infinitive => table { + Act => table { + _ => "" }; + + Pas => table { _ => "" } + + + }; + Parti => table { + Act => table { + _ => "" }; + Pas => table { _ => "" } + + + } +} + +}; + + + + +} ; diff --git a/lib/src/amharic/PatternsAmh.gf b/lib/src/amharic/PatternsAmh.gf new file mode 100644 index 000000000..5cd9f6188 --- /dev/null +++ b/lib/src/amharic/PatternsAmh.gf @@ -0,0 +1,1389 @@ +resource PatternsAmh = { + +flags coding=utf8 ; + + oper + +{-WORK I - Inclusions of Newer forms : + +Sofar, the forms considered were SP,CI,JI,G and I but these forms wont suffice to generate all the required tensed together with the auxillaries. There for inclusion of the CP C and P is found mandatory :( + +Verb Forms + +Simple Perfect ለበሰ + Compound Perfect ለብሷል --- G+ + Contingent ይለብስ ------- CI - +Compound Imperfect ይለብሳል +Jussive Imperative ይልበስ +Gerund ለብሶ +Infinitive መልበስ + Participle ለባሽ --------------- NEW -} + +--Starting with type Tri-Radical Roots +--mkV3gdl Eg. +--Perf -- +C1aC2aC3ku = {C1 ="" ; C1C2="'"; C2C3 ="'"; C3="k&"}; +C1aC2aC3n = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3="n"}; +C1aC2aC3k = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3="k"}; +C1aC2aC3sh = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3="x"}; +C1aC2aC3achehu = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3="!ch&"}; +C1aC2aC3e = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3="'"}; +C1aC2aC3ech = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3="'c"}; +C1aC2aC3u = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3="&"}; + +---Cmpd Perf + +C1aC2C3iealehu = {C1 ="" ; C1C2="'"; C2C3 =""; C3="%y!l'h&"}; +C1aC2C3enal = { C1 = "" ; C1C2="'"; C2C3 =""; C3="'n!l"}; +C1aC2C3ekal = { C1 = "" ; C1C2="'"; C2C3 =""; C3="'k!l"}; +C1aC2C3eshal = { C1 = "" ; C1C2="'"; C2C3 =""; C3="'x!l"}; +C1aC2C3achehual = { C1 = "" ; C1C2="'"; C2C3 =""; C3="!cX7l"}; +C1aC2C3oal = { C1 = "" ; C1C2="'"; C2C3 =""; C3="7l"}; +C1aC2C3alech = { C1 = "" ; C1C2="'"; C2C3 =""; C3="!l'c"}; +C1aC2C3ewwal = { C1 = "" ; C1C2="'"; C2C3 =""; C3="'w!l"}; + + +--Imper --mkV3gdl +eC1aC2C3alehu = { C1 = "ä" ; C1C2="'"; C2C3 =""; C3="!l'h&"}; +enC1aC2C3alen = { C1 = "än" ; C1C2="'"; C2C3 =""; C3="!l'n"}; +teC1aC2C3yaleh = { C1 = "t" ; C1C2="'"; C2C3 =""; C3="!l'h"}; +teC1aC2C3aleh = { C1 = "t" ; C1C2="'"; C2C3 =""; C3="y!l'x"}; +teC1aC2C3alachehu = { C1 = "t" ; C1C2="'"; C2C3 =""; C3="!l!ch&"}; +yeC1aC2C3al = { C1 = "y" ; C1C2="'"; C2C3 =""; C3="!l"}; +teC1aC2C3alech = { C1 = "t" ; C1C2="'"; C2C3 =""; C3="!l'c"}; +yeC1aC2C3alu = { C1 = "y" ; C1C2="'"; C2C3 =""; C3="!l&"}; + + +--Contingent --mkV3gdl +eC1aC2C3 = { C1 = "ä" ; C1C2="'"; C2C3 =""; C3=""}; +enC1aC2C3e = { C1 = "än" ; C1C2="'"; C2C3 =""; C3=""}; +teC1aC2C3 = { C1 = "t" ; C1C2="'"; C2C3 =""; C3=""}; +--teC1aC2C3 = { C1 = "t" ; C1C2="'"; C2C3 =""; C3=""};-- 3 +teC1aC2C3u = { C1 = "t" ; C1C2="'"; C2C3 =""; C3="&"}; +yeC1aC2C3 = { C1 = "y" ; C1C2="'"; C2C3 =""; C3=""}; +--teC1aC2C3 = { C1 = "t" ; C1C2="'"; C2C3 =""; C3=""}; +yeC1aC2C3u = { C1 = "y" ; C1C2="'"; C2C3 =""; C3="&"}; + +-- + +--Jus_Imperat mkV3gdl +leC1C2aC3 = {C1 ="l" ; C1C2=""; C2C3 ="'"; C3=""}; +enC1C2aC3 = { C1 = "än" ; C1C2=""; C2C3 ="'"; C3=""}; +C1C2aC3 = { C1 = "" ; C1C2=""; C2C3 ="'"; C3=""}; +C1C2aC3i = { C1 = "" ; C1C2=""; C2C3 ="'"; C3="#"}; +C1C2aC3u = { C1 = "" ; C1C2=""; C2C3 ="'"; C3="&"}; +yC1C2aC3 = { C1 = "y" ; C1C2=""; C2C3 ="'"; C3=""}; +tC1C2aC3 = { C1 = "t" ; C1C2=""; C2C3 ="'"; C3=""}; +yC1C2aC3u = { C1 = "y" ; C1C2=""; C2C3 ="'"; C3="&"}; +--Gerund mkV3gdl +C1aC2C3ie = {C1 ="" ; C1C2="'"; C2C3 =""; C3="%"}; +C1aC2C3en = { C1 = "" ; C1C2="'"; C2C3 =""; C3="'n"}; +C1aC2C3ek = { C1 = "" ; C1C2="'"; C2C3 =""; C3="'k"}; +C1aC2C3esh = { C1 = "" ; C1C2="'"; C2C3 =""; C3="'x"}; +C1aC2C3achehu = { C1 = "" ; C1C2="'"; C2C3 =""; C3="!ch&"}; +C1aC2C3o = { C1 = "" ; C1C2="'"; C2C3 =""; C3="/"}; +C1aC2C3a = { C1 = "" ; C1C2="'"; C2C3 =""; C3="!"}; +C1aC2C3ew = { C1 = "" ; C1C2="'"; C2C3 =""; C3="'w"}; +--Infinitve mkV3gdl +meC1C2aC3 = {C1 ="m'" ; C1C2=""; C2C3 ="'"; C3=""}; + +--Participle mkV3gdl +C1eC2aC3 = {C1 ="" ; C1C2="'"; C2C3 ="!"; C3="#"}; + + --Passive perf mkV3gdl + + pteC1aC2aC3ku = {C1 ="t'" ; C1C2="'"; C2C3 ="'"; C3="k&"}; + pteC1aC2aC3n = { C1 = "t'" ; C1C2="'"; C2C3 ="'"; C3="n"}; + pteC1aC2aC3k = { C1 = "t'" ; C1C2="'"; C2C3 ="'"; C3="k"}; + pteC1aC2aC3sh = { C1 = "t'" ; C1C2="'"; C2C3 ="'"; C3="x"}; + pteC1aC2aC3achehu = { C1 = "t'" ; C1C2="'"; C2C3 ="'"; C3="!ch&"}; + pteC1aC2aC3e = { C1 = "t'" ; C1C2="'"; C2C3 ="'"; C3="'"}; + pteC1aC2aC3ech = { C1 = "t'" ; C1C2="'"; C2C3 ="'"; C3="'c"}; + pteC1aC2aC3u = { C1 = "t'" ; C1C2="'"; C2C3 ="'"; C3="&"}; + + --Passive Cmpd Perf + + pteC1aC2C3iealehu = {C1 ="t'" ; C1C2="'"; C2C3 =""; C3="%y!l'h&"}; + pteC1aC2C3enal = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="'n!l"}; + pteC1aC2C3ekal = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="'k!l"}; + pteC1aC2C3eshal = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="'x!l"}; + pteC1aC2C3achehual = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="!cX7l"}; + pteC1aC2C3oal = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="7l"}; + pteC1aC2C3alech = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="!l'c"}; + pteC1aC2C3ewwal = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="'w!l"}; + + --Passive Imper --mkV3gdl + + peC1aC2aC3alehu = { C1 = "ä" ; C1C2="'"; C2C3 ="'"; C3="!l'h&"}; + penC1aC2aC3alen = { C1 = "än" ; C1C2="'"; C2C3 ="'"; C3="!l'n"}; + pteC1aC2aC3yaleh = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3="!l'h"}; + pteC1aC2aC3aleh = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3="y!l'x"}; + pteC1aC2aC3alachehu = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3="!l!ch&"}; + pyeC1aC2aC3al = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3="!l"}; + pteC1aC2aC3alech = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3="!l'c"}; + pyeC1aC2aC3alu = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3="!l&"}; + + --Passive Contingent --mkV3gdl + + peC1aC2C3 = { C1 = "ä" ; C1C2="'"; C2C3 ="'"; C3=""}; + penC1aC2C3e = { C1 = "än" ; C1C2="'"; C2C3 ="'"; C3=""}; + pteC1aC2C3 = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3=""}; + pteC1aC2C3 = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3=""};-- 3 + pteC1aC2C3u = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3="&"}; + pyeC1aC2C3 = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3=""}; + pteC1aC2C3 = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3=""}; + pyeC1aC2C3u = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3="&"}; + + --Passive Jus_Imperat mkV3gdl + + pleC1C2aC3 = {C1 ="l" ; C1C2="'"; C2C3 ="'"; C3=""}; + penC1C2aC3 = { C1 = "än" ; C1C2="'"; C2C3 ="'"; C3=""}; + pC1C2aC3 = { C1 = "t'" ; C1C2="'"; C2C3 ="'"; C3=""}; + pC1C2aC3i = { C1 = "t'" ; C1C2="'"; C2C3 ="'"; C3="#"}; + pC1C2aC3u = { C1 = "t'" ; C1C2="'"; C2C3 ="'"; C3="&"}; + pyC1C2aC3 = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3=""}; + ptC1C2aC3 = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3=""}; + pyC1C2aC3u = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3="&"}; + + --Passive Gerund mkV3gdl + + ptC1aC2C3ie = {C1 ="t'" ; C1C2="'"; C2C3 =""; C3="%"}; + ptC1aC2C3en = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="'n"}; + ptC1aC2C3ek = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="'k"}; + ptC1aC2C3esh = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="'x"}; + ptC1aC2C3achehu = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="!ch&"}; + ptC1aC2C3o = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="/"}; + ptC1aC2C3a = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="!"}; + ptC1aC2C3ew = { C1 = "t'" ; C1C2="'"; C2C3 =""; C3="'w"}; + + --Passive Infinitve mkV3gdl + + pmeC1C2aC3 = {C1 ="m'" ; C1C2="'"; C2C3 ="'"; C3=""}; + + --Passive Participle perf mkV3gdl + + pteC1eC2aC3 = {C1 ="t'" ; C1C2="'"; C2C3 ="!"; C3="#"}; + + +--mkV3mls Eg. mls,flg, Tbq, zmr +----Jus_Imperat mkV3mls +leC1aC2C3 = {C1 ="l" ; C1C2="'"; C2C3 =""; C3=""}; +enC1aC2C3 = { C1 = "(n" ; C1C2="'"; C2C3 =""; C3=""}; +C1aC2C3 = { C1 = "" ; C1C2="'"; C2C3 =""; C3=""}; +C1aC2C3i = { C1 = "" ; C1C2="'"; C2C3 =""; C3="#"}; +C1aC2C3u = { C1 = "" ; C1C2="'"; C2C3 =""; C3="&"}; +yC1aC2C3 = { C1 = "y" ; C1C2="'"; C2C3 =""; C3=""}; +tC1aC2C3 = { C1 = "t" ; C1C2="'"; C2C3 =""; C3=""}; +yC1aC2C3u = { C1 = "y" ; C1C2="'"; C2C3 =""; C3="&"}; +--Infinitve mkV3mls +meC1aC2aC3 = {C1 ="m'" ; C1C2="'"; C2C3 ="'"; C3=""}; +---mkV3brk +--Perf -- mkV3brk +C1AC2aC3ku = {C1 ="" ; C1C2="!"; C2C3 ="'"; C3="k&"}; +C1AC2aC3n = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3="n"}; +C1AC2aC3k = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3="k"}; +C1AC2aC3sh = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3="x"}; +C1AC2aC3achehu = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3="!ch&"}; +C1AC2aC3e = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3="'"}; +C1AC2aC3ech = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3="'c"}; +C1AC2aC3u = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3="&"}; +--Imper -- mkV3brk +eC1AC2C3alehu = { C1 = "ä" ; C1C2="!"; C2C3 =""; C3="!l'h&"}; +enC1AC2C3alen = { C1 = "än" ; C1C2="!"; C2C3 =""; C3="!l'n"}; +teC1AC2C3yaleh = { C1 = "t" ; C1C2="!"; C2C3 =""; C3="!l'h"}; +teC1AC2C3aleh = { C1 = "t" ; C1C2="!"; C2C3 =""; C3="y!l'x"}; +teC1AC2C3alachehu = { C1 = "t" ; C1C2="!"; C2C3 =""; C3="!l!ch&"}; +yeC1AC2C3al = { C1 = "y" ; C1C2="!"; C2C3 =""; C3="!l"}; +teC1AC2C3alech = { C1 = "t" ; C1C2="!"; C2C3 =""; C3="!l'c"}; +yeC1AC2C3alu = { C1 = "y" ; C1C2="!"; C2C3 =""; C3="!l&"}; + +--Cont -- mkV3brk +eC1AC2C3 = { C1 = "ä" ; C1C2="!"; C2C3 =""; C3=""}; +enC1AC2C3e = { C1 = "än" ; C1C2="!"; C2C3 =""; C3=""}; +teC1AC2C3 = { C1 = "t" ; C1C2="!"; C2C3 =""; C3=""}; +--teC1AC2C3 = { C1 = "t" ; C1C2="!"; C2C3 =""; C3="y!l'x"}; +teC1AC2C3u = { C1 = "t" ; C1C2="!"; C2C3 =""; C3="&"}; +yeC1AC2C3 = { C1 = "y" ; C1C2="!"; C2C3 =""; C3=""}; +--teC1AC2C3 = { C1 = "t" ; C1C2="!"; C2C3 =""; C3="!l'c"}; +yeC1AC2C3u = { C1 = "y" ; C1C2="!"; C2C3 =""; C3="&"}; + +--Jus_Imperat mkV3brk +leC1AC2C3 = {C1 ="l" ; C1C2="!"; C2C3 =""; C3=""}; +enC1AC2C3 = { C1 = "(n" ; C1C2="!"; C2C3 =""; C3=""}; +C1AC2C3 = { C1 = "" ; C1C2="!"; C2C3 =""; C3=""}; +C1AC2C3i = { C1 = "" ; C1C2="!"; C2C3 =""; C3="#"}; +C1AC2C3u = { C1 = "" ; C1C2="!"; C2C3 =""; C3="&"}; +yC1AC2C3 = { C1 = "y" ; C1C2="!"; C2C3 =""; C3=""}; +tC1AC2C3 = { C1 = "t" ; C1C2="!"; C2C3 =""; C3=""}; +yC1AC2C3u = { C1 = "y" ; C1C2="!"; C2C3 =""; C3="&"}; + + + +--Gerund mkV3brk +C1AC2C3ie = {C1 ="" ; C1C2="!"; C2C3 =""; C3="%"}; +C1AC2C3en = { C1 = "" ; C1C2="!"; C2C3 =""; C3="'n"}; +C1AC2C3ek = { C1 = "" ; C1C2="!"; C2C3 =""; C3="'k"}; +C1AC2C3esh = { C1 = "" ; C1C2="!"; C2C3 =""; C3="'x"}; +C1AC2C3achehu = { C1 = "" ; C1C2="!"; C2C3 =""; C3="!ch&"}; +C1AC2C3o = { C1 = "" ; C1C2="!"; C2C3 =""; C3="/"}; +C1AC2C3a = { C1 = "" ; C1C2="!"; C2C3 =""; C3="!"}; +C1AC2C3ew = { C1 = "" ; C1C2="!"; C2C3 =""; C3="'w"}; + +--CompPer mkV3brk %y!l'h& 'n!l 'k!l 'x!l !cX7l 7l !l'c 'w!l +C1AC2C3iealehu = {C1 ="" ; C1C2="!"; C2C3 =""; C3="%y!l'h&"}; +C1AC2C3enal = { C1 = "" ; C1C2="!"; C2C3 =""; C3="'n!l"}; +C1AC2C3ekal = { C1 = "" ; C1C2="!"; C2C3 =""; C3="'k!l"}; +C1AC2C3eshal = { C1 = "" ; C1C2="!"; C2C3 =""; C3="'x!l"}; +C1AC2C3achehual = { C1 = "" ; C1C2="!"; C2C3 =""; C3="!cX7l"}; +C1AC2C3oal = { C1 = "" ; C1C2="!"; C2C3 =""; C3="7l"}; +C1AC2C3alech = { C1 = "" ; C1C2="!"; C2C3 =""; C3="!l'c"}; +C1AC2C3ewwal = { C1 = "" ; C1C2="!"; C2C3 =""; C3="'w!l"}; + + +--Infinitive mkV3brk +meC1AC2aC3 = {C1 ="m'" ; C1C2="!"; C2C3 ="'"; C3=""}; + +--Participle mkV3brk +C1aC2aC3i = {C1 ="" ; C1C2="!"; C2C3 ="!"; C3="#"}; + + ---mkV3brk + --Perf -- mkV3brk + pC1AC2aC3ku = {C1 ="t'" ; C1C2="!"; C2C3 ="'"; C3="k&"}; + pC1AC2aC3n = { C1 = "t'" ; C1C2="!"; C2C3 ="'"; C3="n"}; + pC1AC2aC3k = { C1 = "t'" ; C1C2="!"; C2C3 ="'"; C3="k"}; + pC1AC2aC3sh = { C1 = "t'" ; C1C2="!"; C2C3 ="'"; C3="x"}; + pC1AC2aC3achehu = { C1 = "t'" ; C1C2="!"; C2C3 ="'"; C3="!ch&"}; + pC1AC2aC3e = { C1 = "t'" ; C1C2="!"; C2C3 ="'"; C3="'"}; + pC1AC2aC3ech = { C1 = "t'" ; C1C2="!"; C2C3 ="'"; C3="'c"}; + pC1AC2aC3u = { C1 = "t'" ; C1C2="!"; C2C3 ="'"; C3="&"}; + --Imper -- mkV3brk + peC1AC2C3alehu = { C1 = "ä" ; C1C2="!"; C2C3 ="'"; C3="!l'h&"}; + penC1AC2C3alen = { C1 = "än" ; C1C2="!"; C2C3 ="'"; C3="!l'n"}; + pteC1AC2C3yaleh = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="!l'h"}; + pteC1AC2C3aleh = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="y!l'x"}; + pteC1AC2C3alachehu = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="!l!ch&"}; + pyeC1AC2C3al = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3="!l"}; + pteC1AC2C3alech = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="!l'c"}; + pyeC1AC2C3alu = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3="!l&"}; + + --Cont -- mkV3brk + peC1AC2C3 = { C1 = "ä" ; C1C2="!"; C2C3 ="'"; C3=""}; + penC1AC2C3e = { C1 = "än" ; C1C2="!"; C2C3 ="'"; C3=""}; + pteC1AC2C3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3=""}; + --pteC1AC2C3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="y!l'x"}; + pteC1AC2C3u = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="&"}; + pyeC1AC2C3 = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3=""}; + --pteC1AC2C3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="!l'c"}; + pyeC1AC2C3u = { C1 = "y" ; C1C2="!"; C2C3 =""; C3="&"}; + + --Jus_Imperat mkV3brk + pleC1AC2C3 = {C1 ="l" ; C1C2="!"; C2C3 ="'"; C3=""}; + penC1AC2C3 = { C1 = "(n" ; C1C2="!"; C2C3 ="'"; C3=""}; + pC1AC2C3 = { C1 = "t'" ; C1C2="!"; C2C3 ="'"; C3=""}; + pC1AC2C3i = { C1 = "t'" ; C1C2="!"; C2C3 ="'"; C3="#"}; + pC1AC2C3u = { C1 = "t'" ; C1C2="!"; C2C3 ="'"; C3="&"}; + pyC1AC2C3 = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3=""}; + ptC1AC2C3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3=""}; + pyC1AC2C3u = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3="&"}; + + + + --Gerund mkV3brk + pC1AC2C3ie = {C1 ="t'" ; C1C2="!"; C2C3 =""; C3="%"}; + pC1AC2C3en = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="'n"}; + pC1AC2C3ek = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="'k"}; + pC1AC2C3esh = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="'x"}; + pC1AC2C3achehu = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="!ch&"}; + pC1AC2C3o = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="/"}; + pC1AC2C3a = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="!"}; + pC1AC2C3ew = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="'w"}; + + --CompPer mkV3brk %y!l'h& 'n!l 'k!l 'x!l !cX7l 7l !l'c 'w!l + pC1AC2C3iealehu = {C1 ="t'" ; C1C2="!"; C2C3 =""; C3="%y!l'h&"}; + pC1AC2C3enal = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="'n!l"}; + pC1AC2C3ekal = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="'k!l"}; + pC1AC2C3eshal = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="'x!l"}; + pC1AC2C3achehual = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="!cX7l"}; + pC1AC2C3oal = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="7l"}; + pC1AC2C3alech = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="!l'c"}; + pC1AC2C3ewwal = { C1 = "t'" ; C1C2="!"; C2C3 =""; C3="'w!l"}; + + + --Infinitive mkV3brk + pmeC1AC2aC3 = {C1 ="m'" ; C1C2="!"; C2C3 ="'"; C3=""}; + + --Participle mkV3brk + pC1aC2aC3i = {C1 ="t'" ; C1C2="!"; C2C3 ="!"; C3="#"}; + + +-- taTebe +---mkV3tTb +--Imper -- mkV3tTb +eC1AC2aC3alehu = { C1 = "ä" ; C1C2="!"; C2C3 ="'"; C3="!l'h&"}; +enC1AC2aC3alen = { C1 = "än" ; C1C2="!"; C2C3 ="'"; C3="!l'n"}; +teC1AC2aC3yaleh = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="!l'h"}; +teC1AC2aC3aleh = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="y!l'x"}; +teC1AC2aC3alachehu = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="!l!ch&"}; +yeC1AC2aC3al = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3="!l"}; +teC1AC2aC3alech = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="!l'c"}; +yeC1AC2aC3alu = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3="!l&"}; + +--Cont -- mkV3tTb +eC1AC2aC3 = { C1 = "ä" ; C1C2="!"; C2C3 ="'"; C3=""}; +enC1AC2aC3e = { C1 = "än" ; C1C2="!"; C2C3 ="'"; C3=""}; +teC1AC2aC3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3=""}; +--teC1AC2aC3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3=""}; +teC1AC2aC3u = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="&"}; +yeC1AC2aC3 = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3=""}; +--teC1AC2aC3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3=""}; +yeC1AC2aC3u = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3="&"}; + +--Jus_Imperat mkV3tTb +leC1AC2aC3 = {C1 ="l" ; C1C2="!"; C2C3 ="'"; C3=""}; +enC1AC2aC3 = { C1 = "(n" ; C1C2="!"; C2C3 ="'"; C3=""}; +C1AC2aC3 = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3=""}; +C1AC2aC3i = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3="#"}; +C1AC2aC3u = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3="&"}; +yC1AC2aC3 = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3=""}; +tC1AC2aC3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3=""}; +yC1AC2aC3u = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3="&"}; + + + -- taTebe + ---mkV3tTb + --Imper -- mkV3tTb + peC1AC2aC3alehu = { C1 = "ä" ; C1C2="!"; C2C3 ="'"; C3="!l'h&"}; + penC1AC2aC3alen = { C1 = "än" ; C1C2="!"; C2C3 ="'"; C3="!l'n"}; + pteC1AC2aC3yaleh = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="!l'h"}; + pteC1AC2aC3aleh = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="y!l'x"}; + pteC1AC2aC3alachehu = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="!l!ch&"}; + pyeC1AC2aC3al = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3="!l"}; + pteC1AC2aC3alech = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="!l'c"}; + pyeC1AC2aC3alu = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3="!l&"}; + + --Cont -- mkV3tTb + peC1AC2aC3 = { C1 = "ä" ; C1C2="!"; C2C3 ="'"; C3=""}; + penC1AC2aC3e = { C1 = "än" ; C1C2="!"; C2C3 ="'"; C3=""}; + pteC1AC2aC3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3=""}; + --teC1AC2aC3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3=""}; + pteC1AC2aC3u = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3="&"}; + pyeC1AC2aC3 = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3=""}; + --teC1AC2aC3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3=""}; + pyeC1AC2aC3u = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3="&"}; + + --Jus_Imperat mkV3tTb + pleC1AC2aC3 = {C1 ="l" ; C1C2="!"; C2C3 ="'"; C3=""}; + penC1AC2aC3 = { C1 = "(n" ; C1C2="!"; C2C3 ="'"; C3=""}; + pC1AC2aC3 = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3=""}; + pC1AC2aC3i = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3="#"}; + -- pC1AC2aC3u = { C1 = "" ; C1C2="!"; C2C3 ="'"; C3="&"}; + pyC1AC2aC3 = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3=""}; + ptC1AC2aC3 = { C1 = "t" ; C1C2="!"; C2C3 ="'"; C3=""}; + pyC1AC2aC3u = { C1 = "y" ; C1C2="!"; C2C3 ="'"; C3="&"}; + + +--mkV3qTr Eg. +--Perf -- +C1oC2eC3ku = {C1 ="" ; C1C2="/"; C2C3 ="'"; C3="k&"}; +C1oC2eC3n = { C1 = "" ; C1C2="/"; C2C3 ="'"; C3="n"}; +C1oC2eC3k = { C1 = "" ; C1C2="/"; C2C3 ="'"; C3="k"}; +C1oC2eC3sh = { C1 = "" ; C1C2="/"; C2C3 ="'"; C3="x"}; +C1oC2eC3achehu = { C1 = "" ; C1C2="/"; C2C3 ="'"; C3="!ch&"}; +C1oC2eC3e = { C1 = "" ; C1C2="/"; C2C3 ="'"; C3="'"}; +C1oC2eC3ech = { C1 = "" ; C1C2="/"; C2C3 ="'"; C3="'c"}; +C1oC2eC3u = { C1 = "" ; C1C2="/"; C2C3 ="'"; C3="&"}; +--Imper --mkV3qTr +eC1oC2C3alehu = { C1 = "ä" ; C1C2="/"; C2C3 =""; C3="!l'h&"}; +enC1oC2C3alen = { C1 = "än" ; C1C2="/"; C2C3 =""; C3="!l'n"}; +teC1oC2C3aleh = { C1 = "t" ; C1C2="/"; C2C3 =""; C3="!l'h"}; +teC1oC2C3yalesh = { C1 = "t" ; C1C2="/"; C2C3 =""; C3="y!l'x"}; +teC1oC2C3alachehu = { C1 = "t" ; C1C2="/"; C2C3 =""; C3="!l!ch&"}; +yeC1oC2C3al = { C1 = "y" ; C1C2="/"; C2C3 =""; C3="!l"}; +teC1oC2C3alech = { C1 = "t" ; C1C2="/"; C2C3 =""; C3="!l'c"}; +yeC1oC2C3alu = { C1 = "y" ; C1C2="/"; C2C3 =""; C3="!l&"}; + +--Cont mkV3qTr +eC1oC2C3 = { C1 = "ä" ; C1C2="/"; C2C3 =""; C3=""}; +enC1oC2C3e = { C1 = "än" ; C1C2="/"; C2C3 =""; C3=""}; +teC1oC2C3 = { C1 = "t" ; C1C2="/"; C2C3 =""; C3=""}; +--teC1oC2C3 = { C1 = "t" ; C1C2="%"; C2C3 =""; C3=""}; +teC1oC2C3u = { C1 = "t" ; C1C2="/"; C2C3 =""; C3="&"}; +yeC1oC2C3 = { C1 = "y" ; C1C2="/"; C2C3 =""; C3=""}; +--teC1oC2C3 = { C1 = "t" ; C1C2="%"; C2C3 =""; C3=""}; +yeC1oC2C3u = { C1 = "y" ; C1C2="/"; C2C3 =""; C3="&"}; + +--Jus_Imperat mkV3qTr +leC1uC2eC3 = {C1 ="l" ; C1C2="&"; C2C3 ="'"; C3=""}; +enC1uC2eC3 = { C1 = "än" ; C1C2="&"; C2C3 ="'"; C3=""}; +C1uC2eC3 = { C1 = "" ; C1C2="&"; C2C3 ="'"; C3=""}; +C1uC2eC3i = { C1 = "" ; C1C2="&"; C2C3 ="'"; C3="#"}; +C1uC2eC3u = { C1 = "" ; C1C2="&"; C2C3 ="'"; C3="&"}; +yC1uC2eC3 = { C1 = "y" ; C1C2="&"; C2C3 ="'"; C3=""}; +tC1uC2eC3 = { C1 = "t" ; C1C2="&"; C2C3 ="'"; C3=""}; +yC1uC2eC3u = { C1 = "y" ; C1C2="&"; C2C3 ="'"; C3="&"}; + +--CompPerf mkV3qTr %y!l'h& 'n!l 'k!l 'x!l !cX7l 7l !l'c 'w!l +C1oC2C3iealehu = {C1 ="" ; C1C2="/"; C2C3 =""; C3="%y!l'h&"}; +C1oC2C3enal = { C1 = "" ; C1C2="/"; C2C3 =""; C3="'n!l"}; +C1oC2C3ekal = { C1 = "" ; C1C2="/"; C2C3 =""; C3="'k!l"}; +C1oC2C3eshal = { C1 = "" ; C1C2="/"; C2C3 =""; C3="'x!l"}; +C1oC2C3achehual = { C1 = "" ; C1C2="/"; C2C3 =""; C3="!cX7l"}; +C1oC2C3oal = { C1 = "" ; C1C2="/"; C2C3 =""; C3="7l"}; +C1oC2C3alech = {C1 = "" ; C1C2="/"; C2C3 =""; C3="!l'c"}; +C1oC2C3ewwal = { C1 = "" ; C1C2="/"; C2C3 =""; C3="'w!l"}; + + + +--Gerund mkV3qTr +C1oC2C3ie = {C1 ="" ; C1C2="/"; C2C3 =""; C3="%"}; +C1oC2C3en = { C1 = "" ; C1C2="/"; C2C3 =""; C3="'n"}; +C1oC2C3ek = { C1 = "" ; C1C2="/"; C2C3 =""; C3="'k"}; +C1oC2C3esh = { C1 = "" ; C1C2="/"; C2C3 =""; C3="'x"}; +C1oC2C3achehu = { C1 = "" ; C1C2="/"; C2C3 =""; C3="!ch&"}; +C1oC2C3o = { C1 = "" ; C1C2="/"; C2C3 =""; C3="/"}; +C1oC2C3a = { C1 = "" ; C1C2="/"; C2C3 =""; C3="!"}; +C1oC2C3ew = { C1 = "" ; C1C2="/"; C2C3 =""; C3="'w"}; +--Infinitve mkV3qTr +meC1uC2eC3 = {C1 ="m'" ; C1C2="&"; C2C3 ="'"; C3=""}; + +--Infinitve mkV3qTr +C1oC2aC3i = {C1 ="" ; C1C2="/"; C2C3 ="!"; C3="#"}; + + --mkV3qTr Eg. + --Perf -- + pC1oC2eC3ku = {C1 ="t'" ; C1C2="/"; C2C3 ="'"; C3="k&"}; + pC1oC2eC3n = { C1 = "t'" ; C1C2="/"; C2C3 ="'"; C3="n"}; + pC1oC2eC3k = { C1 = "t'" ; C1C2="/"; C2C3 ="'"; C3="k"}; + pC1oC2eC3sh = { C1 = "t'" ; C1C2="/"; C2C3 ="'"; C3="x"}; + pC1oC2eC3achehu = { C1 = "t'" ; C1C2="/"; C2C3 ="'"; C3="!ch&"}; + pC1oC2eC3e = { C1 = "t'" ; C1C2="/"; C2C3 ="'"; C3="'"}; + pC1oC2eC3ech = { C1 = "t'" ; C1C2="/"; C2C3 ="'"; C3="'c"}; + pC1oC2eC3u = { C1 = "t'" ; C1C2="/"; C2C3 ="'"; C3="&"}; + --Imper --mkV3qTr + peC1oC2C3alehu = { C1 = "ä" ; C1C2="/"; C2C3 ="'"; C3="!l'h&"}; + penC1oC2C3alen = { C1 = "än" ; C1C2="/"; C2C3 ="'"; C3="!l'n"}; + pteC1oC2C3aleh = { C1 = "t" ; C1C2="/"; C2C3 ="'"; C3="!l'h"}; + pteC1oC2C3yalesh = { C1 = "t" ; C1C2="/"; C2C3 ="'"; C3="y!l'x"}; + pteC1oC2C3alachehu = { C1 = "t" ; C1C2="/"; C2C3 ="'"; C3="!l!ch&"}; + pyeC1oC2C3al = { C1 = "y" ; C1C2="/"; C2C3 ="'"; C3="!l"}; + pteC1oC2C3alech = { C1 = "t" ; C1C2="/"; C2C3 ="'"; C3="!l'c"}; + pyeC1oC2C3alu = { C1 = "y" ; C1C2="/"; C2C3 ="'"; C3="!l&"}; + + --Cont mkV3qTr + peC1oC2C3 = { C1 = "ä" ; C1C2="/"; C2C3 ="'"; C3=""}; + penC1oC2C3e = { C1 = "än" ; C1C2="/"; C2C3 ="'"; C3=""}; + pteC1oC2C3 = { C1 = "t" ; C1C2="/"; C2C3 ="'"; C3=""}; + --pteC1oC2C3 = { C1 = "t" ; C1C2="%"; C2C3 =""; C3=""}; + pteC1oC2C3u = { C1 = "t" ; C1C2="/"; C2C3 ="'"; C3="&"}; + pyeC1oC2C3 = { C1 = "y" ; C1C2="/"; C2C3 ="'"; C3=""}; + --pteC1oC2C3 = { C1 = "t" ; C1C2="%"; C2C3 =""; C3=""}; + pyeC1oC2C3u = { C1 = "y" ; C1C2="/"; C2C3 ="'"; C3="&"}; + + --Jus_Imperat mkV3qTr + pleC1uC2eC3 = {C1 ="l" ; C1C2="/"; C2C3 ="'"; C3=""}; + penC1uC2eC3 = { C1 = "än" ; C1C2="/"; C2C3 ="'"; C3=""}; + pC1uC2eC3 = { C1 = "t'" ; C1C2="/"; C2C3 ="'"; C3=""}; + pC1uC2eC3i = { C1 = "t'" ; C1C2="/"; C2C3 ="'"; C3="#"}; + pC1uC2eC3u = { C1 = "t'" ; C1C2="/"; C2C3 ="'"; C3="&"}; + pyC1uC2eC3 = { C1 = "y" ; C1C2="/"; C2C3 ="'"; C3=""}; + ptC1uC2eC3 = { C1 = "t" ; C1C2="/"; C2C3 ="'"; C3=""}; + pyC1uC2eC3u = { C1 = "y" ; C1C2="/"; C2C3 ="'"; C3="&"}; + + --CompPerf mkV3qTr %y!l'h& 'n!l 'k!l 'x!l !cX7l 7l !l'c 'w!l + pC1oC2C3iealehu = {C1 ="t'" ; C1C2="/"; C2C3 =""; C3="%y!l'h&"}; + pC1oC2C3enal = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="'n!l"}; + pC1oC2C3ekal = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="'k!l"}; + pC1oC2C3eshal = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="'x!l"}; + pC1oC2C3achehual = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="!cX7l"}; + pC1oC2C3oal = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="7l"}; + pC1oC2C3alech = {C1 = "t'" ; C1C2="/"; C2C3 =""; C3="!l'c"}; + pC1oC2C3ewwal = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="'w!l"}; + + + + --Gerund mkV3qTr + pC1oC2C3ie = {C1 ="t'" ; C1C2="/"; C2C3 =""; C3="%"}; + pC1oC2C3en = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="'n"}; + pC1oC2C3ek = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="'k"}; + pC1oC2C3esh = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="'x"}; + pC1oC2C3achehu = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="!ch&"}; + pC1oC2C3o = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="/"}; + pC1oC2C3a = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="!"}; + pC1oC2C3ew = { C1 = "t'" ; C1C2="/"; C2C3 =""; C3="'w"}; + --Infinitve mkV3qTr + pmeC1uC2eC3 = {C1 ="m'" ; C1C2="/"; C2C3 ="'"; C3=""}; + + --Infinitve mkV3qTr + pC1oC2aC3i = {C1 ="t'" ; C1C2="/"; C2C3 ="!"; C3="#"}; + + + + + + + + +-- Duo Radicals +--mkV2bl -- bl -- eat +--Perf -- +C1aC2hu = {C1 ="" ; C1C2="'"; C2 ="!h&"}; +C1aC2n = { C1 = "" ; C1C2="'"; C2 ="!n"}; +C1aC2k = { C1 = "" ; C1C2="'"; C2 ="!k"}; +C1aC2sh = { C1 = "" ; C1C2="'"; C2 ="!x"}; +C1aC2achehu = { C1 = "" ; C1C2 ="'"; C2 ="!ch&"}; +C1aC2a = { C1 = "" ; C1C2="'"; C2 ="!"}; +C1aC2ach = { C1 = "" ; C1C2="'"; C2 ="!c"}; +C1aC2u = { C1 = "" ; C1C2="'"; C2 ="&"}; +-- Imper -- mkV2bl +eC1eC2alehu = { C1 = "ä" ; C1C2="'"; C2 ="!l'h&"}; +enC1eC2alen = { C1 = "än" ; C1C2="'"; C2 ="!l'n"}; +teC1eC2yaleh = { C1 = "t" ; C1C2="'"; C2 ="!l'h"}; +teC1eC2aleh = { C1 = "t" ; C1C2="'"; C2 ="y!l'x"}; +teC1eC2alachehu = { C1 = "t" ; C1C2="'"; C2 ="!l!ch&"}; +yeC1eC2al = { C1 = "y" ; C1C2="'"; C2 ="!l"}; +teC1eC2alech = { C1 = "t" ; C1C2="'"; C2 ="!l'c"}; +yeC1eC2alu = { C1 = "y" ; C1C2="'"; C2 ="!l&"}; + +-- Imper -- mkV2bl +eC1eC2a = { C1 = "ä" ; C1C2="'"; C2 ="!"}; +enC1eC2a = { C1 = "än" ; C1C2="'"; C2 ="!"}; +teC1eC2a = { C1 = "t" ; C1C2="'"; C2 ="!"}; +teC1eC2i = { C1 = "t" ; C1C2="'"; C2 ="#"}; +teC1eC2u = { C1 = "t" ; C1C2="'"; C2 ="&"}; +yeC1eC2a = { C1 = "y" ; C1C2="'"; C2 ="!"}; +--teC1eC2a = { C1 = "t" ; C1C2="'"; C2 ="!"}; +yeC1eC2u = { C1 = "y" ; C1C2="'"; C2 ="&"}; + +--Jus_Imperat mkV2bl +leC1C2a = {C1 ="l" ; C1C2=""; C2 ="!"}; +enC1C2a = { C1 = "än" ; C1C2=""; C2 ="!"}; +C1C2a = { C1 = "" ; C1C2=""; C2 ="!"}; +C1C2i = { C1 = "" ; C1C2=""; C2 ="#"}; +C1C2u = { C1 = "" ; C1C2=""; C2 ="&"}; +yC1C2a = { C1 = "y" ; C1C2=""; C2 ="!"}; +tC1C2a = { C1 = "t" ; C1C2=""; C2 ="!"}; +yC1C2u = { C1 = "y" ; C1C2=""; C2 ="&"}; +--Gerund mkV2bl +C1eC2cie = {C1 ="" ; C1C2="'"; C2 ="c%"}; +C1eC2ten = { C1 = "" ; C1C2="'"; C2 ="t'n"}; +C1eC2tek = { C1 = "" ; C1C2="'"; C2 ="t'k"}; +C1eC2tesh = { C1 = "" ; C1C2="'"; C2 ="t'x"}; +C1eC2tachehu = { C1 = "" ; C1C2="'"; C2 ="t!ch&"}; +C1eC2to = { C1 = "" ; C1C2="'"; C2 ="t/"}; +C1eC2ta = { C1 = "" ; C1C2="'"; C2="t!"}; +C1eC2tew = { C1 = "" ; C1C2="'"; C2="t'w"}; + +--CompPerf mkV2bl y!l'h& !l !l !l cX7l 7l l'c !l +C1eC2ciealehu = {C1 ="" ; C1C2="'"; C2 ="c%y!l'h&"}; +C1eC2tenal = { C1 = "" ; C1C2="'"; C2 ="t'n!l"}; +C1eC2tekal = { C1 = "" ; C1C2="'"; C2 ="t'k!l"}; +C1eC2teshal = { C1 = "" ; C1C2="'"; C2 ="t'x!l"}; +C1eC2tachehual = { C1 = "" ; C1C2="'"; C2 ="t!cX7l"}; +C1eC2toal = { C1 = "" ; C1C2="'"; C2 ="t7l"}; +C1eC2talech = { C1 = "" ; C1C2="'"; C2="t!l'c"}; +C1eC2tewal = { C1 = "" ; C1C2="'"; C2="t'w!l"}; + +--Infinitve mkV2bl +meC1C2at= {C1 ="m'" ; C1C2=""; C2 ="!t"}; + +--Infinitve mkV2bl +C1eC2= {C1 ="" ; C1C2="'"; C2 ="#"}; + + + pC1aC2hu = {C1 ="t'" ; C1C2="'"; C2 ="!h&"}; + pC1aC2n = { C1 = "t'" ; C1C2="'"; C2 ="!n"}; + pC1aC2k = { C1 = "t'" ; C1C2="'"; C2 ="!k"}; + pC1aC2sh = { C1 = "t'" ; C1C2="'"; C2 ="!x"}; + pC1aC2achehu = { C1 = "t'" ; C1C2 ="'"; C2 ="!ch&"}; + pC1aC2a = { C1 = "t'" ; C1C2="'"; C2 ="!"}; + pC1aC2ach = { C1 = "t'" ; C1C2="'"; C2 ="!c"}; + pC1aC2u = { C1 = "t'" ; C1C2="'"; C2 ="&"}; + -- Imper -- mkV2bl + peC1eC2alehu = { C1 = "ä" ; C1C2="'"; C2 ="!l'h&"}; + penC1eC2alen = { C1 = "än" ; C1C2="'"; C2 ="!l'n"}; + pteC1eC2yaleh = { C1 = "t" ; C1C2="'"; C2 ="!l'h"}; + pteC1eC2aleh = { C1 = "t" ; C1C2="'"; C2 ="y!l'x"}; + pteC1eC2alachehu = { C1 = "t" ; C1C2="'"; C2 ="!l!ch&"}; + pyeC1eC2al = { C1 = "y" ; C1C2="'"; C2 ="!l"}; + pteC1eC2alech = { C1 = "t" ; C1C2="'"; C2 ="!l'c"}; + pyeC1eC2alu = { C1 = "y" ; C1C2="'"; C2 ="!l&"}; + + -- Imper -- mkV2bl + peC1eC2a = { C1 = "ä" ; C1C2="'"; C2 ="!"}; + penC1eC2a = { C1 = "än" ; C1C2="'"; C2 ="!"}; + pteC1eC2a = { C1 = "t" ; C1C2="'"; C2 ="!"}; + pteC1eC2i = { C1 = "t" ; C1C2="'"; C2 ="#"}; + pteC1eC2u = { C1 = "t" ; C1C2="'"; C2 ="&"}; + pyeC1eC2a = { C1 = "y" ; C1C2="'"; C2 ="!"}; + --teC1eC2a = { C1 = "t" ; C1C2="'"; C2 ="!"}; + pyeC1eC2u = { C1 = "y" ; C1C2="'"; C2 ="&"}; + + --Jus_Imperat mkV2bl + pleC1C2a = {C1 ="l" ; C1C2="'"; C2 ="!"}; + penC1C2a = { C1 = "än" ; C1C2="'"; C2 ="!"}; + pC1C2a = { C1 = "t'" ; C1C2="'"; C2 ="!"}; + pC1C2i = { C1 = "t'" ; C1C2="'"; C2 ="#"}; + pC1C2u = { C1 = "t'" ; C1C2="'"; C2 ="&"}; + pyC1C2a = { C1 = "y" ; C1C2="'"; C2 ="!"}; + ptC1C2a = { C1 = "t" ; C1C2="'"; C2 ="!"}; + pyC1C2u = { C1 = "y" ; C1C2="'"; C2 ="&"}; + --Gerund mkV2bl + pC1eC2cie = {C1 ="t'" ; C1C2="'"; C2 ="c%"}; + pC1eC2ten = { C1 = "t'" ; C1C2="'"; C2 ="t'n"}; + pC1eC2tek = { C1 = "t'" ; C1C2="'"; C2 ="t'k"}; + pC1eC2tesh = { C1 = "t'" ; C1C2="'"; C2 ="t'x"}; + pC1eC2tachehu = { C1 = "t'" ; C1C2="'"; C2 ="t!ch&"}; + pC1eC2to = { C1 = "t'" ; C1C2="'"; C2 ="t/"}; + pC1eC2ta = { C1 = "t'" ; C1C2="'"; C2="t!"}; + pC1eC2tew = { C1 = "t'" ; C1C2="'"; C2="t'w"}; + + --CompPerf mkV2bl y!l'h& !l !l !l cX7l 7l l'c !l + pC1eC2ciealehu = {C1 ="t'" ; C1C2="'"; C2 ="c%y!l'h&"}; + pC1eC2tenal = { C1 = "t'" ; C1C2="'"; C2 ="t'n!l"}; + pC1eC2tekal = { C1 = "t'" ; C1C2="'"; C2 ="t'k!l"}; + pC1eC2teshal = { C1 = "t'" ; C1C2="'"; C2 ="t'x!l"}; + pC1eC2tachehual = { C1 = "t'" ; C1C2="'"; C2 ="t!cX7l"}; + pC1eC2toal = { C1 = "t'" ; C1C2="'"; C2 ="t7l"}; + pC1eC2talech = { C1 = "t'" ; C1C2="'"; C2="t!l'c"}; + pC1eC2tewal = { C1 = "t'" ; C1C2="'"; C2="t'w!l"}; + + --Infinitve mkV2bl + pmeC1C2at= {C1 ="m'" ; C1C2="'"; C2 ="!t"}; + + --Infinitve mkV2bl + pC1eC2= {C1 ="t'" ; C1C2="'"; C2 ="#"}; + +--------------------------- TO DO : CORRECT PASSIVE FORMS OF THE VERBS BELOW : CURRENTLY = ACTIVE! +--mkV2yz -- yz -- catch +--Perf -- +C1AC2hu = {C1 ="" ; C1C2="!"; C2 ="h&"}; +C1AC2n = { C1 = "" ; C1C2="!"; C2 ="n"}; +C1AC2k = { C1 = "" ; C1C2="!"; C2 ="k"}; +C1AC2sh = { C1 = "" ; C1C2="!"; C2 ="x"}; +C1AC2achehu = { C1 = "" ; C1C2 ="!"; C2 ="!ch&"}; +C1AC2a = { C1 = "" ; C1C2="!"; C2 ="'"}; +C1AC2ach = { C1 = "" ; C1C2="!"; C2 ="'c"}; +C1AC2u = { C1 = "" ; C1C2="!"; C2 ="&"}; +-- Imper -- mkV2yz +eC1C2alehu = { C1 = "ä" ; C1C2=""; C2 ="!l'h&"}; +enC1C2alen = { C1 = "än" ; C1C2=""; C2 ="!l'n"}; +teC1C2yaleh = { C1 = "t" ; C1C2=""; C2 ="!l'h"}; +teC1C2aleh = { C1 = "t" ; C1C2=""; C2 ="y!l'x"}; +teC1C2alachehu = { C1 = "t" ; C1C2=""; C2 ="!l!ch&"}; +yeC1C2al = { C1 = "y" ; C1C2=""; C2 ="!l"}; +teC1C2alech = { C1 = "t" ; C1C2=""; C2 ="!l'c"}; +yeC1C2alu = { C1 = "y" ; C1C2=""; C2 ="!l&"}; + +-- Cont -- mkV2yz +eC1C2 = { C1 = "ä" ; C1C2=""; C2 =""}; +enC1C2 = { C1 = "än" ; C1C2=""; C2 =""}; +teC1C2 = { C1 = "t" ; C1C2=""; C2 =""}; +--teC1C2 = { C1 = "t" ; C1C2=""; C2 =""};3 +teC1C2u = { C1 = "t" ; C1C2=""; C2 ="&"}; +yeC1C2 = { C1 = "y" ; C1C2=""; C2 =""}; +--teC1C2 = { C1 = "t" ; C1C2=""; C2 =""}; +yeC1C2u = { C1 = "y" ; C1C2=""; C2 ="&"}; + + +--Jus_Imperat mkV2yz +leC1aC2a = {C1 ="l" ; C1C2="!"; C2 =""}; +enC1aC2a = { C1 = "än" ; C1C2="!"; C2 =""}; +C1aC2 = { C1 = "" ; C1C2="!"; C2 =""}; +C1aC2i = { C1 = "" ; C1C2="!"; C2 ="#"}; +C1eC2u = { C1 = "" ; C1C2="!"; C2 ="&"}; +yC1aC2a = { C1 = "y" ; C1C2="!"; C2 =""}; +tC1aC2a = { C1 = "t" ; C1C2="!"; C2 =""}; +yC1aC2u = { C1 = "y" ; C1C2="!"; C2 ="&"}; +--Gerund mkV2yz +C1C2ie = {C1 ="" ; C1C2=""; C2 ="%"}; +C1C2en = { C1 = "" ; C1C2=""; C2 ="'n"}; +C1C2ek = { C1 = "" ; C1C2=""; C2 ="'k"}; +C1C2esh = { C1 = "" ; C1C2=""; C2 ="'x"}; +C1C2achehu = { C1 = "" ; C1C2=""; C2 ="!ch&"}; +C1C2o = { C1 = "" ; C1C2=""; C2 ="/"}; +C1C2a = { C1 = "" ; C1C2=""; C2="!"}; +C1C2ew = { C1 = "" ; C1C2=""; C2="'w"}; + +--CompPer mkV2yz y!l'h& !l !l !l cX7l 7l l'c !l +C1C2iealehu = {C1 ="" ; C1C2=""; C2 ="%y!l'h&"}; +C1C2enal = { C1 = "" ; C1C2=""; C2 ="'n!l"}; +C1C2ekal = { C1 = "" ; C1C2=""; C2 ="'k!l"}; +C1C2eshal = { C1 = "" ; C1C2=""; C2 ="'x!l"}; +C1C2achehual = { C1 = "" ; C1C2=""; C2 ="!cX7l"}; +C1C2oal = { C1 = "" ; C1C2=""; C2 ="7l"}; +C1C2alech = { C1 = "" ; C1C2=""; C2="!l'c"}; +C1C2ewal = { C1 = "" ; C1C2=""; C2="'w!l"}; + + +--Infinitve mkV2yz +meC1aC2= {C1 ="m'" ; C1C2="!"; C2 =""}; + +--Infinitve mkV2yz +C1aC2ii= {C1 ="" ; C1C2="!"; C2 ="#"}; + + + --mkV2yz -- yz -- catch + --Perf -- + C1AC2hu = {C1 ="" ; C1C2="!"; C2 ="h&"}; + C1AC2n = { C1 = "" ; C1C2="!"; C2 ="n"}; + C1AC2k = { C1 = "" ; C1C2="!"; C2 ="k"}; + C1AC2sh = { C1 = "" ; C1C2="!"; C2 ="x"}; + C1AC2achehu = { C1 = "" ; C1C2 ="!"; C2 ="!ch&"}; + C1AC2a = { C1 = "" ; C1C2="!"; C2 ="'"}; + C1AC2ach = { C1 = "" ; C1C2="!"; C2 ="'c"}; + C1AC2u = { C1 = "" ; C1C2="!"; C2 ="&"}; + -- Imper -- mkV2yz + eC1C2alehu = { C1 = "ä" ; C1C2=""; C2 ="!l'h&"}; + enC1C2alen = { C1 = "än" ; C1C2=""; C2 ="!l'n"}; + teC1C2yaleh = { C1 = "t" ; C1C2=""; C2 ="!l'h"}; + teC1C2aleh = { C1 = "t" ; C1C2=""; C2 ="y!l'x"}; + teC1C2alachehu = { C1 = "t" ; C1C2=""; C2 ="!l!ch&"}; + yeC1C2al = { C1 = "y" ; C1C2=""; C2 ="!l"}; + teC1C2alech = { C1 = "t" ; C1C2=""; C2 ="!l'c"}; + yeC1C2alu = { C1 = "y" ; C1C2=""; C2 ="!l&"}; + + -- Cont -- mkV2yz + eC1C2 = { C1 = "ä" ; C1C2=""; C2 =""}; + enC1C2 = { C1 = "än" ; C1C2=""; C2 =""}; + teC1C2 = { C1 = "t" ; C1C2=""; C2 =""}; + --teC1C2 = { C1 = "t" ; C1C2=""; C2 =""};3 + teC1C2u = { C1 = "t" ; C1C2=""; C2 ="&"}; + yeC1C2 = { C1 = "y" ; C1C2=""; C2 =""}; + --teC1C2 = { C1 = "t" ; C1C2=""; C2 =""}; + yeC1C2u = { C1 = "y" ; C1C2=""; C2 ="&"}; + + + --Jus_Imperat mkV2yz + leC1aC2a = {C1 ="l" ; C1C2="!"; C2 =""}; + enC1aC2a = { C1 = "än" ; C1C2="!"; C2 =""}; + C1aC2 = { C1 = "" ; C1C2="!"; C2 =""}; + C1aC2i = { C1 = "" ; C1C2="!"; C2 ="#"}; + C1eC2u = { C1 = "" ; C1C2="!"; C2 ="&"}; + yC1aC2a = { C1 = "y" ; C1C2="!"; C2 =""}; + tC1aC2a = { C1 = "t" ; C1C2="!"; C2 =""}; + yC1aC2u = { C1 = "y" ; C1C2="!"; C2 ="&"}; + --Gerund mkV2yz + C1C2ie = {C1 ="" ; C1C2=""; C2 ="%"}; + C1C2en = { C1 = "" ; C1C2=""; C2 ="'n"}; + C1C2ek = { C1 = "" ; C1C2=""; C2 ="'k"}; + C1C2esh = { C1 = "" ; C1C2=""; C2 ="'x"}; + C1C2achehu = { C1 = "" ; C1C2=""; C2 ="!ch&"}; + C1C2o = { C1 = "" ; C1C2=""; C2 ="/"}; + C1C2a = { C1 = "" ; C1C2=""; C2="!"}; + C1C2ew = { C1 = "" ; C1C2=""; C2="'w"}; + + --CompPer mkV2yz y!l'h& !l !l !l cX7l 7l l'c !l + C1C2iealehu = {C1 ="" ; C1C2=""; C2 ="%y!l'h&"}; + C1C2enal = { C1 = "" ; C1C2=""; C2 ="'n!l"}; + C1C2ekal = { C1 = "" ; C1C2=""; C2 ="'k!l"}; + C1C2eshal = { C1 = "" ; C1C2=""; C2 ="'x!l"}; + C1C2achehual = { C1 = "" ; C1C2=""; C2 ="!cX7l"}; + C1C2oal = { C1 = "" ; C1C2=""; C2 ="7l"}; + C1C2alech = { C1 = "" ; C1C2=""; C2="!l'c"}; + C1C2ewal = { C1 = "" ; C1C2=""; C2="'w!l"}; + + + --Infinitve mkV2yz + meC1aC2= {C1 ="m'" ; C1C2="!"; C2 =""}; + + --Infinitve mkV2yz + C1aC2ii= {C1 ="" ; C1C2="!"; C2 ="#"}; + +--nore -- nr -- live +--Perf -- +C1oC2hu = {C1 ="" ; C1C2="/"; C2 ="h&"}; +C1oC2n = { C1 = "" ; C1C2="/"; C2 ="n"}; +C1oC2k = { C1 = "" ; C1C2="/"; C2 ="k"}; +C1oC2sh = { C1 = "" ; C1C2="/"; C2 ="x"}; +C1oC2achehu = { C1 = "" ; C1C2 ="/"; C2 ="!ch&"}; +C1oC2a = { C1 = "" ; C1C2="/"; C2 ="'"}; +C1oC2ach = { C1 = "" ; C1C2="/"; C2 ="'c"}; +C1oC2u = { C1 = "" ; C1C2="/"; C2 ="&"}; +-- Imper -- mkV2nr +eC1oC2alehu = { C1 = "ä" ; C1C2="/"; C2 ="!l'h&"}; +enC1oC2alen = { C1 = "än" ; C1C2="/"; C2 ="!l'n"}; +teC1oC2yaleh = { C1 = "t" ; C1C2="/"; C2 ="!l'h"}; +teC1oC2alesh = { C1 = "t" ; C1C2="/"; C2 ="y!l'x"}; +teC1oC2alachehu = { C1 = "t" ; C1C2="/"; C2 ="!l!ch&"}; +yeC1oC2al = { C1 = "y" ; C1C2="/"; C2 ="!l"}; +teC1oC2alech = { C1 = "t" ; C1C2="/"; C2 ="!l'c"}; +yeC1oC2alu = { C1 = "y" ; C1C2="/"; C2 ="!l&"}; + +-- Imper -- mkV2nr +eC1oC2 = { C1 = "ä" ; C1C2="/"; C2 =""}; +enC1oC2 = { C1 = "än" ; C1C2="/"; C2 =""}; +teC1oC2 = { C1 = "t" ; C1C2="/"; C2 =""}; +teC1oC2i = { C1 = "t" ; C1C2="/"; C2 ="#"}; +teC1oC2u = { C1 = "t" ; C1C2="/"; C2 ="&"}; +yeC1oC2 = { C1 = "y" ; C1C2="/"; C2 =""}; +--teC1oC2 = { C1 = "t" ; C1C2="/"; C2 ="!l'c"}; +yeC1oC2u = { C1 = "y" ; C1C2="/"; C2 ="&"}; + +--Jus_Imperat mkV2nr +leC1uC2 = {C1 ="l" ; C1C2="&"; C2 =""}; +enC1uC2 = { C1 = "än" ; C1C2="&"; C2 =""}; +C1uC2 = { C1 = "" ; C1C2="&"; C2 =""}; +C1uC2i = { C1 = "" ; C1C2="&"; C2 ="#"}; +C1uC2u = { C1 = "" ; C1C2="&"; C2 ="&"}; +yC1uC2 = { C1 = "y" ; C1C2="&"; C2 =""}; +tC1uC2 = { C1 = "t" ; C1C2="&"; C2 =""}; +yC1uC2u = { C1 = "y" ; C1C2="&"; C2 ="&"}; + + + +--Gerund mkV2nr +C1oC2ie = {C1 ="" ; C1C2="/"; C2 ="%"}; +C1oC2en = { C1 = "" ; C1C2="/"; C2 ="'n"}; +C1oC2ek = { C1 = "" ; C1C2="/"; C2 ="'k"}; +C1oC2esh = { C1 = "" ; C1C2="/"; C2 ="'x"}; +C1oC2achehu = { C1 = "" ; C1C2="/"; C2 ="!ch&"}; +C1oC2o = { C1 = "" ; C1C2="/"; C2 ="/"}; +C1oC2A = { C1 = "" ; C1C2="/"; C2="!"}; +C1oC2ew = { C1 = "" ; C1C2="/"; C2="'w"}; + +--CompPer mkV2nr y!l'h& !l !l !l cX7l 7l l'c !l +C1oC2iealehu = {C1 ="" ; C1C2="/"; C2 ="%y!l'h& "}; +C1oC2enal = { C1 = "" ; C1C2="/"; C2 ="'n!l"}; +C1oC2ekal = { C1 = "" ; C1C2="/"; C2 ="'k!l"}; +C1oC2eshal = { C1 = "" ; C1C2="/"; C2 ="'x!l"}; +C1oC2achehual = { C1 = "" ; C1C2="/"; C2 ="!cX7l"}; +C1oC2oal = { C1 = "" ; C1C2="/"; C2 ="7l"}; +C1oC2Alech = { C1 = "" ; C1C2="/"; C2="!l'c"}; +C1oC2ewal = { C1 = "" ; C1C2="/"; C2="'w!l"}; + +--Infinitve mkV2nr +meC1oC2= {C1 ="m'" ; C1C2="/"; C2 =""}; + +--Participle mkV2nr +C1uaC2i= {C1 ="" ; C1C2="7"; C2 ="#"}; + + + + + --nore -- nr -- live + --Perf -- + C1oC2hu = {C1 ="" ; C1C2="/"; C2 ="h&"}; + C1oC2n = { C1 = "" ; C1C2="/"; C2 ="n"}; + C1oC2k = { C1 = "" ; C1C2="/"; C2 ="k"}; + C1oC2sh = { C1 = "" ; C1C2="/"; C2 ="x"}; + C1oC2achehu = { C1 = "" ; C1C2 ="/"; C2 ="!ch&"}; + C1oC2a = { C1 = "" ; C1C2="/"; C2 ="'"}; + C1oC2ach = { C1 = "" ; C1C2="/"; C2 ="'c"}; + C1oC2u = { C1 = "" ; C1C2="/"; C2 ="&"}; + -- Imper -- mkV2nr + eC1oC2alehu = { C1 = "ä" ; C1C2="/"; C2 ="!l'h&"}; + enC1oC2alen = { C1 = "än" ; C1C2="/"; C2 ="!l'n"}; + teC1oC2yaleh = { C1 = "t" ; C1C2="/"; C2 ="!l'h"}; + teC1oC2alesh = { C1 = "t" ; C1C2="/"; C2 ="y!l'x"}; + teC1oC2alachehu = { C1 = "t" ; C1C2="/"; C2 ="!l!ch&"}; + yeC1oC2al = { C1 = "y" ; C1C2="/"; C2 ="!l"}; + teC1oC2alech = { C1 = "t" ; C1C2="/"; C2 ="!l'c"}; + yeC1oC2alu = { C1 = "y" ; C1C2="/"; C2 ="!l&"}; + + -- Imper -- mkV2nr + eC1oC2 = { C1 = "ä" ; C1C2="/"; C2 =""}; + enC1oC2 = { C1 = "än" ; C1C2="/"; C2 =""}; + teC1oC2 = { C1 = "t" ; C1C2="/"; C2 =""}; + teC1oC2i = { C1 = "t" ; C1C2="/"; C2 ="#"}; + teC1oC2u = { C1 = "t" ; C1C2="/"; C2 ="&"}; + yeC1oC2 = { C1 = "y" ; C1C2="/"; C2 =""}; + --teC1oC2 = { C1 = "t" ; C1C2="/"; C2 ="!l'c"}; + yeC1oC2u = { C1 = "y" ; C1C2="/"; C2 ="&"}; + + --Jus_Imperat mkV2nr + leC1uC2 = {C1 ="l" ; C1C2="&"; C2 =""}; + enC1uC2 = { C1 = "än" ; C1C2="&"; C2 =""}; + C1uC2 = { C1 = "" ; C1C2="&"; C2 =""}; + C1uC2i = { C1 = "" ; C1C2="&"; C2 ="#"}; + C1uC2u = { C1 = "" ; C1C2="&"; C2 ="&"}; + yC1uC2 = { C1 = "y" ; C1C2="&"; C2 =""}; + tC1uC2 = { C1 = "t" ; C1C2="&"; C2 =""}; + yC1uC2u = { C1 = "y" ; C1C2="&"; C2 ="&"}; + + + + --Gerund mkV2nr + C1oC2ie = {C1 ="" ; C1C2="/"; C2 ="%"}; + C1oC2en = { C1 = "" ; C1C2="/"; C2 ="'n"}; + C1oC2ek = { C1 = "" ; C1C2="/"; C2 ="'k"}; + C1oC2esh = { C1 = "" ; C1C2="/"; C2 ="'x"}; + C1oC2achehu = { C1 = "" ; C1C2="/"; C2 ="!ch&"}; + C1oC2o = { C1 = "" ; C1C2="/"; C2 ="/"}; + C1oC2A = { C1 = "" ; C1C2="/"; C2="!"}; + C1oC2ew = { C1 = "" ; C1C2="/"; C2="'w"}; + + --CompPer mkV2nr y!l'h& !l !l !l cX7l 7l l'c !l + C1oC2iealehu = {C1 ="" ; C1C2="/"; C2 ="%y!l'h& "}; + C1oC2enal = { C1 = "" ; C1C2="/"; C2 ="'n!l"}; + C1oC2ekal = { C1 = "" ; C1C2="/"; C2 ="'k!l"}; + C1oC2eshal = { C1 = "" ; C1C2="/"; C2 ="'x!l"}; + C1oC2achehual = { C1 = "" ; C1C2="/"; C2 ="!cX7l"}; + C1oC2oal = { C1 = "" ; C1C2="/"; C2 ="7l"}; + C1oC2Alech = { C1 = "" ; C1C2="/"; C2="!l'c"}; + C1oC2ewal = { C1 = "" ; C1C2="/"; C2="'w!l"}; + + --Infinitve mkV2nr + meC1oC2= {C1 ="m'" ; C1C2="/"; C2 =""}; + + --Participle mkV2nr + C1uaC2i= {C1 ="" ; C1C2="7"; C2 ="#"}; + + +--mkV2wN -- wN -- swim --- Eg lie, see, say +--Perf -- +C1AC2ehu = {C1 ="" ; C1C2="!"; C2 ="'h&"}; +C1AC2en = { C1 = "" ; C1C2="!"; C2 ="'n"}; +C1AC2ek = { C1 = "" ; C1C2="!"; C2 ="'k"}; +C1AC2esh = { C1 = "" ; C1C2="!"; C2 ="'x"}; +--C1AC2achehu = { C1 = "" ; C1C2 ="!"; C2 ="!ch&"}; +--C1AC2a = { C1 = "" ; C1C2="!"; C2 ="'"}; +--C1AC2ach = { C1 = "" ; C1C2="!"; C2 ="'c"}; +--C1AC2u = { C1 = "" ; C1C2="!"; C2 ="&"}; +-- Imper -- mkV2wN +eC1aC2alehu = { C1 = "ä" ; C1C2="!"; C2 ="!l'h&"}; +enC1aC2alen = { C1 = "än" ; C1C2="!"; C2 ="!l'n"}; +teC1aC2yaleh = { C1 = "t" ; C1C2="!"; C2 ="!l'h"}; +teC1aC2alesh = { C1 = "t" ; C1C2="!"; C2 ="y!l'x"}; +teC1aC2alachehu = { C1 = "t" ; C1C2="!"; C2 ="!l!ch&"}; +yeC1aC2al = { C1 = "y" ; C1C2="!"; C2 ="!l"}; +teC1aC2alech = { C1 = "t" ; C1C2="!"; C2 ="!l'c"}; +yeC1aC2alu = { C1 = "y" ; C1C2="!"; C2 ="!l&"}; + +-- Cont -- mkV2wN +eC1aC2 = { C1 = "ä" ; C1C2="!"; C2 =""}; +enC1aC2 = { C1 = "än" ; C1C2="!"; C2 =""}; +teC1aC2 = { C1 = "t" ; C1C2="!"; C2 =""}; +--teC1aC2 = { C1 = "t" ; C1C2="!"; C2 =""}; +teC1aC2u = { C1 = "t" ; C1C2="!"; C2 ="&"}; +yeC1aC2 = { C1 = "y" ; C1C2="!"; C2 =""}; +--teC1aC2 = { C1 = "t" ; C1C2="!"; C2 =""}; +yeC1aC2u = { C1 = "y" ; C1C2="!"; C2 ="&"}; + +--Jus_Imperat mkV2wN +--leC1aC2a = {C1 ="l" ; C1C2="!"; C2 =""}; +--enC1aC2a = { C1 = "än" ; C1C2="!"; C2 =""}; +--C1aC2 = { C1 = "" ; C1C2="!"; C2 =""}; +--C1aC2i = { C1 = "" ; C1C2="!"; C2 ="#"}; +--C1eC2u = { C1 = "" ; C1C2="!"; C2 ="&"}; +--yC1aC2a = { C1 = "y" ; C1C2="!"; C2 =""}; +--tC1aC2a = { C1 = "t" ; C1C2="!"; C2 =""}; +--yC1aC2u = { C1 = "y" ; C1C2="!"; C2 ="&"}; +--Gerund mkV2wN +C1aC2cie = {C1 ="" ; C1C2="!"; C2 ="c%"}; +C1aC2ten = { C1 = "" ; C1C2="!"; C2 ="t'n"}; +C1aC2tek = { C1 = "" ; C1C2="!"; C2 ="t'k"}; +C1aC2tesh = { C1 = "" ; C1C2="!"; C2 ="t'x"}; +C1aC2tachehu = { C1 = "" ; C1C2="!"; C2 ="t!ch&"}; +C1aC2to = { C1 = "" ; C1C2="!"; C2 ="t/"}; +C1aC2ta = { C1 = "" ; C1C2="!"; C2="t!"}; +C1aC2tew = { C1 = "" ; C1C2="!"; C2="t'w"}; + +--ComPer mkV2wN y!l'h& !l !l !l cX7l 7l l'c !l +C1aC2ciealehu = {C1 ="" ; C1C2="!"; C2 ="c%y!l'h&"}; +C1aC2tenal = { C1 = "" ; C1C2="!"; C2 ="t'n!l"}; +C1aC2tekal = { C1 = "" ; C1C2="!"; C2 ="t'k!l"}; +C1aC2teshal = { C1 = "" ; C1C2="!"; C2 ="t'x!l"}; +C1aC2tachehual = { C1 = "" ; C1C2="!"; C2 ="t!cX7l"}; +C1aC2toal = { C1 = "" ; C1C2="!"; C2 ="t7l"}; +C1aC2talech = { C1 = "" ; C1C2="!"; C2="t!l'c"}; +C1aC2tewal = { C1 = "" ; C1C2="!"; C2="t'w!l"}; + +--Infinitve mkV2wN +meC1aC2et= {C1 ="m'" ; C1C2="!"; C2 ="'t"}; +--nore -- nr -- live + + + + --mkV2wN -- wN -- swim --- Eg lie, see, say + --Perf -- + C1AC2ehu = {C1 ="" ; C1C2="!"; C2 ="'h&"}; + C1AC2en = { C1 = "" ; C1C2="!"; C2 ="'n"}; + C1AC2ek = { C1 = "" ; C1C2="!"; C2 ="'k"}; + C1AC2esh = { C1 = "" ; C1C2="!"; C2 ="'x"}; + --C1AC2achehu = { C1 = "" ; C1C2 ="!"; C2 ="!ch&"}; + --C1AC2a = { C1 = "" ; C1C2="!"; C2 ="'"}; + --C1AC2ach = { C1 = "" ; C1C2="!"; C2 ="'c"}; + --C1AC2u = { C1 = "" ; C1C2="!"; C2 ="&"}; + -- Imper -- mkV2wN + eC1aC2alehu = { C1 = "ä" ; C1C2="!"; C2 ="!l'h&"}; + enC1aC2alen = { C1 = "än" ; C1C2="!"; C2 ="!l'n"}; + teC1aC2yaleh = { C1 = "t" ; C1C2="!"; C2 ="!l'h"}; + teC1aC2alesh = { C1 = "t" ; C1C2="!"; C2 ="y!l'x"}; + teC1aC2alachehu = { C1 = "t" ; C1C2="!"; C2 ="!l!ch&"}; + yeC1aC2al = { C1 = "y" ; C1C2="!"; C2 ="!l"}; + teC1aC2alech = { C1 = "t" ; C1C2="!"; C2 ="!l'c"}; + yeC1aC2alu = { C1 = "y" ; C1C2="!"; C2 ="!l&"}; + + -- Cont -- mkV2wN + eC1aC2 = { C1 = "ä" ; C1C2="!"; C2 =""}; + enC1aC2 = { C1 = "än" ; C1C2="!"; C2 =""}; + teC1aC2 = { C1 = "t" ; C1C2="!"; C2 =""}; + --teC1aC2 = { C1 = "t" ; C1C2="!"; C2 =""}; + teC1aC2u = { C1 = "t" ; C1C2="!"; C2 ="&"}; + yeC1aC2 = { C1 = "y" ; C1C2="!"; C2 =""}; + --teC1aC2 = { C1 = "t" ; C1C2="!"; C2 =""}; + yeC1aC2u = { C1 = "y" ; C1C2="!"; C2 ="&"}; + + --Jus_Imperat mkV2wN + --leC1aC2a = {C1 ="l" ; C1C2="!"; C2 =""}; + --enC1aC2a = { C1 = "än" ; C1C2="!"; C2 =""}; + --C1aC2 = { C1 = "" ; C1C2="!"; C2 =""}; + --C1aC2i = { C1 = "" ; C1C2="!"; C2 ="#"}; + --C1eC2u = { C1 = "" ; C1C2="!"; C2 ="&"}; + --yC1aC2a = { C1 = "y" ; C1C2="!"; C2 =""}; + --tC1aC2a = { C1 = "t" ; C1C2="!"; C2 =""}; + --yC1aC2u = { C1 = "y" ; C1C2="!"; C2 ="&"}; + --Gerund mkV2wN + C1aC2cie = {C1 ="" ; C1C2="!"; C2 ="c%"}; + C1aC2ten = { C1 = "" ; C1C2="!"; C2 ="t'n"}; + C1aC2tek = { C1 = "" ; C1C2="!"; C2 ="t'k"}; + C1aC2tesh = { C1 = "" ; C1C2="!"; C2 ="t'x"}; + C1aC2tachehu = { C1 = "" ; C1C2="!"; C2 ="t!ch&"}; + C1aC2to = { C1 = "" ; C1C2="!"; C2 ="t/"}; + C1aC2ta = { C1 = "" ; C1C2="!"; C2="t!"}; + C1aC2tew = { C1 = "" ; C1C2="!"; C2="t'w"}; + + --ComPer mkV2wN y!l'h& !l !l !l cX7l 7l l'c !l + C1aC2ciealehu = {C1 ="" ; C1C2="!"; C2 ="c%y!l'h&"}; + C1aC2tenal = { C1 = "" ; C1C2="!"; C2 ="t'n!l"}; + C1aC2tekal = { C1 = "" ; C1C2="!"; C2 ="t'k!l"}; + C1aC2teshal = { C1 = "" ; C1C2="!"; C2 ="t'x!l"}; + C1aC2tachehual = { C1 = "" ; C1C2="!"; C2 ="t!cX7l"}; + C1aC2toal = { C1 = "" ; C1C2="!"; C2 ="t7l"}; + C1aC2talech = { C1 = "" ; C1C2="!"; C2="t!l'c"}; + C1aC2tewal = { C1 = "" ; C1C2="!"; C2="t'w!l"}; + + --Infinitve mkV2wN + meC1aC2et= {C1 ="m'" ; C1C2="!"; C2 ="'t"}; + --nore -- nr -- live + + + + +----------- This much is enough for the duo-radicals--- +--There are few verbs still remaining like the case of shete, hede , --washe, aye, ale , all need unique froms for them selves. I will get --back here later!! + +--seTe -- st -- give +--Perf -- +C1eC2hu = {C1 ="" ; C1C2="'"; C2 ="'h&"}; +C1eC2n = { C1 = "" ; C1C2="'"; C2 ="'n"}; +C1eC2k = { C1 = "" ; C1C2="'"; C2 ="'k"}; +C1eC2sh = { C1 = "" ; C1C2="'"; C2 ="'x"}; +C1eC2achehu = { C1 = "" ; C1C2 ="'"; C2 ="'ch&"}; +C1eC2a = { C1 = "" ; C1C2="'"; C2 ="'"}; +C1eC2ach = { C1 = "" ; C1C2="'"; C2 ="'c"}; +--C1eC2u = { C1 = "" ; C1C2="'"; C2 ="&"}; same as C1aC2u (bela) +-- Imper -- mkV2sT +--eC1eC2alehu = { C1 = "ä" ; C1C2="'"; C2 ="!l'h&"}; eC1aC2alehu +--enC1eC2alen = { C1 = "än" ; C1C2="'"; C2 ="!l'n"};enC1aC2alen +--teC1eC2yaleh = { C1 = "t" ; C1C2="'"; C2 ="!l'h"};teC1aC2yaleh +--teC1eC2aleh = { C1 = "t" ; C1C2="'"; C2 ="y!l'x"};teC1aC2aleh +--teC1eC2alachehu = { C1 = "t" ; C1C2="'"; C2 ="!l!ch&"};teC1aC2alachehu +--yeC1eC2al = { C1 = "y" ; C1C2="'"; C2 ="!l"};yeC1aC2al +--teC1eC2alech = { C1 = "t" ; C1C2="'"; C2 ="!l'c"};teC1aC2alech +--yeC1eC2alu = { C1 = "y" ; C1C2="'"; C2 ="!l&"};yeC1aC2alu + +--Jus_Imperat mkV2sT + +leC1eC2 = {C1 ="l" ; C1C2=""; C2 =""}; +enC1eC2 = { C1 = "än" ; C1C2=""; C2 =""}; +C1C2 = { C1 = "" ; C1C2=""; C2 =""}; +C1eC2i = { C1 = "" ; C1C2=""; C2 ="#"}; +--C1eC2u = { C1 = "" ; C1C2=""; C2 ="&"}; C1C2u +yC1eC2 = { C1 = "y" ; C1C2=""; C2 =""}; +tC1eC2 = { C1 = "t" ; C1C2=""; C2 =""}; +--yC1eC2u = { C1 = "y" ; C1C2=""; C2 ="&"};yC1C2u + + +--Gerund mkV2sT + +--C1eC2ie = {C1 ="" ; C1C2="'"; C2 ="c%"}; C1aC2cie +--C1eC2en = { C1 = "" ; C1C2="'"; C2 ="'n"};C1aC2ten +--C1eC2ek = { C1 = "" ; C1C2="'"; C2 ="'k"}; C1aC2tek +--C1eC2esh = { C1 = "" ; C1C2="'"; C2 ="'x"}; C1aC2tesh +--C1eC2achehu = { C1 = "" ; C1C2="'"; C2 ="!ch&"};C1aC2tachehu +--C1eC2o = { C1 = "" ; C1C2="'"; C2 ="/"};C1aC2to +--C1eC2A = { C1 = "" ; C1C2="'"; C2="!"};C1aC2ta +--C1eC2ew = { C1 = "" ; C1C2="'"; C2="'w"}; C1aC2tew +--Infinitve mkV2sT +meC1C2et= {C1 ="m'" ; C1C2=""; C2 ="'t"}; + + + + + + ----------- This much is enough for the duo-radicals--- + --There are few verbs still remaining like the case of shete, hede , --washe, aye, ale , all need unique froms for them selves. I will get --back here later!! + + --seTe -- st -- give + --Perf -- + C1eC2hu = {C1 ="" ; C1C2="'"; C2 ="'h&"}; + C1eC2n = { C1 = "" ; C1C2="'"; C2 ="'n"}; + C1eC2k = { C1 = "" ; C1C2="'"; C2 ="'k"}; + C1eC2sh = { C1 = "" ; C1C2="'"; C2 ="'x"}; + C1eC2achehu = { C1 = "" ; C1C2 ="'"; C2 ="'ch&"}; + C1eC2a = { C1 = "" ; C1C2="'"; C2 ="'"}; + C1eC2ach = { C1 = "" ; C1C2="'"; C2 ="'c"}; + --C1eC2u = { C1 = "" ; C1C2="'"; C2 ="&"}; same as C1aC2u (bela) + -- Imper -- mkV2sT + --eC1eC2alehu = { C1 = "ä" ; C1C2="'"; C2 ="!l'h&"}; eC1aC2alehu + --enC1eC2alen = { C1 = "än" ; C1C2="'"; C2 ="!l'n"};enC1aC2alen + --teC1eC2yaleh = { C1 = "t" ; C1C2="'"; C2 ="!l'h"};teC1aC2yaleh + --teC1eC2aleh = { C1 = "t" ; C1C2="'"; C2 ="y!l'x"};teC1aC2aleh + --teC1eC2alachehu = { C1 = "t" ; C1C2="'"; C2 ="!l!ch&"};teC1aC2alachehu + --yeC1eC2al = { C1 = "y" ; C1C2="'"; C2 ="!l"};yeC1aC2al + --teC1eC2alech = { C1 = "t" ; C1C2="'"; C2 ="!l'c"};teC1aC2alech + --yeC1eC2alu = { C1 = "y" ; C1C2="'"; C2 ="!l&"};yeC1aC2alu + + --Jus_Imperat mkV2sT + + leC1eC2 = {C1 ="l" ; C1C2=""; C2 =""}; + enC1eC2 = { C1 = "än" ; C1C2=""; C2 =""}; + C1C2 = { C1 = "" ; C1C2=""; C2 =""}; + C1eC2i = { C1 = "" ; C1C2=""; C2 ="#"}; + --C1eC2u = { C1 = "" ; C1C2=""; C2 ="&"}; C1C2u + yC1eC2 = { C1 = "y" ; C1C2=""; C2 =""}; + tC1eC2 = { C1 = "t" ; C1C2=""; C2 =""}; + --yC1eC2u = { C1 = "y" ; C1C2=""; C2 ="&"};yC1C2u + + + --Gerund mkV2sT + + --C1eC2ie = {C1 ="" ; C1C2="'"; C2 ="c%"}; C1aC2cie + --C1eC2en = { C1 = "" ; C1C2="'"; C2 ="'n"};C1aC2ten + --C1eC2ek = { C1 = "" ; C1C2="'"; C2 ="'k"}; C1aC2tek + --C1eC2esh = { C1 = "" ; C1C2="'"; C2 ="'x"}; C1aC2tesh + --C1eC2achehu = { C1 = "" ; C1C2="'"; C2 ="!ch&"};C1aC2tachehu + --C1eC2o = { C1 = "" ; C1C2="'"; C2 ="/"};C1aC2to + --C1eC2A = { C1 = "" ; C1C2="'"; C2="!"};C1aC2ta + --C1eC2ew = { C1 = "" ; C1C2="'"; C2="'w"}; C1aC2tew + --Infinitve mkV2sT + meC1C2et= {C1 ="m'" ; C1C2=""; C2 ="'t"}; + + + + +---- Quadro_Radical + + +--Starting with type Tri-Radical Roots +-- Eg. dbdb - fight +-- qzqz - freeze +-- wrwr - throw +-- tnfs - breath + +--Perf -- +C1aC2aC3aC4hu = {C1 ="" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "h&" }; +C1aC2aC3aC4n = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "n" }; +C1aC2aC3aC4k = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "k" }; +C1aC2aC3aC4sh = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "x" }; +C1aC2aC3aC4achehu = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "!ch&" }; +C1aC2aC3aC4a = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "'" }; +C1aC2aC3aC4ech = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "'c" }; +C1aC2aC3aC4u = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "&" }; +--Imper --mkV4dbdb +eC1aC2aC3C4alehu = { C1 = "ä" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l'h&" }; +enC1aC2aC3C4alen = { C1 = "än" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l'n" }; +teC1aC2aC3C4yaleh = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l'h" }; +teC1aC2aC3C4aleh = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "y!l'x" }; +teC1aC2aC3C4alachehu = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l!ch&" }; +yeC1aC2aC3C4al = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l" }; +teC1aC2aC3C4alech = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l'c" }; +yeC1aC2aC3C4alu = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l&" }; + +--Cont --mkV4dbdb +eC1aC2aC3C4 = { C1 = "ä" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "" }; +enC1aC2aC3C4 = { C1 = "än" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "" }; +teC1aC2aC3C4 = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "" }; +teC1aC2aC3C4i = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "#" }; +teC1aC2aC3C4u = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "&" }; +yeC1aC2aC3C4 = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "" }; +--teC1aC2aC3C4 = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "" }; +yeC1aC2aC3C4u = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "&" }; + + + +--Jus_Imperat mkV4dbdb +leC1aC2C3C4 = {C1 ="l" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "" }; +enC1aC2C3C4 = { C1 = "än" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "" }; +C1aC2C3C4 = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "" }; +C1aC2C3C4i = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "#" }; +C1aC2C3C4u = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "&" }; +yC1aC2C3C4 = { C1 = "y" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "" }; +tC1aC2C3C4 = { C1 = "t" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "" }; +yC1aC2C3C4u = { C1 = "y" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "&" }; +--Gerund mkV4dbdb +C1aC2C3C4ie = {C1 ="" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "%" }; +C1aC2C3C4en = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'n" }; +C1aC2C3C4ek = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'k" }; +C1aC2C3C4esh = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'x" }; +C1aC2C3C4achehu = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "!ch&" }; +C1aC2C3C4o = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "/" }; +C1aC2C3C4a = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "!" }; +C1aC2C3C4ew = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'w" }; + +--CompPerf mkV4dbdb y!l'h& !l !l !l cX7l 7l l'c !l +C1aC2C3C4iealehu = {C1 ="" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "%y!l'h&" }; +C1aC2C3C4enal = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'n!l" }; +C1aC2C3C4ekal = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'k!l" }; +C1aC2C3C4eshal = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'x!l" }; +C1aC2C3C4achehual = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "!cX7l" }; +C1aC2C3C4oal = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "7l" }; +C1aC2C3C4alech = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "!l'c" }; +C1aC2C3C4ewal = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'w!l" }; + +--Infinitve mkV4dbdb +meC1aC2C3aC4 = {C1 ="m'" ; C1C2="'"; C2C3 =""; C3C4="'"; C4= "" }; + +--Participle mkV4dbdb +C1eC2C3aC4i = {C1 ="" ; C1C2="'"; C2C3 =""; C3C4="!"; C4= "#" }; + + + ---- Quadro_Radical + + + --Starting with type Tri-Radical Roots + -- Eg. dbdb - fight + -- qzqz - freeze + -- wrwr - throw + -- tnfs - breath + + --Perf -- + C1aC2aC3aC4hu = {C1 ="" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "h&" }; + C1aC2aC3aC4n = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "n" }; + C1aC2aC3aC4k = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "k" }; + C1aC2aC3aC4sh = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "x" }; + C1aC2aC3aC4achehu = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "!ch&" }; + C1aC2aC3aC4a = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "'" }; + C1aC2aC3aC4ech = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "'c" }; + C1aC2aC3aC4u = { C1 = "" ; C1C2="'"; C2C3 ="'"; C3C4="'"; C4= "&" }; + --Imper --mkV4dbdb + eC1aC2aC3C4alehu = { C1 = "ä" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l'h&" }; + enC1aC2aC3C4alen = { C1 = "än" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l'n" }; + teC1aC2aC3C4yaleh = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l'h" }; + teC1aC2aC3C4aleh = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "y!l'x" }; + teC1aC2aC3C4alachehu = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l!ch&" }; + yeC1aC2aC3C4al = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l" }; + teC1aC2aC3C4alech = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l'c" }; + yeC1aC2aC3C4alu = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "!l&" }; + + --Cont --mkV4dbdb + eC1aC2aC3C4 = { C1 = "ä" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "" }; + enC1aC2aC3C4 = { C1 = "än" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "" }; + teC1aC2aC3C4 = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "" }; + teC1aC2aC3C4i = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "#" }; + teC1aC2aC3C4u = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "&" }; + yeC1aC2aC3C4 = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "" }; + --teC1aC2aC3C4 = { C1 = "t" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "" }; + yeC1aC2aC3C4u = { C1 = "y" ; C1C2="'"; C2C3 ="'"; C3C4=""; C4= "&" }; + + + + --Jus_Imperat mkV4dbdb + leC1aC2C3C4 = {C1 ="l" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "" }; + enC1aC2C3C4 = { C1 = "än" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "" }; + C1aC2C3C4 = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "" }; + C1aC2C3C4i = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "#" }; + C1aC2C3C4u = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "&" }; + yC1aC2C3C4 = { C1 = "y" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "" }; + tC1aC2C3C4 = { C1 = "t" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "" }; + yC1aC2C3C4u = { C1 = "y" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "&" }; + --Gerund mkV4dbdb + C1aC2C3C4ie = {C1 ="" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "%" }; + C1aC2C3C4en = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'n" }; + C1aC2C3C4ek = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'k" }; + C1aC2C3C4esh = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'x" }; + C1aC2C3C4achehu = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "!ch&" }; + C1aC2C3C4o = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "/" }; + C1aC2C3C4a = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "!" }; + C1aC2C3C4ew = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'w" }; + + --CompPerf mkV4dbdb y!l'h& !l !l !l cX7l 7l l'c !l + C1aC2C3C4iealehu = {C1 ="" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "%y!l'h&" }; + C1aC2C3C4enal = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'n!l" }; + C1aC2C3C4ekal = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'k!l" }; + C1aC2C3C4eshal = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'x!l" }; + C1aC2C3C4achehual = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "!cX7l" }; + C1aC2C3C4oal = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "7l" }; + C1aC2C3C4alech = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "!l'c" }; + C1aC2C3C4ewal = { C1 = "" ; C1C2="'"; C2C3 =""; C3C4=""; C4= "'w!l" }; + + --Infinitve mkV4dbdb + meC1aC2C3aC4 = {C1 ="m'" ; C1C2="'"; C2C3 =""; C3C4="'"; C4= "" }; + + --Participle mkV4dbdb + C1eC2C3aC4i = {C1 ="" ; C1C2="'"; C2C3 =""; C3C4="!"; C4= "#" }; + + +} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{- +resource PatternsAmh = { + +flags coding=utf8 ; + + oper +--perf +C1aC2aC3ku = {C1 ="" ; C1C2="ኧ"; C2C3 ="ኧ"; C3="ኩ"}; +C1aC2aC3n = { C1 = "" ; C1C2="ኧ"; C2C3 ="ኧ"; C3="ን"}; +C1aC2aC3k = { C1 = "" ; C1C2="ኧ"; C2C3 ="ኧ"; C3="ክ"}; +C1aC2aC3sh = { C1 = "" ; C1C2="ኧ"; C2C3 ="ኧ"; C3="ሽ"}; +C1aC2aC3achehu = { C1 = "" ; C1C2="ኧ"; C2C3 ="ኧ"; C3="አችሁ"}; +C1aC2aC3e = { C1 = "" ; C1C2="ኧ"; C2C3 ="ኧ"; C3="ኧ"}; +C1aC2aC3ech = { C1 = "" ; C1C2="ኧ"; C2C3 ="ኧ"; C3="ኧች"}; +C1aC2aC3u = { C1 = "" ; C1C2="ኧ"; C2C3 ="ኧ"; C3="ኡ"}; + +--imper +eC1aC2C3alehu = { C1 = "እ" ; C1C2="ኧ"; C2C3 =""; C3="አለሁ"}; +enC1aC2C3alen = { C1 = "እን" ; C1C2="ኧ"; C2C3 =""; C3="አለን"}; +teC1aC2C3yaleh = { C1 = "ት" ; C1C2="ኧ"; C2C3 =""; C3="አለህ"}; +teC1aC2C3aleh = { C1 = "ት" ; C1C2="ኧ"; C2C3 =""; C3="ያለሽ"}; +teC1aC2C3alachehu = { C1 = "ት" ; C1C2="ኧ"; C2C3 =""; C3="አላችሁ"}; +yeC1aC2C3al = { C1 = "ይ" ; C1C2="ኧ"; C2C3 =""; C3="አል"}; +teC1aC2C3alech = { C1 = "ት" ; C1C2="ኧ"; C2C3 =""; C3="አለች"}; +yeC1aC2C3alu = { C1 = "ይ" ; C1C2="ኧ"; C2C3 =""; C3="አሉ"}; + + +} +-} + + + + + diff --git a/lib/src/amharic/PhraseAmh.gf b/lib/src/amharic/PhraseAmh.gf new file mode 100644 index 000000000..5eae30935 --- /dev/null +++ b/lib/src/amharic/PhraseAmh.gf @@ -0,0 +1,37 @@ +concrete PhraseAmh of Phrase = CatAmh ** open + ParamX, + Prelude, + CommonX, + ResAmh in { + + + flags optimize=all_subs ; + coding = utf8; + lin + PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ; + NoPConj = {s = []} ; + NoVoc = {s = []} ; + UttS s = s; + UttAdv adv = adv ; + UttNP np = {s = np.s ! Nom } ; + UttAP ap = {s = ap.s ! Masc!Sg!Indef!Nom } ; + UttCN n = {s = n.s ! Sg ! Indef! Nom} ; + UttCard n = {s = n.s ! Masc!Sg!Indef!Nom } ; + VocNP np = {s = "፤" ++ np.s ! Nom} ; + UttQS qs = {s = qs.s } ; + UttIP ip = ip ; --- Acc also + UttVP vp = {s = vp.obj.s ++ vp.inf} ; + UttIAdv iadv = iadv ; + UttCN n = {s = n.s ! Sg ! Indef!Nom} ; + UttCard n = {s = n.s ! Masc!Sg!Indef!Nom} ; + UttImpSg pol imp = {s = pol.s ++ imp.s!pol.p!Masc!Sg}; + UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p! Masc! Pl} ; --- TO DO + UttImpPol pol imp = {s = pol.s ++ imp.s ! pol.p ! Masc!Pl} ; -- TO DO --- + UttQS qs = {s = qs.s } ; -- TO DO + {- + + PConjConj conj = {s = conj.s2} ; --- + + -} + +} diff --git a/lib/src/amharic/QuestionAmh.gf b/lib/src/amharic/QuestionAmh.gf new file mode 100644 index 000000000..cb8aabafd --- /dev/null +++ b/lib/src/amharic/QuestionAmh.gf @@ -0,0 +1,46 @@ +concrete QuestionAmh of Question = CatAmh ** open ResAmh, ParamX, Prelude in { + + flags optimize=all_subs ; coding = utf8 ; +-- + lin + + QuestCl cl = { + s = \\t,p => cl.s ! t ! p ++ "እንዴ" + }; + + IdetCN idet cn = { + s = idet.s ! Nom ++ cn.s ! idet.n ! Indef ! Nom ; + n = idet.n + } ; ---- FIX ME + + IdetQuant idet num = { + s = \\c => idet.s!Sg ++ num.s ! Indef ! c; + n = Sg ---- size of Num + } ; + + + QuestVP qp vp = + let cl = mkClause (qp.s) (Per3 qp.n Masc) vp in + {s = \\t,p => cl.s ! t ! p } ; + + QuestIAdv iadv cl = mkQuestion iadv cl ; + + + AdvIP ip adv = { + s = adv.s ++ ip.s; + n = ip.n + } ; + + + IdetIP idet = { + s = idet.s!Nom ; + n = idet.n + } ; + + CompIAdv a = a ; + CompIP p = ss (p.s) ; + + -- PrepIP p ip = {s = p.s ++ ip.s } ; + + +} diff --git a/lib/src/amharic/RelativeAmh.gf b/lib/src/amharic/RelativeAmh.gf new file mode 100644 index 000000000..9558ba0d3 --- /dev/null +++ b/lib/src/amharic/RelativeAmh.gf @@ -0,0 +1,58 @@ +concrete RelativeAmh of Relative = CatAmh ** open ResAmh in { +---- +---- flags optimize=all_subs ; +---- +---- lin +---- +---- RelCl cl = { +---- s = \\t,a,p,_ => "سُعه" ++ "تهَت" ++ cl.s ! t ! a ! p ! ODir +---- } ; +---- +---- RelVP rp vp = { +---- s = \\t,ant,b,ag => +---- let +---- agr = case rp.a of { +---- RNoAg => ag ; +---- RAg a => a +---- } ; +---- cl = mkClause (rp.s ! Nom) agr vp +---- in +---- cl.s ! t ! ant ! b ! ODir +---- } ; +---- +---- RelSlash rp slash = { +---- s = \\t,a,p,_ => slash.c2 ++ rp.s ! Acc ++ slash.s ! t ! a ! p ! ODir +---- } ; +---- +---- FunRP p np rp = { +---- s = \\c => np.s ! c ++ p.s ++ rp.s ! Acc ; +---- a = RAg np.a +---- } ; +---- +---- IdRP = mkIP "وهِعه" "وهِعه" "وهْسي" Sg ** {a = RNoAg} ; + + +{- + +-- The simplest way to form a relative clause is from a clause by +-- a pronoun similar to "such that". + + RelCl : Cl -> RCl ; -- such that John loves her + +-- The more proper ways are from a verb phrase +-- (formed in [``Verb`` Verb.html]) or a sentence +-- with a missing noun phrase (formed in [``Sentence`` Sentence.html]). + + RelVP : RP -> VP -> RCl ; -- who loves John + RelSlash : RP -> ClSlash -> RCl ; -- whom John loves + +-- Relative pronouns are formed from an 'identity element' by prefixing +-- or suffixing (depending on language) prepositional phrases or genitives. + + IdRP : RP ; -- which + FunRP : Prep -> NP -> RP -> RP ; -- the mother of whom + + +-} +---- +} diff --git a/lib/src/amharic/ResAmh.gf b/lib/src/amharic/ResAmh.gf new file mode 100644 index 000000000..bea4c5bdf --- /dev/null +++ b/lib/src/amharic/ResAmh.gf @@ -0,0 +1,1251 @@ + +--# -path=.:../abstract:../common:../../prelude + + +-- (c) 2010 Markos KG +-- Licensed under LGPL + + +resource ResAmh = PatternsAmh** open Prelude,MorphoAmh,ParamX in { +--PatternsAmh ** open Prelude in { + + flags coding = utf8; + + param + Species = Def | Indef ; + -- Number = Sg | Pl ; --Sg | Pl --ParamX ** + -- Gen = Gp1Sg | Gp1Pl | Gp2Sg Gender | Gp2Pl | Gp3Sg Gender | Gp3Pl ; betih == ye ante bet + + Case = Nom | Acc | Gen | Dat ; ---source : 'Grammar of the Amharic Language' - Revised on Jun 10th 2010 for the addition of the Dative case + Gender = Masc | Fem ; -- the Amharic nouns have but two genders Masculine and Feminine + --Person = P1 | P2 | P3 ; -- P1 | P2 | P3 ParamX ** + --PerNumGen = Vp1Sg | Vp1Pl | Vp2Sg Gender | Vp2Pl | Vp3Sg Gender | Vp3Pl ; + + PerNumGen = Per1 Number| Per2 Number Gender |Per3 Number Gender ; + + VForm = Perf |Imperf |Jus_Imperat|Gerund|Infinitive|Parti|CompPerf|Cont ; + + Voice = Act | Pas ; + + --Polarity = Pos | Neg; + + --QForm = QDir | QIndir ; + + TenseAmh = PresFut |SimplePast|PresPerf | PastPerf | PresCont | PastCont; + + + +-- + -- Agr = Ag Gender Number Person ; + + -- To count the length of a tail in a sequence of digits, e.g. to put commas + -- as in 1,000,000. + + -- DTail = T1 | T2 | T3 ; -- ParamX + + + oper + + Agr = { png : PerNumGen ; isPron : Bool}; + + Obj : Type = { + s : Str ; + a : Agr + }; + + Verb : Type = { + s : VForm =>Voice => PerNumGen => Str + } ; -- {s : s : VForm => PerNumGen => Str ; aux : Aux} ; + + V0,VS, VQ, VA, V2A ,V2V, V2S, V2Q = Verb ; -- = {s : VForm => Str} ;-- {s : Tense => VPerNumGen => Str } ; + V2= Verb ** {c2 : Prep} ; + + V3 = ResAmh.Verb ** {c2, c3 : Prep} ; + + + + Noun : Type = { + s : Number => Species => Case => Str ; + g : Gender + } ; + N2 = {s : Number => Species => Case => Str ; + g : Gender} ** {c2 : Str} ; + + N3 = {s : Number => Species => Case => Str ; + g : Gender} ** {c2,c3 : Str} ; + + Adjective : Type = { + s : Gender => Number => Species => Case => Str + } ; + Verb2 : Type = Verb ;---- {v : Verb ; obj : Str} ; + + VP : Type = { + s : TenseAmh => Polarity =>PerNumGen => Str ; + obj : Obj ; + pred: Comp; --- DO or IO Liju + imp : Str; + isPred : Bool; + inf: Str; --indicates if there is a predicate + s2 : Str + } ; + + Comp = {s : AmhAgr => Case => Str} ; + + AmhAgr = { g : Gender ; n : Number } ; -- species later addition + + + VPSlash = VP ** {c2 : Prep} ; + + S = {s : Str} ; + + Cl : Type = { s : TenseAmh => Polarity => Str}; + + QCl = {s : TenseAmh => Polarity => Str} ; + + ClSlash : Type = { + s : TenseAmh => Polarity => Str ; + c2 : Prep + } ; +-- FIX ME : addition of the isPron -- DONE + + NP = { + s : Case => Str ; + a : Agr + + } ; + -- Adjective + + AP : Type = { + s: Gender => Number => Species => Case => Str + + } ; + + Quant = { + s : Number => Gender => Case => Str; + d : Species; + isNum : Bool; + isPron: Bool + } ; + + Det : Type = { + s : Gender => Case => Str ; + d : Species; + n : Number; + isNum : Bool; + isPron : Bool + } ; + + PN : Type = { + s : Case => Str; + g : Gender + } ; + + Predet : Type = { + s : Case => Str; + isDecl : Bool + }; + + Prep = {s : Str ; s2:Str ; isPre : Bool} ; + + + CAdv : Type = { s: Str}; + + -- Numeral + + Numeral = { + s : CardOrd=>Gender=>Number=>Species=>Case => Str + + } ; + + Digits = { + s : CardOrd=>Gender=>Number=>Species=>Case => Str ; + tail : DTail + } ; + + Ord = {s : Gender=>Number=>Species=>Case => Str} ; + + + Num = {s : Species=>Case => Str ; + n : Number ; + hasCard : Bool} ; + + Card = {s : Gender => Number=>Species=>Case => Str ; -- Decision with Number grr...should not be like this but should be. TO DO + } ; + + Imp = {s : Polarity => Gender => Number => Str} ; + + IP = {s : Str ; n : Number} ; + + IDet = {s : Case => Str ; n : Number} ; + + IQuant = {s : Number => Str} ; + + + Conj = {s1,s2 : Str ; n : Number} ; + + + Pattern2 : Type = {C1,C1C2,C2: Str}; + Pattern3 : Type = {C1,C1C2,C2C3,C3 : Str}; + Pattern4 : Type = {C1,C1C2,C2C3,C3C4,C4 : Str}; + Root2 : Type = {C1,C2: Str}; + Root3 : Type = Root2 ** {C3 : Str}; + Root4 : Type = Root3 ** {C4 : Str}; + + + + -- N O U N + + {-Note: the declension of Nouns is very simple and uniform. Nouns are inflected through four Cases, equally in the singular and the plural,ie. the Nominative, the Genetive, Dative and Accusative. + + One example may suffice to show the while mode of proceeding + sing plural + Nom: bEt - a house bEtoc - houses + Gen: yebEt - of a house, a house's yebEtoc - of houses + Dat: lebEt - to a house lebEtoc - to houses + Acc: bEtn- a house bEtocn - houses + -} + + + + mkNoun : (x1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,x16 : Str) -> Gender -> Noun = + \sdn,sda,sdg,sdd,sin,sia,sig,sid,pdn,pda,pdg,pdd,pin,pia,pig,pid,g -> { + s = table { + + Sg => table { + Def => table + { + Nom => sdn ; + Acc => sda ; + Gen => sdg ; + Dat => sdd + }; + Indef => table + { + Nom => sin ; + Acc => sia ; + Gen => sig ; + Dat => sid + } + } ; + + Pl => table { + Def=> table + { + Nom => pdn ; + Acc => pda ; + Gen => pdg ; + Dat => pdd + }; + Indef => table + { + Nom => pin ; + Acc => pia ; + Gen => pig ; + Dat => pid + } + } + + } ; g = g + } ; + +-- most amharic nouns follow the Masc trend so... + + + regN : Str -> Noun = + \bEt -> + let bE = init bEt + in + mkNoun (bE + replaceLastLet6_2_M (last bEt)) + (bE + replaceLastLet6_2_M (last bEt)+"ን") + ("የ"+bE + replaceLastLet6_2_M (last bEt)) + ("ለ"+bE + replaceLastLet6_2_M (last bEt)) + bEt + (bEt+"ን") + ("የ"+bEt) + ("ለ"+bEt) + (bE + init(replaceLastLet6_7(last bEt))+replaceLastLet6_2_M (replaceLastLet6_7(last bEt)) ) + ((bE + init(replaceLastLet6_7(last bEt)) +replaceLastLet6_2_M(replaceLastLet6_7(last bEt)))+"ን") + ("የ"+(bE + init(replaceLastLet6_7(last bEt))+replaceLastLet6_2_M (replaceLastLet6_7(last bEt)) )) + ("ለ"+(bE + init(replaceLastLet6_7(last bEt))+replaceLastLet6_2_M (replaceLastLet6_7(last bEt)) )) + (bE + replaceLastLet6_7 (last bEt)) + (bE+replaceLastLet6_7 (last bEt)+"ን") + ("የ"+bE + replaceLastLet6_7 (last bEt)) + ("ለ"+bE + replaceLastLet6_7 (last bEt)) + Masc ; + + + regN2 : Str -> Gender -> Noun = \root,g -> + case root of { + bE + t@? => table { + Masc => mkNoun (bE + replaceLastLet6_2_M (t)) + (bE + replaceLastLet6_2_M (t)+"ን") + ("የ"+bE + replaceLastLet6_2_M (t)) + ("ለ"+bE + replaceLastLet6_2_M (t)) + root + (root+"ን") + ("የ"+root) + ("ለ"+root) + (bE + init(replaceLastLet6_7(t))+replaceLastLet6_2_M (replaceLastLet6_7(t)) ) + ((bE + init(replaceLastLet6_7(t))+replaceLastLet6_2_M (replaceLastLet6_7(t)))+"ን") + ("የ"+(bE + init(replaceLastLet6_7(t))+replaceLastLet6_2_M (replaceLastLet6_7(t)) )) + ("ለ"+(bE + init(replaceLastLet6_7 (t))+replaceLastLet6_2_M (replaceLastLet6_7(t)) )) + (bE + replaceLastLet6_7 (t)) + (bE+replaceLastLet6_7 (t)+"ን") + ("የ"+bE + replaceLastLet6_7 (t)) + ("ለ"+bE + replaceLastLet6_7 (t)) g; + + Fem => mkNoun (bE + replaceLastLet6_2_F (t)) + (bE + replaceLastLet6_2_F (t)+"ን") + ("የ"+bE + replaceLastLet6_2_F (t)) + ("ለ"+bE + replaceLastLet6_2_F (t)) + root + (root+"ን") + ("የ"+root) + ("ለ"+root) + (bE + init(replaceLastLet6_7(t))+replaceLastLet6_2_M (replaceLastLet6_7(t)) ) + ((bE + init(replaceLastLet6_7(t))+replaceLastLet6_2_M (replaceLastLet6_7(t)))+"ን") + ("የ"+(bE + init(replaceLastLet6_7(t))+replaceLastLet6_2_M (replaceLastLet6_7(t)) )) + ("ለ"+(bE + init(replaceLastLet6_7(t))+replaceLastLet6_2_M (replaceLastLet6_7(t)) )) + (bE + replaceLastLet6_7 (t)) + (bE+replaceLastLet6_7 (t)+"ን") + ("የ"+bE + replaceLastLet6_7 (t)) + ("ለ"+bE + replaceLastLet6_7 (t)) g + } ! g + }; + + + compN : Noun -> Noun -> Noun ; + + compN x y = + { + s = \\N,S,C => case C of + { + Gen|Dat => x.s ! Sg ! Indef!C++ y.s ! N ! S ! Nom ; + _ => x.s ! Sg ! Indef!Nom ++ y.s ! N ! S !C + }; + g = y.g; + lock_N = <> + } ; + + + + + + --PN + + preOrPost2 : Bool -> Str-> Str -> Str -> Str = \pr,x,y,z -> + if_then_Str pr (x ++ y) (x ++ y ++ z) ; + + + affix : Case => Str = + table { + + Acc => "ን"; + Gen => "የ"; + Dat =>"ለ"; + _ => "" + }; + + + + mkPN : Str -> Gender -> PN = \ str,gen -> + + { + s = \\c =>case c of + { + Gen|Dat => affix!c + str; + _ => str + affix!c + }; + + g = gen; + + lock_PN = <> + }; + + + mkPredet : Str -> Bool -> Predet = \word,decl -> + + { + s = \\c => + case decl of { + True => case c of + { + Gen|Dat => affix!c + word; + _ => word + affix!c + }; + False => word + }; + isDecl = decl + }; + + mkPrep : Str -> Str-> Bool -> Prep = \word1,word2,ispre -> + { + s = word1; s2 = word2; + isPre = ispre + }; + + + + + + mk2Conj : Str -> Str -> Number -> Conj = \x,y,n -> + + lin Conj (sd2 x y ** {n = n}) ; + +mkConj = overload { + mkConj : Str -> Conj = \y -> mk2Conj [] y Pl ; + mkConj : Str -> Number -> Conj = \y,n -> mk2Conj [] y n ; + mkConj : Str -> Str -> Conj = \x,y -> mk2Conj x y Pl ; + mkConj : Str -> Str -> Number -> Conj = mk2Conj ; + } ; + + + mkConj : overload { + mkConj : Str -> Conj ; -- and (plural agreement) + mkConj : Str -> Number -> Conj ; -- or (agrement number given as argument) + mkConj : Str -> Str -> Conj ; -- both ... and (plural) + mkConj : Str -> Str -> Number -> Conj ; -- either ... or (agrement number given as argument) + } ; + + mkIP : Str -> Number -> {s : Str ; n : Number} = \s,n -> {s = s ; n = n} ; + + --mkAdv : Str -> C.Adv = \x -> { s = x}; + + mkN2 : Noun -> Prep -> N2; + + mkN2 = \n,p -> lin N2 (n ** {c2 = p.s}) ; + + mkN3 : Noun -> Prep -> Prep -> N3 ; + + mkN3 = \n,p,q -> lin N3 (n ** {c2 = p.s ; c3 = q.s}) ; + + + + + +--Adjective = {s : Gender (mf) => Number(sp) =>Species (di)=> Case (nagd) => Str} ; +mkAdjective : (x1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,x32 : Str)-> Adjective = + \msdn,msda,msdg,msdd,msin,msia,msig,msid,mpdn,mpda,mpdg,mpdd,mpin,mpia,mpig,mpid, + fsdn,fsda,fsdg,fsdd,fsin,fsia,fsig,fsid,fpdn,fpda,fpdg,fpdd,fpin,fpia,fpig,fpid-> { + s = table { + + Masc => table { + Sg=> table + { + Def=> table + { + Nom => msdn ; + Acc => msda ; + Gen => msdg ; + Dat => msdd + }; + Indef=> table + { + Nom => msin ; + Acc => msia ; + Gen => msig ; + Dat => msid + } + }; + Pl=> table + { + Def=> table + { + Nom => mpdn ; + Acc => mpda ; + Gen => mpdg ; + Dat => mpdd + }; + Indef=> table + { + Nom => mpin ; + Acc => mpia ; + Gen => mpig ; + Dat => mpid + } + } + } ; + + Fem => table { + Sg=> table + { + Def=> table + { + Nom => fsdn ; + Acc => fsda ; + Gen => fsdg ; + Dat => fsdd + }; + Indef=> table + { + Nom => fsin ; + Acc => fsia ; + Gen => fsig ; + Dat => fsid + } + }; + Pl=> table + { + Def=> table + { + Nom => fpdn ; + Acc => fpda ; + Gen => fpdg ; + Dat => fpdd + }; + Indef=> table + { + Nom => fpin ; + Acc => fpia ; + Gen => fpig ; + Dat => fpid + } + } + } + + } + } ; + +-- most amharic nouns follow the Masc trend so... + + regAdj : Str -> Adjective = + \qey -> + let qe = init qey + in + + mkAdjective (qe + replaceLastLet6_2_M (last qey)) + (qe + replaceLastLet6_2_M (last qey)+"ን") + ("የ"+qe + replaceLastLet6_2_M (last qey)) + ("ለ"+qe + replaceLastLet6_2_M (last qey)) + qey + (qey+"ን") + ("የ"+qey) + ("ለ"+qey) + (qe + init(replaceLastLet6_7(last qey))+replaceLastLet6_2_M (replaceLastLet6_7(last qey)) ) + ((qe + init(replaceLastLet6_7(last qey))+replaceLastLet6_2_M (replaceLastLet6_7(last qey)))+"ን") + ("የ"+(qe + init(replaceLastLet6_7(last qey))+replaceLastLet6_2_M (replaceLastLet6_7(last qey)) )) + ("ለ"+(qe + init(replaceLastLet6_7 (last qey))+replaceLastLet6_2_M (replaceLastLet6_7(last qey)) )) + (qe + replaceLastLet6_7 (last qey)) + (qe+replaceLastLet6_7 (last qey)+"ን") + ("የ"+qe + replaceLastLet6_7 (last qey)) + ("ለ"+qe + replaceLastLet6_7 (last qey)) + (qe + replaceLastLet6_2_F (last qey)) + (qe + replaceLastLet6_2_F (last qey)+"ን") + ("የ"+qe + replaceLastLet6_2_F (last qey)) + ("ለ"+qe + replaceLastLet6_2_F (last qey)) + qey + (qey+"ን") + ("የ"+qey) + ("ለ"+qey) + (qe + init(replaceLastLet6_7(last qey))+replaceLastLet6_2_M (replaceLastLet6_7(last qey)) ) + ((qe + init(replaceLastLet6_7(last qey))+replaceLastLet6_2_M (replaceLastLet6_7(last qey)))+"ን") + ("የ"+(qe + init(replaceLastLet6_7(last qey))+replaceLastLet6_2_M (replaceLastLet6_7(last qey)) )) + ("ለ"+(qe + init(replaceLastLet6_7(last qey))+replaceLastLet6_2_M (replaceLastLet6_7(last qey)) )) + (qe + replaceLastLet6_7 (last qey)) + (qe+replaceLastLet6_7 (last qey)+"ን") + ("የ"+qe + replaceLastLet6_7 (last qey)) + ("ለ"+qe + replaceLastLet6_7 (last qey)) ; + + + mkAdjyh : Str -> Adjective = + + \yh -> + + mkAdjective (yh+"ኛው") + (yh+"ኛው"+"ን") + "የዚህኛው" + "ለዚህኛው" + yh + (yh+"ን") + "የዚህ" + "ለዚህ" + "እነዚኞቹ" + "እነዚኞቹን" + "የእነዚኞቹ" + "ለእነዚኞቹ" + "እነዚህ" + "እነዚህን" + "የእነዚህ" + "ለእነዚህ" + (yh+"ች"+"ኛዋ") + (yh+"ች"+"ኛዋ"+"ን") + "የዚህችኛዋ" + "ለዚህችኛዋ" + (yh+"ች") + (yh+"ችን") + "የዚህች" + "ለዚህች" + "እነዚኞቹ" + "እነዚኞቹን" + "የእነዚኞቹ" + "ለእነዚኞቹ" + "እነዚህ" + "እነዚህን" + "የእነዚህ" + "ለእነዚህ" ; + + mkAdjya : Str -> Adjective = + + \ya -> + + mkAdjective (ya+"ኛው") + (ya+"ኛው"+"ን") + "የዛኛው" + "ለዛኛው" + ya + (ya+"ን") + "የዛ" + "ለዛ" + "እነዚያኞቹ" + "እነዚያኞቹን" + "የእነዚያኞቹ" + "ለእነዚያኞቹ" + "እነዚያ" + "እነዚያን" + "የእነዚያ" + "ለእነዚያ" + (ya+"ች"+"ኛዋ") + (ya+"ች"+"ኛዋ"+"ን") + "የዛችኛዋ" + "ለዛችኛዋ" + (ya+"ች") + (ya+"ችን") + "የዛች" + "ለዛች" + "እነዚያኞቹ" + "እነዚያኞቹን" + "የእነዚያኞቹ" + "ለእነዚያኞቹ" + "እነዚያ" + "እነዚያን" + "የእነዚያ" + "ለእነዚያ" ; + + + + mkDet : Adjective -> Number -> Species -> Det + = \word,num,species -> + { s = \\g,c => word.s ! g ! num ! species ! c; + d = species; -- + n = num; + isNum = False; + isPron = False + }; + + + mkQuant : Adjective ->Species -> Quant = + \word,species -> + + { s = \\n,g,c =>word.s! g ! n ! species ! c ; + d = species; + isPron = False; + isNum = False; + + }; + + + + + +pronNP : (N,A,G,D : Str) -> PerNumGen -> NP = \N,A,G,D,png-> { + s = table { + Nom => N ; + Acc => A ; + Gen => G ; + Dat => D + } ; + a = {png = png ; isPron = True} + } ; + + + -- Adverbs + + + -- (head (qey)+head(tail(qey))+"አ"+tail(qey)) --- why couldn't this be working while head and tail are still in the prelude libray. + + +---------------------- +-- Verb + + getRoot4 : Str -> Root4 = \s -> case s of { + C1@? + C2@? + C3@?+C4 => {C1 = C1 ; C2 = C2 ; C3 = C3;C4 = C4} ; + _ => Predef.error ("cannot get root from" ++ s) + } ; + + appPattern4 : Root4 -> Pattern4 -> Str = \r,p -> + p.C1 + r.C1 + p.C1C2 + r.C2 + p.C2C3 + r.C3 + p.C3C4+ r.C4 + p.C4 ; + + getRoot3 : Str -> Root3 = \s -> case s of { + C1@? + C2@? + C3 => {C1 = C1 ; C2 = C2 ; C3 = C3} ; + _ => Predef.error ("cannot get root from" ++ s) + } ; + + appPattern3 : Root3 -> Pattern3 -> Str = \r,p -> + p.C1 + r.C1 + p.C1C2 + r.C2 + p.C2C3 + r.C3 + p.C3 ; + + appPattern3PasPer : Root3 -> Pattern3 -> Str = \r,p -> + "t'" + r.C1 + "!" + r.C2 + "'" + r.C3 + p.C3 ; + + appPattern3PasImp : Root3 -> Pattern3 -> Str = \r,p -> + p.C1 + r.C1 + "!" + r.C2 + "'" + r.C3 + p.C3 ; + + getRoot2 : Str -> Root2 = \s -> case s of { + C1@? + C2 => {C1 = C1 ; C2 = C2} ; + _ => Predef.error ("cannot get root from" ++ s) + } ; + + appPattern2 : Root2 -> Pattern2 -> Str = \r,p -> + p.C1 + r.C1 + p.C1C2 + r.C2 + p.C2; + + + --remove the first letter + appPatternRemove : Root3 -> Pattern3 -> Str = \r,p -> + p.C1 +"ä"+ p.C1C2 + r.C2 + p.C2C3 + r.C3 + p.C3 ; + --palatalization + + appPattern2pal : Root2 -> Pattern2 -> Str = \r,p -> + p.C1 + r.C1 + p.C1C2 + pallatalize (r.C2) + p.C2; + appPattern3pal : Root3 -> Pattern3 -> Str = \r,p -> + p.C1 + r.C1 + p.C1C2 + r.C2 + p.C2C3 + pallatalize (r.C3) + p.C3 ; + appPattern4pal : Root4 -> Pattern4 -> Str = \r,p -> + p.C1 + r.C1 + p.C1C2 + r.C2 + p.C2C3 + r.C3 + p.C3C4+ pallatalize (r.C4) + p.C4 ; + + + suffixDef : PerNumGen => Str = + table { + Per1 Sg => "t" ; + Per1 Pl => "'w"; + Per2 Sg Masc => "w"; + Per2 Sg Fem => "w"; + Per2 Pl _ => "t" ; + Per3 Sg Masc => "w"; + Per3 Sg Fem => "w"; + Per3 Pl _ => "t" + } ; + + + suffixObjPres : Str-> (PerNumGen => Str) = \str-> + table { + Per1 Sg => str++"N" ; + Per1 Pl => str++"n"; + Per2 Sg Masc => str++"k"; + Per2 Sg Fem => str++"x"; + Per2 Pl _ => str++"Ach&" ; + Per3 Sg Masc => str++"w"; + Per3 Sg Fem => str++"!t"; + Per3 Pl _ => str++"Ac'w" + } ; + + suffixObjPast : Str-> (PerNumGen => Str) = \str-> + table { + Per1 Sg => str++"&+"++"N" ; -- test: + Per1 Pl => str++"&+"++"n"; + Per2 Sg Masc => str++"&+"++"k"; + Per2 Sg Fem => str++"&+"++"x"; + Per2 Pl _ => str++"&+"++"Ach&" ; + Per3 Sg Masc => str++"&+"++"w"; + Per3 Sg Fem => str++"&+"++"!t"; + Per3 Pl _ => str++"&+"++"Ac'w" + } ; + + suffixPos : PerNumGen => Str = + table { + Per1 Sg => "y7" ; + Per1 Pl => "Acn"; + Per2 Sg Masc => "h"; + Per2 Sg Fem => "x"; + Per2 Pl _ => "Ach&" ; + Per3 Sg Masc => "&"; + Per3 Sg Fem => "w!"; + Per3 Pl _=> "Ac!w" + } ; + + reflPron : PerNumGen => Str = + table + { + + Per1 Sg => "ራሴ" ; + Per1 Pl => "ራሳችን"; + Per2 Sg Masc => "ራስህ"; + Per2 Sg Fem => "ራስሽ"; + Per2 Pl _ => "ራሳችሁ" ; + Per3 Sg Masc => "ራሱ"; + Per3 Sg Fem => "ራሷ"; + Per3 Pl _ => "ራሳቸው" + } ; + + + predV :Verb -> VP = \v -> + + { + + s = \\t,p,png => + + let + + ketebku = v.s ! Perf !Act! png ; -- + eketbalehu = v.s ! Imperf !Act! png ;-- + keteb = v.s ! Jus_Imperat !Act! png ; -- imperative + ketbie = v.s ! Gerund !Act! png ; -- + mekteb = v.s ! Infinitive !Act! png ; -- + ketabi = v.s ! Parti !Act! png ; + ketbiealehu = v.s ! CompPerf !Act! png ; -- + eketib = v.s ! Cont !Act! png ; -- just play with the actives for now + + in + + case of { + + + + => eketbalehu ; + => "!" ++"&+"++ eketib ++"&+" ++"m" ;-- case for I is unique but sticking to the general trend + => ketbiealehu; + => "!l"++"&+"++ketebku++"&+"++"m"; + => "(y'"++ "&+"++ketebku ++"n'w" ; + => "(y'"++ "&+"++ketebku ++"Ayd'l'm" ; + => ketebku; + => "!l"++"&+"++ketebku++"&+"++"m"; + => ketbie ++ "n'b'r"; + => "!l"++"&+"++ketebku++"&+"++"m"++"n'b'r"; + => "(y'"++ "&+"++ketebku ++ "n'b'r" ; + => "(y'"++ "&+"++ketebku ++ "Aln'b'r'm" + + + }; + + obj = { + s = [] ; + a = {png = Per3 Sg Masc ; isPron = False} + }; + s2 = []; + imp = v.s ! Jus_Imperat!Act !Per2 Sg Masc ; + inf = v.s ! Infinitive ! Act ! Per3 Sg Masc ;-- or any + pred = { s = \\_,_ => []}; + isPred = False + + + }; + + predVc : V2 -> VPSlash = \v2 -> + predV v2 ** {c2 = v2.c2} ; + + insertObj : NP -> VP -> VP = \np,vp -> + { s = vp.s; + obj = {s = np.s ! Acc ; a = np.a}; + s2 = vp.s2; + pred = vp.pred; + inf = vp.inf; + imp = vp.imp ; + isPred = vp.isPred + }; + + + + insertPred : {s : AmhAgr => Case => Str} -> VP -> VP = \p,vp -> + { s = vp.s; + obj = vp.obj; + s2 = vp.s2; + imp = vp.imp ; + inf = vp.inf; + pred = p; + isPred = True + }; + + insertStr : Str -> VP -> VP = \str,vp -> + { s = vp.s; + obj = vp.obj; + s2 = str; + imp = vp.imp ; + inf = vp.inf; + pred = vp.pred; + isPred = vp.isPred + }; + + + + +{- + + insertObjPre : (PerNumGen => Str) -> VP -> VP = \obj,vp -> { + s = vp.s ; + obj = vp.s ! obj; + pred = vp.pred; + isPred = vp.isPred + + + } ; + + insertObj : (Agr => Str) -> VP -> VP = \obj,vp -> { + s = vp.s ; + prp = vp.prp ; + inf = vp.inf ; + ad = vp.ad ; + s2 = \\a => vp.s2 ! a ++ obj ! a + } ; + + insertObjPre : (PerNumGen => Str) -> VP -> VP = \obj,vp -> { + s = vp.s ; + prp = vp.prp ; + inf = vp.inf ; + ad = vp.ad ; + s2 = \\a => obj ! a ++ vp.s2 ! a + } ; + + + insertObjc : (Agr => Str) -> SlashVP -> SlashVP = \obj,vp -> + insertObj obj vp ** {c2 = vp.c2} ; + +-} + + +-- impVP : VP -> PerNumGen -> Str = \vp,a -> + -- vp.imp ! a; + + + mkV2 : Verb -> Prep -> V2 = \ v, p -> + lin V2 (v ** {c2 = p ; lock_V2 = <>}) ; + + mkV3 : Verb -> Prep -> Prep -> V3 = \ v, p ,q -> + lin V3 (v ** {c2 = p ; c3 = q ; lock_V3 = <>} ); + +------ +-- For Sentence + +-- Transformations between parameter types + + + + png2gn : PerNumGen -> {g : Gender; n : Number} = \png -> + case png of { + Per3 nm gn => {g = gn; n = nm}; + Per2 nm gn => {g = gn; n = nm}; + _ => {g = Masc; n = Sg} --randomly + }; + + + + + toAgr : Number -> Person -> Gender -> PerNumGen = \n,p,g -> + case p of { + P1 => Per1 n ; + P2 =>case n of { + Sg => Per2 Sg g ; + Pl => Per2 Pl g + }; + P3 => case n of { + Sg => Per3 Sg g ; + Pl => Per3 Pl g + } + } ; + + fromAgr : PerNumGen -> {n : Number ; p : Person ; g : Gender} = \png -> case png of { + Per1 n => {n = n ; p = P1 ; g = Masc} ; -- random (Ramona) + Per2 Pl g => {n = Pl ; p = P2 ; g = Masc} ; + Per2 Sg g => {n = Sg ; p = P2 ; g = g} ; + Per3 Sg g => {n = Sg ; p = P3 ; g = g} ; + Per3 Pl g => {n = Pl ; p = P3 ; g = Masc} + } ; + + agrP3 : Number -> PerNumGen = \n -> agrgP3 n Masc ; + + agrgP3 : Number -> Gender -> PerNumGen = \n,g -> toAgr n P3 g ; + + conjAgr : PerNumGen -> PerNumGen -> PerNumGen = \a0,b0 -> + let a = fromAgr a0 ; b = fromAgr b0 + in + toAgr + (conjNumber a.n b.n) + (conjPerson a.p b.p) a.g ; + + + +{- + infVP : Bool -> VP -> Agr -> Str = \isAux,vp,a -> + vp.ad ++ vp.inf ++ vp.s2 ! a + ;-} + + + + + + + + mkClause : Str -> PerNumGen -> VP -> Cl = + \subj,png,vp -> { + s = \\t,b => + let + verb = vp.s ! t !b ! png ; + obj = vp.obj.s; + gn = png2gn png ; + pred = vp.pred.s ! gn ! Nom -- Totawa / muzun / lita belach + + in + subj ++ obj ++ pred ++ verb ; + -- subj ++ obj ++ pred ++ suffixObjPast(verb) !vp.obj.a.png ; + + } ; + + + regNP : Str -> Number -> NP = \word,n -> + { + s = \\c =>case c of + { + Gen|Dat => affix!c + word; + _ => word + affix!c + }; + a = {png = Per3 n Masc ; isPron = False }; + lock_NP = <> + }; + + + mkDeterminer : Number -> Str -> {s : Case => Str; n : Number} = \n,s -> + { + s = affix2 s ; + n = n + } ; + + +-------- + -- speak, with, about + {-dirV3 : Verb -> Prep -> V3 = \ v,p -> + mkV3 v [] p.s ; -- give,_,to + dirdirV3 : Verb -> V3 = \ v -> + dirV3 v [] ; -- give,_,_ + mkV0 : Verb -> V0 = \ v -> + v ** {lock_V = <>} ; + mkVS : Verb -> VS = \ v -> + v ** {lock_VS = <>} ; + mkV2S : Verb -> Str -> V2S = \ v,p -> + mkV2 v p ** {lock_V2S = <>} ; + --mkV2V : V -> Str -> Str -> V2V = \ v,p,t -> + --mkV2 v p ** {s4 = t ; lock_V2V = <>} ; + mkVA : Verb -> VA = \ v -> + v ** {lock_VA = <>} ; + mkV2A : Verb -> Str -> V2A = \ v,p -> + mkV2 v p ** {lock_V2A = <>} ; + mkVQ : Verb -> VQ = \ v -> + v ** {lock_VQ = <>} ; + mkV2Q : Verb -> Str -> V2Q = \ v,p -> + mkV2 v p ** {lock_V2Q = <>} ; +-} + +--PerNumGen = Per1 Number| Per2 Number Gender |Per3 Number Gender ; + + +--- N U M E R A L S + + param CardOrd = NCard | NOrd ; + + param DForm = unit | ten ; + + oper affix2 : Str -> Case => Str = \str-> + + table { + + Gen => "የ" + str; + Dat => "ለ" + str; + Acc => str + "ን" ; + _ => str + }; + +-- This is as well a proposed solution to solve the confusion... + oper affix3 : Str -> Species => Case => Str= \str-> + table { + + + Def=> table + { + + Gen => "የ" + regOrdMasc(str); + Dat => "ለ" + regOrdMasc(str); + Acc => regOrdMasc(str) + "ን" ; + _ => regOrdMasc(str) + }; + + Indef=> table + { + Gen => "የ" + str; + Dat => "ለ" + str; + Acc => str + "ን" ; + _ => str + + } + + }; + + +--} + + adjaffix : Str -> Gender=>Number=>Species=>Case=> Str= \str-> + table { + + Masc => table { + Sg=> table + { + Def=> table + { + Gen => "የ" + regOrdMasc(str); + Dat => "ለ" + regOrdMasc(str); + Acc => regOrdMasc(str)+ "ን" ; + _ => regOrdMasc(str) + }; + Indef=> table + { + Gen => "የ" + str; + Dat => "ለ" + str; + Acc => str + "ን" ; + _ => str + } + }; + Pl=> table + { + Def=> table + { + Gen => "የ" + regordPlDef(str); + Dat => "ለ" + regordPlDef(str); + Acc => regordPlDef(str)+ "ን" ; + _ => regordPlDef(str) + }; + Indef=> table + { + Gen => "የ" + regOrdPlIndef(str); + Dat => "ለ" + regOrdPlIndef(str); + Acc => regOrdPlIndef(str)+ "ን" ; + _ => regOrdPlIndef(str) + } + } + } ; + + Fem => table { + Sg=> table + { + Def=> table + { + Gen => "የ" + regOrdFem(str); + Dat => "ለ" + regOrdFem(str); + Acc => regOrdFem(str)+ "ን" ; + _ => regOrdFem(str) + }; + Indef=> table + { + Gen => "የ" + str; + Dat => "ለ" + str; + Acc => str + "ን" ; + _ => str + } + }; + Pl=> table + { + Def=> table + { + Gen => "የ" + regordPlDef(str); + Dat => "ለ" + regordPlDef(str); + Acc => regordPlDef(str)+ "ን" ; + _ => regordPlDef(str) + }; + Indef=> table + { + Gen => "የ" + regOrdPlIndef(str); + Dat => "ለ" + regOrdPlIndef(str); + Acc => regOrdPlIndef(str)+ "ን" ; + _ => regOrdPlIndef(str) + } + } + } + + }; + + + + + oper regOrdMasc : Str -> Str = \str -> + case last str of + { + "ድ" => init str + "ዱ" ; + "ት" => init str + "ቱ" ; + "ኝ" => init str + "ኙ" ; + "ር" => init str + "ሩ" ; + _ => str+"ዉ" + } ; + + oper regOrdFem : Str -> Str = \ str -> + case last str of + { + "ድ" => init str + "ዷ" ; + "ት" => init str + "ቷ" ; + "ኝ" => init str + "ኟ" ; + "ር" => init str + "ሯ" ; + _ => str+"ዋ" + } ; + + oper regOrdPlIndef : Str -> Str = \ str -> + case last str of + { + "ድ" => init str + "ደኞች" ; + "ት" => init str + "ተኞች" ; + "ኝ" => init str + "ነኞች" ; + "ር" => init str + "ሮች" ; + _ => str+"ዎች" + } ; + + oper regordPlDef : Str -> Str =\ str -> + + case last str of +{ + "ድ" => init str + "ደኞቹ" ; + "ት" => init str + "ተኞቹ" ; + "ኝ" => init str + "ነኞቹ" ; + "ር" => init str + "ሮቹ" ; + _ => str+"ዎቹ" + +}; + + + + + oper regOrd : Str -> Str = \ten -> + case last ten of { + "ድ" => init ten + "ደኛ" ; + "ት" => init ten + "ተኛ" ; + "ኝ" => init ten + "ነኛ" ; + "ር" => init ten + "ረኛ" ; + _ => ten + "ኛ" + } ; + + oper regCardOrd : Str -> {s :CardOrd =>Gender=>Number=>Species=>Case=> Str} = \ten -> + {s = table { + NCard => adjaffix ten ; + NOrd => adjaffix (regOrd ten) + } + } ; + + + oper mkCard : CardOrd -> Str ->Gender=>Number=>Species=>Case=> Str = \o,ten -> + (regCardOrd ten).s ! o ; + + + + oper mkNum : Str -> Str -> Str -> {s : DForm => CardOrd =>Gender=>Number=>Species=>Case=> Str} = + \hulet,haya, huleteNa -> + {s = table { + unit => + table { + NCard => adjaffix hulet ; + NOrd => adjaffix huleteNa + } ; + + + ten => \\c => mkCard c haya + } + } ; + + + + oper mkQuestion : {s : Str} -> Cl -> {s : TenseAmh => Polarity => Str} = \wh,cl -> + { + s = \\t,p => wh.s ++ cl.s ! t ! p + }; + + +} diff --git a/lib/src/amharic/SentenceAmh.gf b/lib/src/amharic/SentenceAmh.gf new file mode 100644 index 000000000..981b0be00 --- /dev/null +++ b/lib/src/amharic/SentenceAmh.gf @@ -0,0 +1,69 @@ +--# -path=.:abstract:common:prelude +-- +concrete SentenceAmh of Sentence = CatAmh ** open + ResAmh, ParamX + in { +-- +-- + flags optimize=all_subs ; coding=utf8 ; +-- + lin + + + + + PredVP np vp = mkClause (np.s ! Nom) np.a.png vp ; + + SlashVP np vp = mkClause (np.s ! Nom) np.a.png vp ** {c2 = vp.c2} ; + + ImpVP vp = { + s = \\p,g,n => + case p of { + Pos => vp.obj.s ++ vp.imp ; + Neg => vp.obj.s ++ "አት" ++ "&+" ++ vp.imp + } + }; + +--ImpVP : VP -> Imp ; -- love yourselves + --FIXME, all tenses + + UseCl t ap cl = + let ss : Str = case t.t of + { + Pres => cl.s ! PresFut ! ap.p ; + Cond => cl.s ! PresFut ! ap.p ; + Past => cl.s ! SimplePast ! ap.p ; + Fut => cl.s ! PresFut ! ap.p + } + in { + + s = ss + }; + + + + + UseQCl t ap qcl = + + let ss : Str = case t.t of + { + Pres => qcl.s ! PresFut ! ap.p ; + Cond => qcl.s ! PresFut ! ap.p ; + Past => qcl.s ! SimplePast ! ap.p ; + Fut => qcl.s ! PresFut ! ap.p + } + in { + + s = ss + }; + + EmbedVP vp = {s = vp.obj.s ++ vp.inf} ; + + AdvS a s = {s = a.s ++ "፤" ++ s.s} ; + + SSubjS a s b = {s = b.s ++ s.s ++ a.s} ; + + + + +} diff --git a/lib/src/amharic/StructuralAmh.gf b/lib/src/amharic/StructuralAmh.gf new file mode 100644 index 000000000..13c5ffb8a --- /dev/null +++ b/lib/src/amharic/StructuralAmh.gf @@ -0,0 +1,127 @@ +--# -path=.:../Romance:../common:../abstract:../common:prelude +-- (c) 2010 Markos KG +-- Licensed under LGPL + + +concrete StructuralAmh of Structural = CatAmh ** + +open MorphoAmh, ResAmh, ParadigmsAmh,(C = ConstructX),ParamX, Prelude in { +-- +flags optimize=all ; coding=utf8 ; +-- +lin + + above_Prep = mkPrep "ከ" "በላይ" False; + after_Prep = mkPrep "ከ" "በኋላ" False; + all_Predet = mkPredet"ሁሉ" False ; + -- almost_AdA = ss "ገደማ"; + -- almost_AdN = ss "حَوَالي" ; -- or "تَقرِيبا" + although_Subj = ss "ይሁን እንጂ" ; + always_AdV = ss "ሁልጊዜ" ; + and_Conj = sd2 [] "እና" ** {n = Pl} ; --and_Conj = mkConj "እና" Pl ; -- and_Conj = ss "እና" ** {n = Pl} ; + because_Subj = ss "ሰለዚህ" ; + before_Prep = mkPrep "ከ" "በፊት " False ; + behind_Prep = mkPrep "ከ" "በስተጀርባ" False; + between_Prep = mkPrep "በ" "መካከል" False ; + both7and_DConj = sd2 "" "እና" ** {n = Pl} ; + but_PConj = ss "ነገር ግን" ; + by8means_Prep = mkPrep "በ" "" True ; + by8agent_Prep = mkPrep "" "ጋ" False ; + --can8know_VV, can_VV = { + --s = table VVForm [["بي َبلي تْ"] ; "عَن" ; "عُْلد" ; + ---- ["بّن َبلي تْ"] ; ["بِنغ َبلي تْ"] ; "عَنءت" ; "عُْلدنءت"] ; + ---- isAux = True + ---- } ; + -- during_Prep = mkPrep "ሳለ" ; + either7or_DConj = sd2 "ወይ " " ካለበለዚያ" ** {n = Sg} ; + everybody_NP = regNP "ሁሉምሰው" Sg ; + every_Det = mkDet (regAdj "እያንዳንዱ") Sg Indef ; + everything_NP = regNP "ሁሉነገር" Sg ; + everywhere_Adv = ss "በየቦታው" ; + few_Det = mkDet (regAdj "ጥቂት") Pl Indef ; + first_Ord = ss "መጀመሪያ" ; + from_Prep = mkPrep "ከ" ""True ; + he_Pron = pronNP "እርሱ" "እርሱን" "የእርሱ" "ለእርሱ" (Per3 Sg Masc) ; + here_Adv = ss "እዚህ" ; + here7to_Adv = ss "ወደዚህ" ; + here7from_Adv = ss "ከዚህ" ; + how_IAdv = ss "እንዴት" ; + how8many_IDet = mkDeterminer Pl ["ስንት"] ; + --if_Subj = ss "ِف" ; + in8front_Prep = mkPrep "ከ" "ፊትለፊት" False; + i_Pron = pronNP "እኔ" "እኔን" "የእኔ" "ለእኔ" (Per1 Sg) ; + in_Prep = mkPrep "" "ውስጥ" False; + it_Pron = pronNP "" "" "" "" (Per3 Sg Masc) ; + less_CAdv = C.mkCAdv "በ" "አነስ"; + many_Det = mkDet (regAdj "ብዙ") Pl Indef ; + more_CAdv = C.mkCAdv "በ" "ተሻለ"; + as_CAdv = C.mkCAdv "ልክ" "እንደ" ; + most_Predet = mkPredet "አብዛኛው" True ; + much_Det = mkDet (regAdj "ብዙ") Pl Indef ; + --must_VV = { + --s = table VVForm [["بي هَثي تْ"] ; "مُست" ; ["هَد تْ"] ; + ---- ["هَد تْ"] ; ["هَثِنغ تْ"] ; "مُستنءت" ; ["هَدنءت تْ"]] ; ---- + -- isAux = True + -- } ; + -- no_Utt = {s = \\_ => "لا"} ; + on_Prep = mkPrep "በ" "ላይ" False ; + --DEPREC one_Quant = mkQuantNum "واحِد" Sg Indef ; + only_Predet = mkPredet "ብቻ" False; + or_Conj = sd2 [] "ወይም" ** {n = Sg} ; + otherwise_PConj = ss "ካለበለዚያ" ; + -- part_Prep = mkPrep "مِنَ" ; + please_Voc = ss "ስለእግዚአብሐር" ; -- cant be here in structural : + -- possess_Prep = mkPrep "ل" ; + -- quite_Adv = ss "قُِتي" ; + she_Pron = pronNP "እርሷ" "እርሷን" "የእርሷ" "ለእርሷ" (Per3 Sg Fem) ; + so_AdA = ss "በጣም"; + somebody_NP = regNP "የሆነሰው" Sg ; + someSg_Det = mkDet (regAdj "የሆነ" ) Sg Indef ; + somePl_Det = mkDet (regAdj "ጥቂት" ) Pl Indef ; + something_NP = regNP "የሆነነገር" Sg ; + somewhere_Adv = ss "የሆነቦታ" ; + -- that_Quant = mkQuant3 "ذَلِكَ" "تِلكَ" "أُلٱِكَ" Def; + ------b that_NP = indeclNP "ذَلِكَ" Sg ; + for_Prep = mkPrep "ለ" "" False; + there_Adv = ss "እዚያ" ; + there7to_Adv = ss "ወደዚያ" ; + there7from_Adv = ss "ከዚያ" ; + therefore_PConj = ss "ሰለዚህ" ; + --b these_NP = indeclNP "هَؤُلَاء" Pl ; + they_Pron = pronNP "እነርሱ" "እነርሱን" "የእነርሱ" "ለእነርሱ" (Per3 Pl Masc) ; + --this_Quant = mkQuant7 "هَذا" "هَذِهِ" "هَذَان" "هَذَيْن" "هَاتَان" "هَاتَيْن" "هَؤُلَاء" Def; + this_Quant = mkQuant (mkAdjyh "ይህ") Indef ; + --these_Quant = adjDet (mkDetyh "ይህ") Pl False; + that_Quant = mkQuant (mkAdjya "ያ") Indef; + --those_Quant = adjDet (mkDetya "ያ") Pl False; + --b this_NP = indeclNP "هَذا" Sg ; + --b those_NP = indeclNP "هَؤُلَاءكَ" Pl ; + through_Prep = mkPrep "በ" "በኩል" False ; + too_AdA = ss "በጣም" ; + to_Prep = mkPrep "ወደ" "" True; + under_Prep = mkPrep "ከ" "ታች" False ; + very_AdA = ss "በጣም" ; + want_VV = mkV3mls"flg"; + we_Pron = pronNP "እኛ" "እኛን" "የእኛ" "ለእኛ" (Per1 Pl) ; + --whatPl_IP = mkIP "ماذا" Pl ; + --whatSg_IP = mkIP "ماذا" Sg ; + when_IAdv = ss "መቼ" ; + --when_Subj = ss "وهن" ; + where_IAdv = ss "የት" ; + which_IQuant = {s = \\_ =>"የምን"} ; + whichPl_IDet = mkDeterminer Pl ["የትኞቹ"] ; + whichSg_IDet = mkDeterminer Sg ["የትኛው"] ; + whoSg_IP = mkIP "ማን" Sg ; + whoPl_IP = mkIP "እነማን" Pl ; + why_IAdv = ss "ለምን" ; + without_Prep = mkPrep "ካለ" "" True ; + with_Prep = mkPrep "ከ" "ጋር" False ; + --yes_Utt = {s = \\_ => "نَعَم"} ; + youSg_Pron = pronNP "አንተ" "አንተን" "የአንተ" "ለአንተ" (Per2 Sg Masc); + youPl_Pron = pronNP "እናንተ" "እናንተን" "የእናንተ" "ለእናንተ" (Per2 Pl Masc); + youPol_Pron = pronNP "እርስዎ" "እርስዎን" "የእርስዎ" "ለእርስዎ" (Per3 Pl Masc) ; -- discuss this i the report : + have_V2 = mkV2 (mkV3al "äl") (mkPrep "" "" True); + -- dirV2 (regV "يَملِك") ; + lin language_title_Utt = ss "አማርኛ" ; + +} diff --git a/lib/src/amharic/SymbolAmh.gf b/lib/src/amharic/SymbolAmh.gf new file mode 100644 index 000000000..6ca5115f3 --- /dev/null +++ b/lib/src/amharic/SymbolAmh.gf @@ -0,0 +1,47 @@ +--# -path=.:../abstract:../common + +concrete SymbolAmh of Symbol = CatAmh ** open Prelude, ResAmh in { +-- +--{- +--lin +-- SymbPN i = {s = \\c => i.s ; g = Neutr} ; --- c +-- IntPN i = {s = \\c => i.s ; g = Neutr} ; --- c +-- FloatPN i = {s = \\c => i.s ; g = Neutr} ; --- c +-- NumPN i = {s = i.s ! Neutr ; g = Neutr} ; --- c +-- +-- CNIntNP cn i = { +-- s = \\c => cn.s ! Weak ! Sg ! Nom ++ i.s ; +-- a = agrP3 Sg ; +-- isPron = False +-- } ; +-- CNSymbNP det cn xs = let g = cn.g in { +-- s = \\c => det.s ! g ! c ++ cn.s ! adjfCase det.a c ! det.n ! c ++ xs.s ; +-- a = agrP3 det.n ; +-- isPron = False +-- } ; +-- CNNumNP cn i = { +-- s = \\c => artDef ! (GSg cn.g) ! c ++ cn.s ! Weak ! Sg ! Nom ++ i.s ! Neutr ! c ; +-- a = agrP3 Sg ; +-- isPron = False +-- } ; +-- +-- SymbS sy = {s = \\_ => sy.s} ; +-- +-- SymbNum n = {s = \\_,_ => n.s ; n = Pl ; isNum = True} ; +-- SymbOrd n = {s = \\_ => n.s ++ "።"} ; +-- +-- +--lincat +-- +-- Symb, [Symb] = SS ; +-- +--lin +-- +-- MkSymb s = s ; +-- +-- BaseSymb = infixSS "und" ; +-- ConsSymb = infixSS "," ; +---} +-- +} + diff --git a/lib/src/amharic/VerbAmh.gf b/lib/src/amharic/VerbAmh.gf new file mode 100644 index 000000000..b58a707f6 --- /dev/null +++ b/lib/src/amharic/VerbAmh.gf @@ -0,0 +1,331 @@ +concrete VerbAmh of Verb = CatAmh ** open Prelude,ParamX, ResAmh in { +-- + flags optimize=all_subs ; + coding = utf8; +-- + lin + + + UseV = predV ; + + SlashV2a v = predVc v ; + + Slash3V3 v np = insertObj np (predV v) ** {c2 = v.c2}; + + ComplSlash vp np = insertObj np vp ; + + CompAP ap = {s = \\amhagr,c => ap.s ! amhagr.g ! amhagr.n ! Indef ! c} ; --FIXME + + CompNP np = {s = \\_,c => np.s ! c}; + + CompAdv a = {s = \\_,_ => a.s} ; + + -- PassV2 : V2 -> VP ; -- be loved + PassV2 v2 = { + s = \\t,p,png => + + let + + teketebku = v2.s ! Perf !Pas! png ; -- + eketebalehu = v2.s ! Imperf !Pas! png ;-- + teketeb = v2.s ! Jus_Imperat !Pas! png ; -- imperative + teketbie = v2.s ! Gerund !Pas! png ; -- + meketeb = v2.s ! Infinitive !Pas! png ; -- + teketabi = v2.s ! Parti !Pas! png ; + teketbiealehu = v2.s ! CompPerf !Pas! png ; -- + eketeb = v2.s ! Cont !Pas! png ; -- just play with the actives for now + + in + + case of { + + + + => eketebalehu ; + => "!" ++"&+"++ eketeb ++"&+" ++"m" ;-- case for I is unique but sticking to the general trend + => teketbiealehu; + => "!l"++"&+"++teketebku++"&+"++"m"; + => "(y'"++ "&+"++teketebku ++"n'w" ; + => "(y'"++ "&+"++teketebku ++"Ayd'l'm" ; + => teketebku; + => "!l"++"&+"++teketebku++"&+"++"m"; + => teketbie ++ "n'b'r"; + => "!l"++"&+"++teketebku++"&+"++"m"++"n'b'r"; + => "(y'"++ "&+"++teketebku ++ "n'b'r" ; + => "(y'"++ "&+"++teketebku ++ "Aln'b'r'm" + + + }; + obj = { + s = [] ; + a = {png = Per3 Sg Masc ; isPron = False} + }; + s2 = []; + imp = v2.s ! Jus_Imperat!Act !Per2 Sg Masc; + inf = v2.s ! Infinitive ! Pas ! Per3 Sg Masc ; + pred = { s = \\_,_ => []}; + isPred = False + } ; + + -- AdvVP : VP -> Adv -> VP ; + + AdvVP vp adv = { + + s = \\t,p,pgn => adv.s ++ vp.s!t!p!pgn ; + + obj = vp.obj; + s2 = []; + imp = vp.imp ; + inf = vp.inf; + pred = { s = \\_,_ => []}; + isPred = False + }; + + + -- AdVVP : AdV -> VP -> VP ; -- always sleep + + + -- : Comp -> VP ; -- be warm -- +-- + UseComp comp = {s= \\t,p,png => + let + gn = png2gn png + + in + + case of { + + + => comp.s ! gn ! Nom ++ "ነኝ"; + => comp.s ! gn ! Nom ++ "አይደለሁም"; + => comp.s ! gn ! Nom ++"ነበርኩ"; + => comp.s ! gn ! Nom ++"አልነበርኩም"; + => comp.s ! gn ! Nom ++ "እየሆንኩ ነው"; + => comp.s ! gn ! Nom ++ "እየሆንኩ አይደለም"; + => comp.s ! gn ! Nom ++"ነበርኩ"; + => comp.s ! gn ! Nom ++ "አልነበርኩም"; + => comp.s ! gn ! Nom ++ "ነበርኩ"; + => comp.s ! gn ! Nom ++ "አልነበርኩም" ; + => comp.s ! gn ! Nom ++ "እየሆንኩ ነበር"; + => comp.s ! gn ! Nom ++ "እየሆንኩ አልነበረም"; + + + => comp.s ! gn ! Nom ++ "ነን"; + => comp.s ! gn ! Nom ++ "አይደለንም"; + => comp.s ! gn ! Nom ++"ነበርን"; + => comp.s ! gn ! Nom ++"አልነበርንም"; + => comp.s ! gn ! Nom ++ "እየሆንን ነው"; + => comp.s ! gn ! Nom ++ "እየሆንን አይደለም"; + => comp.s ! gn ! Nom ++"ነበርን"; + => comp.s ! gn ! Nom ++ "አልነበርንም"; + => comp.s ! gn ! Nom ++ "ነበርን"; + => comp.s ! gn ! Nom ++ "አልነበርንም" ; + => comp.s ! gn ! Nom ++ "እየሆንን ነበር"; + => comp.s ! gn ! Nom ++ "እየሆንን አልነበረም"; + + + => comp.s ! gn ! Nom ++ "ነህ"; + => comp.s ! gn ! Nom ++ "አይደለህም"; + => comp.s ! gn ! Nom ++"ነበርክ"; + => comp.s ! gn ! Nom ++"አልነበርክም"; + => comp.s ! gn ! Nom ++ "እየሆንክ ነው"; + => comp.s ! gn ! Nom ++ "እየሆንክ አይደለም"; + => comp.s ! gn ! Nom ++"ነበርክ"; + => comp.s ! gn ! Nom ++ "አልነበርክም"; + => comp.s ! gn ! Nom ++ "ነበርክ"; + => comp.s ! gn ! Nom ++ "አልነበርክም" ; + => comp.s ! gn ! Nom ++ "እየሆንክ ነበር"; + => comp.s ! gn ! Nom ++ "እየሆንክ አልነበረም"; + + + => comp.s ! gn ! Nom ++ "ነሽ"; + => comp.s ! gn ! Nom ++ "አይደለሽም"; + => comp.s ! gn ! Nom ++"ነበርሽ"; + => comp.s ! gn ! Nom ++"አልነበርሽም"; + => comp.s ! gn ! Nom ++ "እየሆንሽ ነው"; + => comp.s ! gn ! Nom ++ "እየሆንሽ አይደለም"; + => comp.s ! gn ! Nom ++"ነበርሽ"; + => comp.s ! gn ! Nom ++ "አልነበርሽም"; + => comp.s ! gn ! Nom ++ "ነበርሽ"; + => comp.s ! gn ! Nom ++ "አልነበርሽም" ; + => comp.s ! gn ! Nom ++ "እየሆንሽ ነበር"; + => comp.s ! gn ! Nom ++ "እየሆንሽ አልነበረም"; + + => comp.s ! gn ! Nom ++ "ናችሁ"; + => comp.s ! gn ! Nom ++ "አይደላችሁም"; + => comp.s ! gn ! Nom ++"ነበራችሁ"; + => comp.s ! gn ! Nom ++"አልነበራችሁም"; + => comp.s ! gn ! Nom ++ "እየሆናችሁ ነው"; + => comp.s ! gn ! Nom ++ "እየሆናችሁ አይደለም"; + => comp.s ! gn ! Nom ++"ነበራችሁ"; + => comp.s ! gn ! Nom ++ "አልነበራችሁም"; + => comp.s ! gn ! Nom ++ "ነበራችሁ"; + => comp.s ! gn ! Nom ++ "አልነበራችሁም" ; + => comp.s ! gn ! Nom ++ "እየሆናችሁ ነበር"; + => comp.s ! gn ! Nom ++ "እየሆናችሁ አልነበረም"; + + => comp.s ! gn ! Nom ++ "ነው"; + => comp.s ! gn ! Nom ++ "አይደለም"; + => comp.s ! gn ! Nom ++"ነበረ"; + => comp.s ! gn ! Nom ++"አልነበረም"; + => comp.s ! gn ! Nom ++ "እየሆነ ነው"; + => comp.s ! gn ! Nom ++ "እየሆነ አይደለም"; + => comp.s ! gn ! Nom ++"ነበረ "; + => comp.s ! gn ! Nom ++ "አልነበረም"; + => comp.s ! gn ! Nom ++ "ነበረ"; + => comp.s ! gn ! Nom ++ "አልነበረም" ; + => comp.s ! gn ! Nom ++ "እየሆነ ነበር"; + => comp.s ! gn ! Nom ++ "እየሆነ አልነበረም"; + + + => comp.s ! gn ! Nom ++ "ነች"; + => comp.s ! gn ! Nom ++ "አይደለችም"; + => comp.s ! gn ! Nom ++"ነበረች"; + => comp.s ! gn ! Nom ++"አልነበረችም"; + => comp.s ! gn ! Nom ++ "እየሆነች ነው"; + => comp.s ! gn ! Nom ++ "እየሆነች አይደለም"; + => comp.s ! gn ! Nom ++"ነበረች "; + => comp.s ! gn ! Nom ++ "አልነበረችም"; + => comp.s ! gn ! Nom ++ "ነበረች"; + => comp.s ! gn ! Nom ++ "አልነበረችም" ; + => comp.s ! gn ! Nom ++ "እየሆነች ነበር"; + => comp.s ! gn ! Nom ++ "እየሆነች አልነበረም"; + + + => comp.s ! gn ! Nom ++ "ናቸው"; + => comp.s ! gn ! Nom ++ "አይደሉም"; + => comp.s ! gn ! Nom ++"ነበሩ"; + => comp.s ! gn ! Nom ++"አልነበሩም"; + => comp.s ! gn ! Nom ++ "እየሆኑ ነው"; + => comp.s ! gn ! Nom ++ "እየሆኑ አይደለም"; + => comp.s ! gn ! Nom ++"ነበሩ "; + => comp.s ! gn ! Nom ++ "አልነበሩም"; + => comp.s ! gn ! Nom ++ "ነበሩ"; + => comp.s ! gn ! Nom ++ "አልነበሩም" ; + => comp.s ! gn ! Nom ++ "እየሆኑ ነበር"; + => comp.s ! gn ! Nom ++ "እየሆኑ አልነበረም" + + }; + + obj = { + s = [] ; + a = {png = Per3 Sg Masc ; isPron = False} + }; + s2 = []; + imp = [] ; + inf = []; + pred = { s = \\_,_ => []}; + isPred = False + + }; + + + ComplVA v2 ap= { + + s = \\t,p,png => + + let + + teketebku = ap.s!Masc!Sg!Indef!Nom ++ v2.s ! Perf !Pas! png ; -- + eketebalehu = ap.s!Masc!Sg!Indef!Nom ++ v2.s ! Imperf !Pas! png ;-- + teketeb = ap.s!Masc!Sg!Indef!Nom ++ v2.s ! Jus_Imperat !Pas! png ; -- imperative + teketbie = ap.s!Masc!Sg!Indef!Nom ++ v2.s ! Gerund !Pas! png ; -- + meketeb = ap.s!Masc!Sg!Indef!Nom ++ v2.s ! Infinitive !Pas! png ; -- + teketabi = ap.s!Masc!Sg!Indef!Nom ++ v2.s ! Parti !Pas! png ; + teketbiealehu = ap.s!Masc!Sg!Indef!Nom ++ v2.s ! CompPerf !Pas! png ; -- + eketeb = ap.s!Masc!Sg!Indef!Nom ++ v2.s ! Cont !Pas! png ; -- just play with the actives for now + + in + + case of { + + + + => eketebalehu ; + => "!" ++"&+"++ eketeb ++"&+" ++"m" ;-- case for I is unique but sticking to the general trend + => teketbiealehu; + => "!l"++"&+"++teketebku++"&+"++"m"; + => "(y'"++ "&+"++teketebku ++"n'w" ; + => "(y'"++ "&+"++teketebku ++"Ayd'l'm" ; + => teketebku; + => "!l"++"&+"++teketebku++"&+"++"m"; + => teketbie ++ "n'b'r"; + => "!l"++"&+"++teketebku++"&+"++"m"++"n'b'r"; + => "(y'"++ "&+"++teketebku ++ "n'b'r" ; + => "(y'"++ "&+"++teketebku ++ "Aln'b'r'm" + + + }; + obj = { + s = [] ; + a = {png = Per3 Sg Masc ; isPron = False} + }; + s2 = []; + imp = v2.s ! Jus_Imperat!Act!Per2 Sg Masc ; + inf = v2.s ! Infinitive ! Act ! Per3 Sg Masc ; + pred = { s = \\_,_ => []}; + isPred = False + } ; + + + + + + + ComplVV v2 vp = { + s = \\t,p,png => + + let + + teketebku = v2.s ! Perf !Act! png ; -- + eketebalehu = v2.s ! Imperf !Act! png ;-- + teketeb = v2.s ! Jus_Imperat !Act! png ; -- imperative + teketbie = v2.s ! Gerund !Act! png ; -- + meketeb = v2.s ! Infinitive !Act! png ; -- + teketabi = v2.s ! Parti !Act! png ; + teketbiealehu = v2.s ! CompPerf !Act! png ; -- + eketeb = v2.s ! Cont !Act! png ; -- just play with the actives for now + + in + + case of { + + + + => vp.inf ++ eketebalehu ; + => vp.inf ++ "!" ++"&+"++ eketeb ++"&+" ++"m" ;-- case for I is unique but sticking to the general trend + => vp.inf ++ teketbiealehu; + => vp.inf ++ "!l"++"&+"++teketebku++"&+"++"m"; + => vp.inf ++ "(y'"++ "&+"++teketebku ++"n'w" ; + => vp.inf ++ "(y'"++ "&+"++teketebku ++"Ayd'l'm" ; + => vp.inf ++ teketebku; + => vp.inf ++ "!l"++"&+"++teketebku++"&+"++"m"; + => vp.inf ++ teketbie ++ "n'b'r"; + => vp.inf ++ "!l"++"&+"++teketebku++"&+"++"m"++"n'b'r"; + => vp.inf ++ "(y'"++ "&+"++teketebku ++ "n'b'r" ; + => vp.inf ++ "(y'"++ "&+"++teketebku ++ "Aln'b'r'm" + + + }; + obj = vp.obj; + s2 = []; + imp = v2.s ! Jus_Imperat!Act!Per2 Sg Masc ; + inf = v2.s ! Infinitive ! Pas ! Per3 Sg Masc ; + pred = vp.pred; + isPred = False + } ; + + -- v vp = vp.inf ++ (predV v)** {c2 = v.c2}; + + + -- ReflVP : VPSlash -> VP ; -- love himself + -- ReflVP v = insertObj (\\a => reflPron ! a ++ v.c2) v ; + --Slash3V3 v np = insertObj np (predV v) ** {c2 = v.c2}; + + -- ComplVA : VA -> AP -> VP ; -- they become red + -- ComplVA v ap = insertObj2 (ap.s!Masc!Sing!Indef) (predV v) ; + -- ComplVV : VV -> VP -> VP ; -- want to run + + + +} diff --git a/lib/src/amharic/amharic.gf b/lib/src/amharic/amharic.gf new file mode 100644 index 000000000..786bcd4e2 --- /dev/null +++ b/lib/src/amharic/amharic.gf @@ -0,0 +1,86 @@ +concrete amharic of Numerals = { +flags coding = utf8 ; +-- include numerals.Abs.gf ; +-- flags coding=ethiopic ; + +-- 14, 15 have variants in pronounciation {asraratt, asrammIst} + +-- No long consonants marked in the indigen. script +-- s is set intersection s +-- h is set union h +-- H is three-fork h +-- x is hook-looking h +-- L is sin-looking s +-- X is h looking like k with a roof +-- ) is chair-vowel i.e historically glottal stop +-- ( is round-shape vowel sign i.e historically 3ayn +-- Z is zh +-- $ is sh +-- N is n~ +-- I is i" ዕ6ትህ ሮውእ +-- አ ኢስ ኣ" (1st row) +-- Capitalis for ejectives KPTCS + + +param DForm = unit | ten ; +param Size = sg | pl | tenplus ; +param S100 = indep | tenpart | tenelfu | sihpart ; + +oper LinDigit = {s : DForm => Str ; size : Size} ; +oper LinSub100 = {s : S100 => Str ; size : Size} ; + +lincat Numeral = {s : Str} ; +lincat Digit = LinDigit ; +lincat Sub10 = LinDigit ; +lincat Sub100 = LinSub100 ; +lincat Sub1000 = {s : Str ; s2 : Str ; size : Size } ; +lincat Sub1000000 = {s : Str} ; + +oper mkNum : Str -> Str -> LinDigit = \hulatt -> \haya -> + {s = table {unit => hulatt ; ten => haya} ; size = pl} ; + +lin num x0 = + {s = [] ++ x0.s ++ []} ; +lin n2 = mkNum "ሁለት" (variants {"ሃያ" ; "ሓያ" ; "ኃያ" ; "ካያ" }) ; +lin n3 = mkNum "ሦስት" "ሠላሳ" ; +lin n4 = mkNum "ኣራት" "ኣርባ" ; +lin n5 = mkNum "ኣምስት" (variants { "ኣምሳ" ; "ኃምሳ" }) ; +lin n6 = mkNum "ስድስት" (variants { "ስድሳ" ; "ስልሳ" }) ; +lin n7 = mkNum "ሰባት" "ሰባ" ; +lin n8 = mkNum "ስምንት" "ሰማንያ" ; +lin n9 = mkNum "ዘጠኝ" "ዘጠና" ; + +oper ss1 : Str -> Str -> Str -> LinSub100 = \assir -> \ten -> \unitpart -> + {s = table {indep => assir ; tenpart => ten ; tenelfu => [] ; sihpart => unitpart} ; size = tenplus } ; + +oper ss : Str -> Str -> Str -> LinSub100 = \assir -> \ten -> \unitpart -> + {s = table {indep => assir ; tenpart => ten ; tenelfu => ten ; sihpart => unitpart} ; size = tenplus } ; + +lin pot01 = + {s = table {unit => "ኣንድ" ; ten => "ኣስራ" }; size = sg}; +lin pot0 d = d ; +lin pot110 = ss1 "ኣስር" "ኣንድ" [] ; +lin pot111 = ss1 (variants {"ኣስራንድ" ; "ኣስራ" ++ "ኣንድ" }) "ኣንድ" Sih ; +lin pot1to19 d = ss1 ("ኣስራ" ++ d.s ! unit) "ኣንድ" (mkSih d.size (d.s ! unit)) ; +lin pot0as1 n = {s = table {indep => n.s ! unit ; sihpart => mkSih n.size (n.s ! unit) ; _ => [] } ; size = n.size} ; +lin pot1 d = ss (d.s ! ten) (d.s ! unit) [] ; +lin pot1plus d e = ss ((d.s ! ten) ++ (e.s ! unit)) + (d.s ! unit) + (mkSih e.size (e.s ! unit)); + +lin pot1as2 n = {s = n.s ! indep ; s2 = n.s ! tenelfu ++ "እሌፍ" ++ n.s ! sihpart ; size = n.size} ; + +lin pot2 d = {s = (sel d.size [] (d.s ! unit)) ++ "መቶ" ; + s2 = sel d.size "ኣስር" (d.s ! ten) ; size = tenplus} ; +lin pot2plus d e = {s = (sel d.size [] (d.s ! unit)) ++ "መቶ" ++ e.s ! indep ; s2 = d.s ! ten ++ e.s ! tenpart ++ "እሌፍ" ++ e.s ! sihpart ; size = tenplus} ; +lin pot2as3 n = {s = n.s} ; +lin pot3 n = {s = table {pl => n.s ++ Sih ; sg => Sih ; tenplus => n.s2 } ! n.size} ; +lin pot3plus n m = {s = table {pl => n.s ++ Sih ; sg => Sih ; tenplus => n.s2 } ! n.size ++ m.s} ; + +oper Sih : Str = variants {"ሺህ" ; "ሺ"} ; + +oper mkSih : Size -> Str -> Str = \sz -> \attr -> (sel sz [] attr) ++ Sih ; + +oper sel : Size -> Str -> Str -> Str = \sz -> \a -> \b -> table {sg => a ; _ => b} ! sz ; + +} diff --git a/lib/src/amharic/transliterateAmh.gf b/lib/src/amharic/transliterateAmh.gf new file mode 100644 index 000000000..53e8bac0d --- /dev/null +++ b/lib/src/amharic/transliterateAmh.gf @@ -0,0 +1,8 @@ +rf -file=transliterated/IdiomAmh.gf | ps -env=quotes -to_amharic | wf -file=IdiomAmh.gf +rf -file=transliterated/LexiconAmh.gf | ps -env=quotes -to_amharic | wf -file=LexiconAmh.gf +rf -file=transliterated/MorphoAmh.gf | ps -env=quotes -to_amharic | wf -file=MorphoAmh.gf +rf -file=transliterated/NumeralAmh.gf | ps -env=quotes -to_amharic | wf -file=NumeralAmh.gf +rf -file=transliterated/ResAmh.gf | ps -env=quotes -to_amharic | wf -file=ResAmh.gf +rf -file=transliterated/StructuralAmh.gf | ps -env=quotes -to_amharic | wf -file=StructuralAmh.gf + +rf -file=LexiconAmh.gf | ps -env=quotes -from_amharic | wf -file=LexAmhTran.gf