summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2010-04-07 14:20:24 +0000
committeraarne <aarne@chalmers.se>2010-04-07 14:20:24 +0000
commit1f4f43748a681324b4335c43b4ca905bd025ef54 (patch)
tree3208356dc229fc6806961d35f171057c0656bf4f
parentb9fcba00cf1936887e86a98e4992c0f5565e47d2 (diff)
New FoodsHin by Vikas
-rw-r--r--contrib/summerschool/foods/FoodsHin.gf75
1 files changed, 75 insertions, 0 deletions
diff --git a/contrib/summerschool/foods/FoodsHin.gf b/contrib/summerschool/foods/FoodsHin.gf
new file mode 100644
index 000000000..67c29df8b
--- /dev/null
+++ b/contrib/summerschool/foods/FoodsHin.gf
@@ -0,0 +1,75 @@
+-- (c) 2010 Vikash Rauniyar under LGPL
+
+concrete FoodsHin of Foods = {
+
+ flags coding=utf8 ;
+
+ param
+ Gender = Masc | Fem ;
+ Number = Sg | Pl ;
+ lincat
+ Comment = {s : Str} ;
+ Item = {s : Str ; g : Gender ; n : Number} ;
+ Kind = {s : Number => Str ; g : Gender} ;
+ Quality = {s : Gender => Number => Str} ;
+ lin
+ Pred item quality = {
+ s = item.s ++ quality.s ! item.g ! item.n ++ copula item.n
+ } ;
+ This kind = {s = "यह" ++ kind.s ! Sg ; g = kind.g ; n = Sg} ;
+ That kind = {s = "वह" ++ kind.s ! Sg ; g = kind.g ; n = Sg} ;
+ These kind = {s = "ये" ++ kind.s ! Pl ; g = kind.g ; n = Pl} ;
+ Those kind = {s = "वे" ++ kind.s ! Pl ; g = kind.g ; n = Pl} ;
+ Mod quality kind = {
+ s = \\n => quality.s ! kind.g ! n ++ kind.s ! n ;
+ g = kind.g
+ } ;
+ Wine = regN "मदिरा" ;
+ Cheese = regN "पनीर" ;
+ Fish = regN "मछली" ;
+ Pizza = regN "पिज़्ज़ा" ;
+ Very quality = {s = \\g,n => "अति" ++ quality.s ! g ! n} ;
+ Fresh = regAdj "ताज़ा" ;
+ Warm = regAdj "गरम" ;
+ Italian = regAdj "इटली" ;
+ Expensive = regAdj "बहुमूल्य" ;
+ Delicious = regAdj "स्वादिष्ट" ;
+ Boring = regAdj "अरुचिकर" ;
+
+ oper
+ mkN : Str -> Str -> Gender -> {s : Number => Str ; g : Gender} =
+ \s,p,g -> {
+ s = table {
+ Sg => s ;
+ Pl => p
+ } ;
+ g = g
+ } ;
+
+ regN : Str -> {s : Number => Str ; g : Gender} = \s -> case s of {
+ lark + "ा" => mkN s (lark + "े") Masc ;
+ lark + "ी" => mkN s (lark + "ीयँा") Fem ;
+ _ => mkN s s Masc
+ } ;
+
+ mkAdj : Str -> Str -> Str -> {s : Gender => Number => Str} = \ms,mp,f -> {
+ s = table {
+ Masc => table {
+ Sg => ms ;
+ Pl => mp
+ } ;
+ Fem => \\_ => f
+ }
+ } ;
+
+ regAdj : Str -> {s : Gender => Number => Str} = \a -> case a of {
+ acch + "ा" => mkAdj a (acch + "े") (acch + "ी") ;
+ _ => mkAdj a a a
+ } ;
+
+ copula : Number -> Str = \n -> case n of {
+ Sg => "है" ;
+ Pl => "हैं"
+ } ;
+
+ }