From 4abd042759a361cf0d92b94d04d320fa03e6da08 Mon Sep 17 00:00:00 2001 From: aarne Date: Wed, 22 Dec 2010 14:47:54 +0000 Subject: [PATCH] FoodsPes and Sofy in status --- contrib/summerschool/foods/FoodsFas.gf | 64 ------------------------- contrib/summerschool/foods/FoodsPes.gf | 65 ++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 64 deletions(-) delete mode 100644 contrib/summerschool/foods/FoodsFas.gf create mode 100644 contrib/summerschool/foods/FoodsPes.gf diff --git a/contrib/summerschool/foods/FoodsFas.gf b/contrib/summerschool/foods/FoodsFas.gf deleted file mode 100644 index bb95e351d..000000000 --- a/contrib/summerschool/foods/FoodsFas.gf +++ /dev/null @@ -1,64 +0,0 @@ --- (c) 2009 Sedigheh Moradi under LGPL - -concrete FoodsFas of Foods = { - - lincat - Comment = {s : Str} ; - Quality = {s : Add => Str; prep : Str} ; - Kind = {s : Add => Number => Str ; prep : Str}; - Item = {s : Str ; n : Number}; - lin - Pred item quality = {s = item.s ++ quality.s ! Indep ++ copula ! item.n} ; - This = det Sg "in" ; - That = det Sg "aan" ; - These = det Pl "in" ; - Those = det Pl "aan" ; - - Mod quality kind = {s = \\a,n => kind.s ! Attr ! n ++ kind.prep ++ quality.s ! a ; - prep = quality.prep - }; - Wine = regN "sharaab" ; - Cheese = regN "panir" ; - Fish = regN "mahi" ; - Pizza = regN "pitza" ; - Very a = {s = \\at => "xeili" ++ a.s ! at ; prep = a.prep} ; - Fresh = adj "taze" ; - Warm = adj "garm" ; - Italian = adj "Italia'i" ; - Expensive = adj "geraan" ; - Delicious = adj "laziz" ; - Boring = adj "keselkonande" ; - - param - Number = Sg | Pl ; - Add = Indep | Attr ; - oper - det : Number -> Str -> {s: Add => Number => Str ; prep : Str} -> {s : Str ; n: Number} = - \n,det,noun -> {s = det ++ noun.s ! Indep ! n ; n = n }; - - noun : (x1,_,_,x4 : Str) -> {s : Add => Number => Str ; prep : Str} = \pitza, pitzaye, pitzaha,pr -> - {s = \\a,n => case of - { => pitza ; => pitzaha ; - =>pitzaye ; => pitzaha + "ye" }; - prep = pr - }; - - regN : Str -> {s: Add => Number => Str ; prep : Str} = \mard -> - case mard of - { _ + ("a"|"e"|"i"|"o"|"u") => noun mard (mard+"ye") (mard + "ha") ""; - _ => noun mard mard (mard + "ha") "e" - }; - - adj : Str -> {s : Add => Str; prep : Str} = \taze -> - case taze of - { _ + ("a"|"e"|"i"|"o"|"u") => mkAdj taze (taze+"ye") "" ; - _ => mkAdj taze taze "e" - }; - - mkAdj : Str -> Str -> Str -> {s : Add => Str; prep : Str} = \taze, tazeye, pr -> - {s = table {Indep => taze; - Attr => tazeye}; - prep = pr - }; - copula : Number => Str = table {Sg => "ast"; Pl => "hastand"}; - } diff --git a/contrib/summerschool/foods/FoodsPes.gf b/contrib/summerschool/foods/FoodsPes.gf new file mode 100644 index 000000000..c2e631e81 --- /dev/null +++ b/contrib/summerschool/foods/FoodsPes.gf @@ -0,0 +1,65 @@ +concrete FoodsPes of Foods = { + + flags optimize=noexpand ; coding=utf8 ; + + lincat + Comment = {s : Str} ; + Quality = {s : Add => Str; prep : Str} ; + Kind = {s : Add => Number => Str ; prep : Str}; + Item = {s : Str ; n : Number}; + lin + Pred item quality = {s = item.s ++ quality.s ! Indep ++ copula ! item.n} ; + This = det Sg "این" ; + That = det Sg "آن" ; + These = det Pl "این" ; + Those = det Pl "آن" ; + + Mod quality kind = {s = \\a,n => kind.s ! Attr ! n ++ kind.prep ++ quality.s ! a ; + prep = quality.prep + }; + Wine = regN "شراب" ; + Cheese = regN "پنیر" ; + Fish = regN "ماهى" ; + Pizza = regN "پیتزا" ; + Very a = {s = \\at => "خیلی" ++ a.s ! at ; prep = a.prep} ; + Fresh = adj "تازه" ; + Warm = adj "گرم" ; + Italian = adj "ایتالیایی" ; + Expensive = adj "گران" ; + Delicious = adj "لذىذ" ; + Boring = adj "ملال آور" ; -- it must be written as ملال آور. + + param + Number = Sg | Pl ; + Add = Indep | Attr ; + oper + det : Number -> Str -> {s: Add => Number => Str ; prep : Str} -> {s : Str ; n: Number} = + \n,det,noun -> {s = det ++ noun.s ! Indep ! n ; n = n }; + + noun : (x1,_,_,x4 : Str) -> {s : Add => Number => Str ; prep : Str} = \pytzA, pytzAy, pytzAhA,pr -> + {s = \\a,n => case of + { => pytzA ; => pytzAhA ; + =>pytzA ; => pytzAhA + "ى" }; + prep = pr + }; + + regN : Str -> {s: Add => Number => Str ; prep : Str} = \mrd -> + case mrd of + { _ + ("ا"|"ه"|"ى"|"و"|"") => noun mrd (mrd+"ى") (mrd + "ها") ""; + _ => noun mrd mrd (mrd + "ها") "e" + }; + + adj : Str -> {s : Add => Str; prep : Str} = \tAzh -> + case tAzh of + { _ + ("ا"|"ه"|"ى"|"و"|"") => mkAdj tAzh (tAzh ++ "ى") "" ; + _ => mkAdj tAzh tAzh "ه" + }; + + mkAdj : Str -> Str -> Str -> {s : Add => Str; prep : Str} = \tAzh, tAzhy, pr -> + {s = table {Indep => tAzh; + Attr => tAzhy}; + prep = pr + }; + copula : Number => Str = table {Sg => "است"; Pl => "هستند"}; + +} \ No newline at end of file