concrete VerbAmh of Verb = CatAmh ** open Prelude,ParamX, ResAmh in { -- flags optimize=all_subs ; coding = utf8; -- lin UseV = predV ; SlashV2a v = predVc v ; Slash3V3 v np = insertObj np (predV v) ** {c2 = v.c2}; ComplSlash vp np = insertObj np vp ; CompAP ap = {s = \\amhagr,c => ap.s ! amhagr.g ! amhagr.n ! Indef ! c} ; --FIXME CompNP np = {s = \\_,c => np.s ! c}; CompAdv a = {s = \\_,_ => a.s} ; -- PassV2 : V2 -> VP ; -- be loved PassV2 v2 = { s = \\t,p,png => let teketebku = v2.s ! Perf !Pas! png ; -- eketebalehu = v2.s ! Imperf !Pas! png ;-- teketeb = v2.s ! Jus_Imperat !Pas! png ; -- imperative teketbie = v2.s ! Gerund !Pas! png ; -- meketeb = v2.s ! Infinitive !Pas! png ; -- teketabi = v2.s ! Parti !Pas! png ; teketbiealehu = v2.s ! CompPerf !Pas! png ; -- eketeb = v2.s ! Cont !Pas! png ; -- just play with the actives for now in case of { => eketebalehu ; => "!" ++"&+"++ eketeb ++"&+" ++"m" ;-- case for I is unique but sticking to the general trend => teketbiealehu; => "!l"++"&+"++teketebku++"&+"++"m"; => "(y'"++ "&+"++teketebku ++"n'w" ; => "(y'"++ "&+"++teketebku ++"Ayd'l'm" ; => teketebku; => "!l"++"&+"++teketebku++"&+"++"m"; => teketbie ++ "n'b'r"; => "!l"++"&+"++teketebku++"&+"++"m"++"n'b'r"; => "(y'"++ "&+"++teketebku ++ "n'b'r" ; => "(y'"++ "&+"++teketebku ++ "Aln'b'r'm" }; obj = { s = [] ; a = {png = Per3 Sg Masc ; isPron = False} }; s2 = []; imp = v2.s ! Jus_Imperat!Act !Per2 Sg Masc; inf = v2.s ! Infinitive ! Pas ! Per3 Sg Masc ; pred = { s = \\_,_ => []}; isPred = False } ; -- AdvVP : VP -> Adv -> VP ; AdvVP vp adv = { s = \\t,p,pgn => adv.s ++ vp.s!t!p!pgn ; obj = vp.obj; s2 = []; imp = vp.imp ; inf = vp.inf; pred = { s = \\_,_ => []}; isPred = False }; -- AdVVP : AdV -> VP -> VP ; -- always sleep -- : Comp -> VP ; -- be warm -- -- UseComp comp = {s= \\t,p,png => let gn = png2gn png in case of { => comp.s ! gn ! Nom ++ "ነኝ"; => comp.s ! gn ! Nom ++ "አይደለሁም"; => comp.s ! gn ! Nom ++"ነበርኩ"; => comp.s ! gn ! Nom ++"አልነበርኩም"; => comp.s ! gn ! Nom ++ "እየሆንኩ ነው"; => comp.s ! gn ! Nom ++ "እየሆንኩ አይደለም"; => comp.s ! gn ! Nom ++"ነበርኩ"; => comp.s ! gn ! Nom ++ "አልነበርኩም"; => comp.s ! gn ! Nom ++ "ነበርኩ"; => comp.s ! gn ! Nom ++ "አልነበርኩም" ; => comp.s ! gn ! Nom ++ "እየሆንኩ ነበር"; => comp.s ! gn ! Nom ++ "እየሆንኩ አልነበረም"; => comp.s ! gn ! Nom ++ "ነን"; => comp.s ! gn ! Nom ++ "አይደለንም"; => comp.s ! gn ! Nom ++"ነበርን"; => comp.s ! gn ! Nom ++"አልነበርንም"; => comp.s ! gn ! Nom ++ "እየሆንን ነው"; => comp.s ! gn ! Nom ++ "እየሆንን አይደለም"; => comp.s ! gn ! Nom ++"ነበርን"; => comp.s ! gn ! Nom ++ "አልነበርንም"; => comp.s ! gn ! Nom ++ "ነበርን"; => comp.s ! gn ! Nom ++ "አልነበርንም" ; => comp.s ! gn ! Nom ++ "እየሆንን ነበር"; => comp.s ! gn ! Nom ++ "እየሆንን አልነበረም"; => comp.s ! gn ! Nom ++ "ነህ"; => comp.s ! gn ! Nom ++ "አይደለህም"; => comp.s ! gn ! Nom ++"ነበርክ"; => comp.s ! gn ! Nom ++"አልነበርክም"; => comp.s ! gn ! Nom ++ "እየሆንክ ነው"; => comp.s ! gn ! Nom ++ "እየሆንክ አይደለም"; => comp.s ! gn ! Nom ++"ነበርክ"; => comp.s ! gn ! Nom ++ "አልነበርክም"; => comp.s ! gn ! Nom ++ "ነበርክ"; => comp.s ! gn ! Nom ++ "አልነበርክም" ; => comp.s ! gn ! Nom ++ "እየሆንክ ነበር"; => comp.s ! gn ! Nom ++ "እየሆንክ አልነበረም"; => comp.s ! gn ! Nom ++ "ነሽ"; => comp.s ! gn ! Nom ++ "አይደለሽም"; => comp.s ! gn ! Nom ++"ነበርሽ"; => comp.s ! gn ! Nom ++"አልነበርሽም"; => comp.s ! gn ! Nom ++ "እየሆንሽ ነው"; => comp.s ! gn ! Nom ++ "እየሆንሽ አይደለም"; => comp.s ! gn ! Nom ++"ነበርሽ"; => comp.s ! gn ! Nom ++ "አልነበርሽም"; => comp.s ! gn ! Nom ++ "ነበርሽ"; => comp.s ! gn ! Nom ++ "አልነበርሽም" ; => comp.s ! gn ! Nom ++ "እየሆንሽ ነበር"; => comp.s ! gn ! Nom ++ "እየሆንሽ አልነበረም"; => comp.s ! gn ! Nom ++ "ናችሁ"; => comp.s ! gn ! Nom ++ "አይደላችሁም"; => comp.s ! gn ! Nom ++"ነበራችሁ"; => comp.s ! gn ! Nom ++"አልነበራችሁም"; => comp.s ! gn ! Nom ++ "እየሆናችሁ ነው"; => comp.s ! gn ! Nom ++ "እየሆናችሁ አይደለም"; => comp.s ! gn ! Nom ++"ነበራችሁ"; => comp.s ! gn ! Nom ++ "አልነበራችሁም"; => comp.s ! gn ! Nom ++ "ነበራችሁ"; => comp.s ! gn ! Nom ++ "አልነበራችሁም" ; => comp.s ! gn ! Nom ++ "እየሆናችሁ ነበር"; => comp.s ! gn ! Nom ++ "እየሆናችሁ አልነበረም"; => comp.s ! gn ! Nom ++ "ነው"; => comp.s ! gn ! Nom ++ "አይደለም"; => comp.s ! gn ! Nom ++"ነበረ"; => comp.s ! gn ! Nom ++"አልነበረም"; => comp.s ! gn ! Nom ++ "እየሆነ ነው"; => comp.s ! gn ! Nom ++ "እየሆነ አይደለም"; => comp.s ! gn ! Nom ++"ነበረ "; => comp.s ! gn ! Nom ++ "አልነበረም"; => comp.s ! gn ! Nom ++ "ነበረ"; => comp.s ! gn ! Nom ++ "አልነበረም" ; => comp.s ! gn ! Nom ++ "እየሆነ ነበር"; => comp.s ! gn ! Nom ++ "እየሆነ አልነበረም"; => comp.s ! gn ! Nom ++ "ነች"; => comp.s ! gn ! Nom ++ "አይደለችም"; => comp.s ! gn ! Nom ++"ነበረች"; => comp.s ! gn ! Nom ++"አልነበረችም"; => comp.s ! gn ! Nom ++ "እየሆነች ነው"; => comp.s ! gn ! Nom ++ "እየሆነች አይደለም"; => comp.s ! gn ! Nom ++"ነበረች "; => comp.s ! gn ! Nom ++ "አልነበረችም"; => comp.s ! gn ! Nom ++ "ነበረች"; => comp.s ! gn ! Nom ++ "አልነበረችም" ; => comp.s ! gn ! Nom ++ "እየሆነች ነበር"; => comp.s ! gn ! Nom ++ "እየሆነች አልነበረም"; => comp.s ! gn ! Nom ++ "ናቸው"; => comp.s ! gn ! Nom ++ "አይደሉም"; => comp.s ! gn ! Nom ++"ነበሩ"; => comp.s ! gn ! Nom ++"አልነበሩም"; => comp.s ! gn ! Nom ++ "እየሆኑ ነው"; => comp.s ! gn ! Nom ++ "እየሆኑ አይደለም"; => comp.s ! gn ! Nom ++"ነበሩ "; => comp.s ! gn ! Nom ++ "አልነበሩም"; => comp.s ! gn ! Nom ++ "ነበሩ"; => comp.s ! gn ! Nom ++ "አልነበሩም" ; => comp.s ! gn ! Nom ++ "እየሆኑ ነበር"; => comp.s ! gn ! Nom ++ "እየሆኑ አልነበረም" }; obj = { s = [] ; a = {png = Per3 Sg Masc ; isPron = False} }; s2 = []; imp = [] ; inf = []; pred = { s = \\_,_ => []}; isPred = False }; ComplVA v2 ap= { s = \\t,p,png => let teketebku = ap.s!Masc!Sg!Indef!Nom ++ v2.s ! Perf !Pas! png ; -- eketebalehu = ap.s!Masc!Sg!Indef!Nom ++ v2.s ! Imperf !Pas! png ;-- teketeb = ap.s!Masc!Sg!Indef!Nom ++ v2.s ! Jus_Imperat !Pas! png ; -- imperative teketbie = ap.s!Masc!Sg!Indef!Nom ++ v2.s ! Gerund !Pas! png ; -- meketeb = ap.s!Masc!Sg!Indef!Nom ++ v2.s ! Infinitive !Pas! png ; -- teketabi = ap.s!Masc!Sg!Indef!Nom ++ v2.s ! Parti !Pas! png ; teketbiealehu = ap.s!Masc!Sg!Indef!Nom ++ v2.s ! CompPerf !Pas! png ; -- eketeb = ap.s!Masc!Sg!Indef!Nom ++ v2.s ! Cont !Pas! png ; -- just play with the actives for now in case of { => eketebalehu ; => "!" ++"&+"++ eketeb ++"&+" ++"m" ;-- case for I is unique but sticking to the general trend => teketbiealehu; => "!l"++"&+"++teketebku++"&+"++"m"; => "(y'"++ "&+"++teketebku ++"n'w" ; => "(y'"++ "&+"++teketebku ++"Ayd'l'm" ; => teketebku; => "!l"++"&+"++teketebku++"&+"++"m"; => teketbie ++ "n'b'r"; => "!l"++"&+"++teketebku++"&+"++"m"++"n'b'r"; => "(y'"++ "&+"++teketebku ++ "n'b'r" ; => "(y'"++ "&+"++teketebku ++ "Aln'b'r'm" }; obj = { s = [] ; a = {png = Per3 Sg Masc ; isPron = False} }; s2 = []; imp = v2.s ! Jus_Imperat!Act!Per2 Sg Masc ; inf = v2.s ! Infinitive ! Act ! Per3 Sg Masc ; pred = { s = \\_,_ => []}; isPred = False } ; ComplVV v2 vp = { s = \\t,p,png => let teketebku = v2.s ! Perf !Act! png ; -- eketebalehu = v2.s ! Imperf !Act! png ;-- teketeb = v2.s ! Jus_Imperat !Act! png ; -- imperative teketbie = v2.s ! Gerund !Act! png ; -- meketeb = v2.s ! Infinitive !Act! png ; -- teketabi = v2.s ! Parti !Act! png ; teketbiealehu = v2.s ! CompPerf !Act! png ; -- eketeb = v2.s ! Cont !Act! png ; -- just play with the actives for now in case of { => vp.inf ++ eketebalehu ; => vp.inf ++ "!" ++"&+"++ eketeb ++"&+" ++"m" ;-- case for I is unique but sticking to the general trend => vp.inf ++ teketbiealehu; => vp.inf ++ "!l"++"&+"++teketebku++"&+"++"m"; => vp.inf ++ "(y'"++ "&+"++teketebku ++"n'w" ; => vp.inf ++ "(y'"++ "&+"++teketebku ++"Ayd'l'm" ; => vp.inf ++ teketebku; => vp.inf ++ "!l"++"&+"++teketebku++"&+"++"m"; => vp.inf ++ teketbie ++ "n'b'r"; => vp.inf ++ "!l"++"&+"++teketebku++"&+"++"m"++"n'b'r"; => vp.inf ++ "(y'"++ "&+"++teketebku ++ "n'b'r" ; => vp.inf ++ "(y'"++ "&+"++teketebku ++ "Aln'b'r'm" }; obj = vp.obj; s2 = []; imp = v2.s ! Jus_Imperat!Act!Per2 Sg Masc ; inf = v2.s ! Infinitive ! Pas ! Per3 Sg Masc ; pred = vp.pred; isPred = False } ; -- v vp = vp.inf ++ (predV v)** {c2 = v.c2}; -- ReflVP : VPSlash -> VP ; -- love himself -- ReflVP v = insertObj (\\a => reflPron ! a ++ v.c2) v ; --Slash3V3 v np = insertObj np (predV v) ** {c2 = v.c2}; -- ComplVA : VA -> AP -> VP ; -- they become red -- ComplVA v ap = insertObj2 (ap.s!Masc!Sing!Indef) (predV v) ; -- ComplVV : VV -> VP -> VP ; -- want to run }