From 1dfbc7a74157cdf1c279aa14b76d7b6b1bb73f56 Mon Sep 17 00:00:00 2001 From: aarne Date: Fri, 5 Mar 2010 07:22:57 +0000 Subject: [PATCH] fixes in FoodsUrd and DemoRon compilation --- contrib/summerschool/foods/FoodsUrd.gf | 84 ++++++++++++++++---------- lib/src/Makefile | 2 +- 2 files changed, 54 insertions(+), 32 deletions(-) diff --git a/contrib/summerschool/foods/FoodsUrd.gf b/contrib/summerschool/foods/FoodsUrd.gf index a1685b17f..186b2f929 100644 --- a/contrib/summerschool/foods/FoodsUrd.gf +++ b/contrib/summerschool/foods/FoodsUrd.gf @@ -1,31 +1,53 @@ -concrete FoodsUrd of Foods = { - flags coding = utf8 ; - param Number = Sg | Pl ; - - oper coupla : Number -> Str =\n -> case n of {Sg => "ہے" ; Pl => "ہیں"}; - - - lincat - Comment, Quality = {s : Str} ; - Item = {s: Str ; n: Number}; - Kind = {s: Number => Str}; - - lin - Pred item quality = {s = item.s ++ quality.s ++ coupla item.n} ; - This kind = {s = "یھ" ++ kind.s ! Sg; n= Sg} ; - These kind = {s = "یھ" ++ kind.s ! Pl; n = Pl} ; - That kind = {s = "وہ" ++ kind.s ! Sg; n= Sg} ; - Those kind = {s = "وہ" ++ kind.s ! Pl; n=Pl} ; - Mod quality kind = {s = \\n => quality.s ++ kind.s ! n} ; - Wine = {s = table { Sg => "شراب" ; Pl => "شرابیں"} }; - Cheese = {s = table { Sg => "پنیر" ; Pl => "پنیریں"} }; - Fish = {s = table { Sg => "مچھلی" ; Pl => "مچھلیاں"} }; - Pizza = {s = table { Sg => "پیزہ" ; Pl => "پیزے"} }; - Very quality = {s = "بہت" ++ quality.s} ; - Fresh = {s = "تازہ"} ; - Warm = {s = "گرم"} ; - Italian = {s = "اٹا لوی"} ; - Expensive = {s = "مہنگا"} ; - Delicious = {s = "مزیدار"} ; - Boring = {s = "فضول"} ; - } +-- (c) 2009 Shafqat Virk under LGPL + +concrete FoodsUrd of Foods = { + + flags coding=utf8 ; + + + param Number = Sg | Pl ; + param Gender = Masc | Fem; + + oper coupla : Number -> Str =\n -> case n of {Sg => "ہے" ; Pl => "ہیں"}; + + + lincat + Comment = {s : Str} ; + Item = {s: Str ; n: Number ; g:Gender}; + Kind = {s: Number => Str ; g:Gender}; + Quality = {s: Gender => Number => Str}; + + lin + Pred item quality = {s = item.s ++ quality.s ! item.g ! item.n ++ coupla item.n} ; + This kind = {s = "یھ" ++ kind.s ! Sg; n= Sg ; g = kind.g } ; + These kind = {s = "یھ" ++ kind.s ! Pl; n = Pl ; g = kind.g} ; + That kind = {s = "وہ" ++ kind.s ! Sg; n= Sg ; g = kind.g} ; + Those kind = {s = "وہ" ++ kind.s ! Pl; n=Pl ; g = kind.g} ; + Mod quality kind = {s = \\n => quality.s ! kind.g ! n ++ kind.s ! n ; g = kind.g}; + Wine = {s = table { Sg => "شراب" ; Pl => "شرابیں"} ; g = Fem}; + Cheese = {s = table { Sg => "پنیر" ; Pl => "پنیریں"} ; g = Fem}; + Fish = {s = table { Sg => "مچھلی" ; Pl => "مچھلیاں"} ; g = Fem}; + Pizza = {s = table { Sg => "پیزہ" ; Pl => "پیزے"} ; g = Masc}; + Very quality = {s = \\g,n => "بہت" ++ quality.s ! g ! n} ; + Fresh = regAdj "تازہ" ; + Warm = regAdj "گرم" ; + Italian = regAdj "اٹا لوی" ; + Expensive = regAdj "مہنگا" ; + Delicious = regAdj "مزیدار" ; + Boring = regAdj "فضول" ; + + oper + regAdj : Str -> {s: Gender => Number => Str} = \a -> case a of { + x + "ا" => mkAdj a (x+"ے") (x+"ی"); + _ => mkAdj a a a + }; + mkAdj : Str -> Str -> Str -> {s: Gender => Number => Str} = \s,p,f -> { + s = table { + Masc => table { + Sg => s; + Pl => p + }; + Fem => \\_ => f + } + }; + } \ No newline at end of file diff --git a/lib/src/Makefile b/lib/src/Makefile index 275edb632..bee3737ec 100644 --- a/lib/src/Makefile +++ b/lib/src/Makefile @@ -45,7 +45,7 @@ demo: gf -make -name=Demo1 demo/DemoDan.gf demo/DemoDut.gf demo/DemoEng.gf gf -make -name=Demo2 demo/DemoFin.gf +RTS -K48M gf -make -name=Demo3 demo/DemoFre.gf demo/DemoGer.gf demo/DemoIta.gf demo/DemoNor.gf demo/DemoPol.gf +RTS -K48M - gf -make -name=Demo4 -parser=off demo/DemoRon.gf +RTS -K48M + gf -make -name=Demo4 demo/DemoRon.gf +RTS -K48M gf -make -name=Demo5 demo/DemoRus.gf demo/DemoSpa.gf demo/DemoSwe.gf gf -make Demo0.pgf Demo1.pgf Demo2.pgf Demo3.pgf Demo4.pgf Demo5.pgf rm Demo?.pgf