diff options
Diffstat (limited to 'old-lib/resource/arabic/NounAra.gf')
| -rw-r--r-- | old-lib/resource/arabic/NounAra.gf | 184 |
1 files changed, 0 insertions, 184 deletions
diff --git a/old-lib/resource/arabic/NounAra.gf b/old-lib/resource/arabic/NounAra.gf deleted file mode 100644 index bafa54d8c..000000000 --- a/old-lib/resource/arabic/NounAra.gf +++ /dev/null @@ -1,184 +0,0 @@ -concrete NounAra of Noun = CatAra ** open ResAra, Prelude in { - -flags optimize=noexpand ; - -lin - - DetCN det cn = let { - number = sizeToNumber det.n; - determiner : Case -> Str = \c -> - det.s ! cn.h ! (detGender cn.g det.n) ! c; - noun : Case -> Str = \c -> cn.s ! - number ! (nounState det.d number) ! (nounCase c det.n det.d) - } in { - s = \\c => - case cnB4det det.isPron det.isNum det.n det.d of { - False => determiner c ++ noun c; - --FIXME use the adj -> cn -> cn rule from below instead of - --repeating code - True => cn.s ! number ! det.d ! c ++ det.s ! cn.h ! cn.g ! c - ++ cn.adj ! number ! det.d ! c - }; - a = { pgn = agrP3 cn.h cn.g number; - isPron = False } - }; - - UsePN pn = { - s = pn.s; - a = {pgn = (Per3 pn.g Sg); isPron = False } - }; - - UsePron p = p ; - - PredetNP pred np = { - s = \\c => case pred.isDecl of { - True => pred.s!c ++ np.s ! Gen ; -- akvaru l-awlAdi - False => pred.s!c ++ np.s ! c - }; - a = np.a - } ; - {- - --should compile.. not working :( wierd error message.. bug? - PPartNP np v2 = - let x = case np.a.pgn of { - Per3 g n => ( positAdj (v2.s ! VPPart) ) ! g ! n ! Indef ; - _ => \\_ => [] -- not occuring anyway - } in { - s = \\c => np.s ! c ++ x ! c ; - a = np.a - }; - -} - - -- FIXME try parsing something like "this house now" and you'll get - -- an internal compiler error, but it still works.. wierd.. - AdvNP np adv = { - s = \\c => np.s ! c ++ adv.s; - a = np.a - }; -{- - DetSg quant ord = { - s = \\h,g,c => - quant.s ! Sg ! h ! g ! c ++ ord.s ! g ! quant.d ! c ; - n = One; - d = quant.d; - isPron = quant.isPron; - isNum = - case ord.n of { - None => False; - _ => True - } - } ; --} - - DetQuantOrd quant num ord = { - s = \\h,g,c => quant.s ! Pl ! h ! g ! c - ++ num.s ! g ! (toDef quant.d num.n) ! c - --FIXME check this: - ++ ord.s ! g ! (toDef quant.d num.n) ! c ; - n = num.n; - d = quant.d; - isPron = quant.isPron; - isNum = - case num.n of { - None => False; - _ => True - } - } ; - - DetQuant quant num = { - s = \\h,g,c => quant.s ! Pl ! h ! g ! c - ++ num.s ! g ! (toDef quant.d num.n) ! c ; - n = num.n; - d = quant.d; - isPron = quant.isPron; - isNum = - case num.n of { - None => False; - _ => True - } - } ; - - - --DEPRECATED - -- SgQuant quant = {s = quant.s ! Sg ; d = quant.d; - -- isPron = quant.isPron; isNum = False} ; - -- PlQuant quant = {s = quant.s ! Pl ; d = quant.d; - -- isPron = quant.isPron; isNum = False} ; - - PossPron p = { - s = \\_,_,_,_ => p.s ! Gen; - d = Const; - isPron = True; - isNum = False } ; - - NumSg = { - s = \\_,_,_ => [] ; - n = One } ; - - NumPl = { - s = \\_,_,_ => [] ; - n = None } ; - - NumDigits digits = { - s = \\_,_,_ => digits.s; - n = digits.n - }; - - NumNumeral numeral = { - s = numeral.s ! NCard ; - n = numeral.n - }; - - AdNum adn num = { - s = \\g,d,c => adn.s ++ num.s ! g ! d ! c ; - n = num.n } ; - - OrdDigits digits = { - s = \\_,d,_ => Al ! d ++ digits.s; - n = digits.n - }; - - -- OrdNumeral : Numeral -> Ord ; -- fifty-first - OrdNumeral numeral = { - s = numeral.s ! NOrd ; - n = numeral.n - }; - - -- FIXME, "the biggest house" would better translate into - -- akbaru baytin rather than al-baytu l-2akbaru - -- DetCN (DetSg DefArt (OrdSuperl big_A)) (UseN house_N) - OrdSuperl a = { - s = \\_,d,c => a.s ! AComp d c; - n = One - } ; - - DefArt = { - s = \\_,_,_,_ => []; - d = Def} ; - - IndefArt = { - s = \\_,_,_,_ => []; - d = Indef} ; - --- MassDet = {s = \\_,_,_,_ => [] ; d = Indef; --- isNum = False; isPron = False} ; - - UseN n = n ** {adj = \\_,_,_ => []}; - -- ComplN2 f x = {s = \\n,c => f.s ! n ! Nom ++ f.c2 ++ x.s ! c} ; - -- ComplN3 f x = {s = \\n,c => f.s ! n ! Nom ++ f.c2 ++ x.s ! c ; c2 = f.c3} ; - -- - -- UseN2 n = n ; - -- UseN3 n = n ; - -- - AdjCN ap cn = { - s = \\n,d,c => cn.s ! n ! d ! c; - adj = \\n,d,c => ap.s ! cn.h ! cn.g ! n ! (definite ! d) ! c ; - g = cn.g; - h = cn.h - }; - -- RelCN cn rs = {s = \\n,c => cn.s ! n ! c ++ rs.s ! {n = n ; p = P3}} ; - -- AdvCN cn ad = {s = \\n,c => cn.s ! n ! c ++ ad.s} ; - -- - -- SentCN cn sc = {s = \\n,c => cn.s ! n ! c ++ sc.s} ; - -- ApposCN cn np = -} |
