forked from GitHub/gf-core
lib/amharic by Markos Kassa Gobena
This commit is contained in:
69
lib/src/amharic/AdjectiveAmh.gf
Normal file
69
lib/src/amharic/AdjectiveAmh.gf
Normal file
@@ -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 ;
|
||||
|
||||
} ;
|
||||
|
||||
}
|
||||
17
lib/src/amharic/AdverbAmh.gf
Normal file
17
lib/src/amharic/AdverbAmh.gf
Normal file
@@ -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 ++"ሁኔታ"};
|
||||
|
||||
}
|
||||
3
lib/src/amharic/AllAmh.gf
Normal file
3
lib/src/amharic/AllAmh.gf
Normal file
@@ -0,0 +1,3 @@
|
||||
--# -path=.:../abstract:../common:prelude
|
||||
--
|
||||
concrete AllAmh of AllAmhAbs = LangAmh, ExtAmh ;
|
||||
3
lib/src/amharic/AllAmhAbs.gf
Normal file
3
lib/src/amharic/AllAmhAbs.gf
Normal file
@@ -0,0 +1,3 @@
|
||||
--# -path=.:../abstract:../common:prelude
|
||||
|
||||
abstract AllAmhAbs = Lang, ExtAmhAbs ;
|
||||
44
lib/src/amharic/CatAmh.gf
Normal file
44
lib/src/amharic/CatAmh.gf
Normal file
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
33
lib/src/amharic/ConjunctionAmh.gf
Normal file
33
lib/src/amharic/ConjunctionAmh.gf
Normal file
@@ -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} ;
|
||||
|
||||
}
|
||||
12
lib/src/amharic/ExtAmh.gf
Normal file
12
lib/src/amharic/ExtAmh.gf
Normal file
@@ -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) ;
|
||||
|
||||
}
|
||||
11
lib/src/amharic/ExtAmhAbs.gf
Normal file
11
lib/src/amharic/ExtAmhAbs.gf
Normal file
@@ -0,0 +1,11 @@
|
||||
abstract ExtAmhAbs = Cat ** {
|
||||
|
||||
|
||||
fun
|
||||
|
||||
|
||||
youSgFem_Pron : Pron ;
|
||||
shePol_pron : Pron ;
|
||||
hePol_pron : Pron ;
|
||||
|
||||
}
|
||||
26
lib/src/amharic/GrammarAmh.gf
Normal file
26
lib/src/amharic/GrammarAmh.gf
Normal file
@@ -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 ;
|
||||
|
||||
} ;
|
||||
14
lib/src/amharic/IdiomAmh.gf
Normal file
14
lib/src/amharic/IdiomAmh.gf
Normal file
@@ -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
|
||||
}
|
||||
|
||||
181
lib/src/amharic/IrregAmh.gf
Normal file
181
lib/src/amharic/IrregAmh.gf
Normal file
@@ -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 "ورِتي" "ورْتي" "ورِتّن" ;
|
||||
}
|
||||
15
lib/src/amharic/LangAmh.gf
Normal file
15
lib/src/amharic/LangAmh.gf
Normal file
@@ -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 ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
378
lib/src/amharic/LexAmhTran.gf
Normal file
378
lib/src/amharic/LexAmhTran.gf
Normal file
@@ -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'";
|
||||
|
||||
------------------------
|
||||
|
||||
|
||||
}
|
||||
378
lib/src/amharic/LexiconAmh.gf
Normal file
378
lib/src/amharic/LexiconAmh.gf
Normal file
@@ -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 "ያልተረጋገጠ";
|
||||
|
||||
|
||||
|
||||
}
|
||||
57
lib/src/amharic/LexiconMlt.gf
Normal file
57
lib/src/amharic/LexiconMlt.gf
Normal file
@@ -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" } ;
|
||||
-}
|
||||
} ;
|
||||
81
lib/src/amharic/MorphoAmh.gf
Normal file
81
lib/src/amharic/MorphoAmh.gf
Normal file
@@ -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
|
||||
} ;
|
||||
|
||||
|
||||
}
|
||||
201
lib/src/amharic/NounAmh.gf
Normal file
201
lib/src/amharic/NounAmh.gf
Normal file
@@ -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 <n,g> of {
|
||||
<Sg,Masc> =>"አንድ" ++ [];
|
||||
<Sg,Fem> =>"አንዲት" ++ [];
|
||||
<Pl,_> => [] };
|
||||
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} ;
|
||||
|
||||
--<Sg> => f.c2 ++ x.s ! c++"ያለው" ++ f.s ! n !Indef! Nom ;
|
||||
--<Pl> => 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} ;
|
||||
|
||||
|
||||
}
|
||||
121
lib/src/amharic/NumeralAmh.gf
Normal file
121
lib/src/amharic/NumeralAmh.gf
Normal file
@@ -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
|
||||
} ;
|
||||
|
||||
|
||||
-- የማትረሳዋ ምሽት - ተመስገን አምላኬ!
|
||||
|
||||
}
|
||||
|
||||
35
lib/src/amharic/Numerals.gf
Normal file
35
lib/src/amharic/Numerals.gf
Normal file
@@ -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
|
||||
|
||||
}
|
||||
7
lib/src/amharic/OrthoAmh.gf
Normal file
7
lib/src/amharic/OrthoAmh.gf
Normal file
@@ -0,0 +1,7 @@
|
||||
resource OrthoAmh = open Prelude, Predef in {
|
||||
|
||||
flags coding=utf8 ;
|
||||
|
||||
|
||||
|
||||
}
|
||||
2408
lib/src/amharic/ParadigmsAmh.gf
Normal file
2408
lib/src/amharic/ParadigmsAmh.gf
Normal file
File diff suppressed because it is too large
Load Diff
1389
lib/src/amharic/PatternsAmh.gf
Normal file
1389
lib/src/amharic/PatternsAmh.gf
Normal file
File diff suppressed because it is too large
Load Diff
37
lib/src/amharic/PhraseAmh.gf
Normal file
37
lib/src/amharic/PhraseAmh.gf
Normal file
@@ -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} ; ---
|
||||
|
||||
-}
|
||||
|
||||
}
|
||||
46
lib/src/amharic/QuestionAmh.gf
Normal file
46
lib/src/amharic/QuestionAmh.gf
Normal file
@@ -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 } ;
|
||||
|
||||
|
||||
}
|
||||
58
lib/src/amharic/RelativeAmh.gf
Normal file
58
lib/src/amharic/RelativeAmh.gf
Normal file
@@ -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
|
||||
|
||||
|
||||
-}
|
||||
----
|
||||
}
|
||||
1251
lib/src/amharic/ResAmh.gf
Normal file
1251
lib/src/amharic/ResAmh.gf
Normal file
File diff suppressed because it is too large
Load Diff
69
lib/src/amharic/SentenceAmh.gf
Normal file
69
lib/src/amharic/SentenceAmh.gf
Normal file
@@ -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} ;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
127
lib/src/amharic/StructuralAmh.gf
Normal file
127
lib/src/amharic/StructuralAmh.gf
Normal file
@@ -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 "አማርኛ" ;
|
||||
|
||||
}
|
||||
47
lib/src/amharic/SymbolAmh.gf
Normal file
47
lib/src/amharic/SymbolAmh.gf
Normal file
@@ -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 "," ;
|
||||
---}
|
||||
--
|
||||
}
|
||||
|
||||
331
lib/src/amharic/VerbAmh.gf
Normal file
331
lib/src/amharic/VerbAmh.gf
Normal file
@@ -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 <t,p> of {
|
||||
|
||||
|
||||
|
||||
<PresFut,Pos> => eketebalehu ;
|
||||
<PresFut,Neg> => "!" ++"&+"++ eketeb ++"&+" ++"m" ;-- case for I is unique but sticking to the general trend
|
||||
<PresPerf,Pos> => teketbiealehu;
|
||||
<PresPerf,Neg> => "!l"++"&+"++teketebku++"&+"++"m";
|
||||
<PresCont,Pos> => "(y'"++ "&+"++teketebku ++"n'w" ;
|
||||
<PresCont,Neg> => "(y'"++ "&+"++teketebku ++"Ayd'l'm" ;
|
||||
<SimplePast,Pos> => teketebku;
|
||||
<SimplePast,Neg> => "!l"++"&+"++teketebku++"&+"++"m";
|
||||
<PastPerf,Pos> => teketbie ++ "n'b'r";
|
||||
<PastPerf,Neg> => "!l"++"&+"++teketebku++"&+"++"m"++"n'b'r";
|
||||
<PastCont,Pos> => "(y'"++ "&+"++teketebku ++ "n'b'r" ;
|
||||
<PastCont,Neg> => "(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 <png,t,p> of {
|
||||
|
||||
|
||||
<Per1 Sg,PresFut,Pos > => comp.s ! gn ! Nom ++ "ነኝ";
|
||||
<Per1 Sg,PresFut,Neg > => comp.s ! gn ! Nom ++ "አይደለሁም";
|
||||
<Per1 Sg,PresPerf,Pos> => comp.s ! gn ! Nom ++"ነበርኩ";
|
||||
<Per1 Sg,PresPerf,Neg> => comp.s ! gn ! Nom ++"አልነበርኩም";
|
||||
<Per1 Sg,PresCont,Pos> => comp.s ! gn ! Nom ++ "እየሆንኩ ነው";
|
||||
<Per1 Sg,PresCont,Neg> => comp.s ! gn ! Nom ++ "እየሆንኩ አይደለም";
|
||||
<Per1 Sg,SimplePast,Pos> => comp.s ! gn ! Nom ++"ነበርኩ";
|
||||
<Per1 Sg,SimplePast,Neg > => comp.s ! gn ! Nom ++ "አልነበርኩም";
|
||||
<Per1 Sg,PastPerf,Pos> => comp.s ! gn ! Nom ++ "ነበርኩ";
|
||||
<Per1 Sg,PastPerf,Neg> => comp.s ! gn ! Nom ++ "አልነበርኩም" ;
|
||||
<Per1 Sg,PastCont,Pos> => comp.s ! gn ! Nom ++ "እየሆንኩ ነበር";
|
||||
<Per1 Sg,PastCont,Neg> => comp.s ! gn ! Nom ++ "እየሆንኩ አልነበረም";
|
||||
|
||||
|
||||
<Per1 Pl,PresFut,Pos> => comp.s ! gn ! Nom ++ "ነን";
|
||||
<Per1 Pl,PresFut,Neg > => comp.s ! gn ! Nom ++ "አይደለንም";
|
||||
<Per1 Pl,PresPerf,Pos> => comp.s ! gn ! Nom ++"ነበርን";
|
||||
<Per1 Pl,PresPerf,Neg> => comp.s ! gn ! Nom ++"አልነበርንም";
|
||||
<Per1 Pl,PresCont,Pos> => comp.s ! gn ! Nom ++ "እየሆንን ነው";
|
||||
<Per1 Pl,PresCont,Neg> => comp.s ! gn ! Nom ++ "እየሆንን አይደለም";
|
||||
<Per1 Pl,SimplePast,Pos> => comp.s ! gn ! Nom ++"ነበርን";
|
||||
<Per1 Pl,SimplePast,Neg > => comp.s ! gn ! Nom ++ "አልነበርንም";
|
||||
<Per1 Pl,PastPerf,Pos> => comp.s ! gn ! Nom ++ "ነበርን";
|
||||
<Per1 Pl,PastPerf,Neg> => comp.s ! gn ! Nom ++ "አልነበርንም" ;
|
||||
<Per1 Pl,PastCont,Pos> => comp.s ! gn ! Nom ++ "እየሆንን ነበር";
|
||||
<Per1 Pl,PastCont,Neg> => comp.s ! gn ! Nom ++ "እየሆንን አልነበረም";
|
||||
|
||||
|
||||
<Per2 Sg Masc,PresFut,Pos > => comp.s ! gn ! Nom ++ "ነህ";
|
||||
<Per2 Sg Masc,PresFut,Neg > => comp.s ! gn ! Nom ++ "አይደለህም";
|
||||
<Per2 Sg Masc,PresPerf,Pos> => comp.s ! gn ! Nom ++"ነበርክ";
|
||||
<Per2 Sg Masc,PresPerf,Neg> => comp.s ! gn ! Nom ++"አልነበርክም";
|
||||
<Per2 Sg Masc,PresCont,Pos> => comp.s ! gn ! Nom ++ "እየሆንክ ነው";
|
||||
<Per2 Sg Masc,PresCont,Neg> => comp.s ! gn ! Nom ++ "እየሆንክ አይደለም";
|
||||
<Per2 Sg Masc,SimplePast,Pos> => comp.s ! gn ! Nom ++"ነበርክ";
|
||||
<Per2 Sg Masc,SimplePast,Neg > => comp.s ! gn ! Nom ++ "አልነበርክም";
|
||||
<Per2 Sg Masc,PastPerf,Pos> => comp.s ! gn ! Nom ++ "ነበርክ";
|
||||
<Per2 Sg Masc,PastPerf,Neg> => comp.s ! gn ! Nom ++ "አልነበርክም" ;
|
||||
<Per2 Sg Masc,PastCont,Pos> => comp.s ! gn ! Nom ++ "እየሆንክ ነበር";
|
||||
<Per2 Sg Masc,PastCont,Neg> => comp.s ! gn ! Nom ++ "እየሆንክ አልነበረም";
|
||||
|
||||
|
||||
<Per2 Sg Fem,PresFut,Pos > => comp.s ! gn ! Nom ++ "ነሽ";
|
||||
<Per2 Sg Fem,PresFut,Neg > => comp.s ! gn ! Nom ++ "አይደለሽም";
|
||||
<Per2 Sg Fem,PresPerf,Pos> => comp.s ! gn ! Nom ++"ነበርሽ";
|
||||
<Per2 Sg Fem,PresPerf,Neg> => comp.s ! gn ! Nom ++"አልነበርሽም";
|
||||
<Per2 Sg Fem,PresCont,Pos> => comp.s ! gn ! Nom ++ "እየሆንሽ ነው";
|
||||
<Per2 Sg Fem,PresCont,Neg> => comp.s ! gn ! Nom ++ "እየሆንሽ አይደለም";
|
||||
<Per2 Sg Fem,SimplePast,Pos> => comp.s ! gn ! Nom ++"ነበርሽ";
|
||||
<Per2 Sg Fem,SimplePast,Neg > => comp.s ! gn ! Nom ++ "አልነበርሽም";
|
||||
<Per2 Sg Fem,PastPerf,Pos> => comp.s ! gn ! Nom ++ "ነበርሽ";
|
||||
<Per2 Sg Fem,PastPerf,Neg> => comp.s ! gn ! Nom ++ "አልነበርሽም" ;
|
||||
<Per2 Sg Fem,PastCont,Pos> => comp.s ! gn ! Nom ++ "እየሆንሽ ነበር";
|
||||
<Per2 Sg Fem,PastCont,Neg> => comp.s ! gn ! Nom ++ "እየሆንሽ አልነበረም";
|
||||
|
||||
<Per2 Pl _,PresFut,Pos > => comp.s ! gn ! Nom ++ "ናችሁ";
|
||||
<Per2 Pl _,PresFut,Neg > => comp.s ! gn ! Nom ++ "አይደላችሁም";
|
||||
<Per2 Pl _,PresPerf,Pos> => comp.s ! gn ! Nom ++"ነበራችሁ";
|
||||
<Per2 Pl _,PresPerf,Neg> => comp.s ! gn ! Nom ++"አልነበራችሁም";
|
||||
<Per2 Pl _,PresCont,Pos> => comp.s ! gn ! Nom ++ "እየሆናችሁ ነው";
|
||||
<Per2 Pl _,PresCont,Neg> => comp.s ! gn ! Nom ++ "እየሆናችሁ አይደለም";
|
||||
<Per2 Pl _,SimplePast,Pos> => comp.s ! gn ! Nom ++"ነበራችሁ";
|
||||
<Per2 Pl _,SimplePast,Neg > => comp.s ! gn ! Nom ++ "አልነበራችሁም";
|
||||
<Per2 Pl _,PastPerf,Pos> => comp.s ! gn ! Nom ++ "ነበራችሁ";
|
||||
<Per2 Pl _,PastPerf,Neg> => comp.s ! gn ! Nom ++ "አልነበራችሁም" ;
|
||||
<Per2 Pl _,PastCont,Pos> => comp.s ! gn ! Nom ++ "እየሆናችሁ ነበር";
|
||||
<Per2 Pl _,PastCont,Neg> => comp.s ! gn ! Nom ++ "እየሆናችሁ አልነበረም";
|
||||
|
||||
<Per3 Sg Masc,PresFut,Pos > => comp.s ! gn ! Nom ++ "ነው";
|
||||
<Per3 Sg Masc,PresFut,Neg > => comp.s ! gn ! Nom ++ "አይደለም";
|
||||
<Per3 Sg Masc,PresPerf,Pos> => comp.s ! gn ! Nom ++"ነበረ";
|
||||
<Per3 Sg Masc,PresPerf,Neg> => comp.s ! gn ! Nom ++"አልነበረም";
|
||||
<Per3 Sg Masc,PresCont,Pos> => comp.s ! gn ! Nom ++ "እየሆነ ነው";
|
||||
<Per3 Sg Masc,PresCont,Neg> => comp.s ! gn ! Nom ++ "እየሆነ አይደለም";
|
||||
<Per3 Sg Masc,SimplePast,Pos> => comp.s ! gn ! Nom ++"ነበረ ";
|
||||
<Per3 Sg Masc,SimplePast,Neg > => comp.s ! gn ! Nom ++ "አልነበረም";
|
||||
<Per3 Sg Masc,PastPerf,Pos> => comp.s ! gn ! Nom ++ "ነበረ";
|
||||
<Per3 Sg Masc,PastPerf,Neg> => comp.s ! gn ! Nom ++ "አልነበረም" ;
|
||||
<Per3 Sg Masc,PastCont,Pos> => comp.s ! gn ! Nom ++ "እየሆነ ነበር";
|
||||
<Per3 Sg Masc,PastCont,Neg> => comp.s ! gn ! Nom ++ "እየሆነ አልነበረም";
|
||||
|
||||
|
||||
<Per3 Sg Fem,PresFut,Pos > => comp.s ! gn ! Nom ++ "ነች";
|
||||
<Per3 Sg Fem,PresFut,Neg > => comp.s ! gn ! Nom ++ "አይደለችም";
|
||||
<Per3 Sg Fem,PresPerf,Pos> => comp.s ! gn ! Nom ++"ነበረች";
|
||||
<Per3 Sg Fem,PresPerf,Neg> => comp.s ! gn ! Nom ++"አልነበረችም";
|
||||
<Per3 Sg Fem,PresCont,Pos> => comp.s ! gn ! Nom ++ "እየሆነች ነው";
|
||||
<Per3 Sg Fem,PresCont,Neg> => comp.s ! gn ! Nom ++ "እየሆነች አይደለም";
|
||||
<Per3 Sg Fem,SimplePast,Pos> => comp.s ! gn ! Nom ++"ነበረች ";
|
||||
<Per3 Sg Fem,SimplePast,Neg > => comp.s ! gn ! Nom ++ "አልነበረችም";
|
||||
<Per3 Sg Fem,PastPerf,Pos> => comp.s ! gn ! Nom ++ "ነበረች";
|
||||
<Per3 Sg Fem,PastPerf,Neg> => comp.s ! gn ! Nom ++ "አልነበረችም" ;
|
||||
<Per3 Sg Fem,PastCont,Pos> => comp.s ! gn ! Nom ++ "እየሆነች ነበር";
|
||||
<Per3 Sg Fem,PastCont,Neg> => comp.s ! gn ! Nom ++ "እየሆነች አልነበረም";
|
||||
|
||||
|
||||
<Per3 Pl _,PresFut,Pos > => comp.s ! gn ! Nom ++ "ናቸው";
|
||||
<Per3 Pl _,PresFut,Neg > => comp.s ! gn ! Nom ++ "አይደሉም";
|
||||
<Per3 Pl _,PresPerf,Pos> => comp.s ! gn ! Nom ++"ነበሩ";
|
||||
<Per3 Pl _,PresPerf,Neg> => comp.s ! gn ! Nom ++"አልነበሩም";
|
||||
<Per3 Pl _,PresCont,Pos> => comp.s ! gn ! Nom ++ "እየሆኑ ነው";
|
||||
<Per3 Pl _,PresCont,Neg> => comp.s ! gn ! Nom ++ "እየሆኑ አይደለም";
|
||||
<Per3 Pl _,SimplePast,Pos> => comp.s ! gn ! Nom ++"ነበሩ ";
|
||||
<Per3 Pl _,SimplePast,Neg> => comp.s ! gn ! Nom ++ "አልነበሩም";
|
||||
<Per3 Pl _,PastPerf,Pos> => comp.s ! gn ! Nom ++ "ነበሩ";
|
||||
<Per3 Pl _,PastPerf,Neg> => comp.s ! gn ! Nom ++ "አልነበሩም" ;
|
||||
<Per3 Pl _,PastCont,Pos> => comp.s ! gn ! Nom ++ "እየሆኑ ነበር";
|
||||
<Per3 Pl _,PastCont,Neg> => 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 <t,p> of {
|
||||
|
||||
|
||||
|
||||
<PresFut,Pos> => eketebalehu ;
|
||||
<PresFut,Neg> => "!" ++"&+"++ eketeb ++"&+" ++"m" ;-- case for I is unique but sticking to the general trend
|
||||
<PresPerf,Pos> => teketbiealehu;
|
||||
<PresPerf,Neg> => "!l"++"&+"++teketebku++"&+"++"m";
|
||||
<PresCont,Pos> => "(y'"++ "&+"++teketebku ++"n'w" ;
|
||||
<PresCont,Neg> => "(y'"++ "&+"++teketebku ++"Ayd'l'm" ;
|
||||
<SimplePast,Pos> => teketebku;
|
||||
<SimplePast,Neg> => "!l"++"&+"++teketebku++"&+"++"m";
|
||||
<PastPerf,Pos> => teketbie ++ "n'b'r";
|
||||
<PastPerf,Neg> => "!l"++"&+"++teketebku++"&+"++"m"++"n'b'r";
|
||||
<PastCont,Pos> => "(y'"++ "&+"++teketebku ++ "n'b'r" ;
|
||||
<PastCont,Neg> => "(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 <t,p> of {
|
||||
|
||||
|
||||
|
||||
<PresFut,Pos> => vp.inf ++ eketebalehu ;
|
||||
<PresFut,Neg> => vp.inf ++ "!" ++"&+"++ eketeb ++"&+" ++"m" ;-- case for I is unique but sticking to the general trend
|
||||
<PresPerf,Pos> => vp.inf ++ teketbiealehu;
|
||||
<PresPerf,Neg> => vp.inf ++ "!l"++"&+"++teketebku++"&+"++"m";
|
||||
<PresCont,Pos> => vp.inf ++ "(y'"++ "&+"++teketebku ++"n'w" ;
|
||||
<PresCont,Neg> => vp.inf ++ "(y'"++ "&+"++teketebku ++"Ayd'l'm" ;
|
||||
<SimplePast,Pos> => vp.inf ++ teketebku;
|
||||
<SimplePast,Neg> => vp.inf ++ "!l"++"&+"++teketebku++"&+"++"m";
|
||||
<PastPerf,Pos> => vp.inf ++ teketbie ++ "n'b'r";
|
||||
<PastPerf,Neg> => vp.inf ++ "!l"++"&+"++teketebku++"&+"++"m"++"n'b'r";
|
||||
<PastCont,Pos> => vp.inf ++ "(y'"++ "&+"++teketebku ++ "n'b'r" ;
|
||||
<PastCont,Neg> => 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
|
||||
|
||||
|
||||
|
||||
}
|
||||
86
lib/src/amharic/amharic.gf
Normal file
86
lib/src/amharic/amharic.gf
Normal file
@@ -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 ;
|
||||
|
||||
}
|
||||
8
lib/src/amharic/transliterateAmh.gf
Normal file
8
lib/src/amharic/transliterateAmh.gf
Normal file
@@ -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
|
||||
Reference in New Issue
Block a user