summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2011-02-24 14:05:16 +0000
committeraarne <aarne@chalmers.se>2011-02-24 14:05:16 +0000
commitc51c011dda7c9ced5038d98e1fc2ea419e0d90a7 (patch)
tree27dfc29f5f161b89c16e9d8fb285e03937772ad8
parent8b76047cdae7372f4fae5aba3a71a19a1b242dfd (diff)
FoodsNep by Dinesh Simk
-rw-r--r--contrib/summerschool/foods/FoodsNep.gf60
1 files changed, 60 insertions, 0 deletions
diff --git a/contrib/summerschool/foods/FoodsNep.gf b/contrib/summerschool/foods/FoodsNep.gf
new file mode 100644
index 000000000..ea02e64a6
--- /dev/null
+++ b/contrib/summerschool/foods/FoodsNep.gf
@@ -0,0 +1,60 @@
+-- (c) 2011 Dinesh Simkhada under LGPL
+
+concrete FoodsNep of Foods = {
+
+ flags coding = utf8 ;
+
+ lincat
+ Comment, Quality = {s : Str} ;
+ Kind = {s : Number => Str} ;
+ Item = {s : Str ; n : Number} ;
+
+ lin
+ Pred item quality =
+ {s = item.s ++ quality.s ++ copula ! item.n} ;
+
+ This = det Sg "यो" ;
+ That = det Sg "त्यो" ;
+ These = det Pl "यी" ;
+ Those = det Pl "ती" ;
+ Mod quality kind =
+ {s = \\n => quality.s ++ kind.s ! n} ;
+
+ Wine = regNoun "रक्सी" ;
+ Cheese = regNoun "चिज" ;
+ Fish = regNoun "माछा" ;
+ Pizza = regNoun "पिज्जा" ;
+ Very a = {s = "धेरै" ++ a.s} ;
+ Fresh = adj "ताजा" ;
+ Warm = adj "तातो" ;
+ Italian = adj "इटालियन" ;
+ Expensive = adj "महँगो" | adj "बहुमूल्य" ;
+ Delicious = adj "स्वादिष्ट" | adj "मीठो" ;
+ Boring = adjPl "नमिठो" ;
+
+ param
+ Number = Sg | Pl ;
+
+ oper
+ det : Number -> Str ->
+ {s : Number => Str} -> {s : Str ; n : Number} =
+ \n,det,noun -> {s = det ++ noun.s ! n ; n = n} ;
+
+ noun : Str -> Str -> {s : Number => Str} =
+ \man,men -> {s = table {Sg => man ; Pl => men}} ;
+
+ regNoun : Str -> {s : Number => Str} =
+ \car -> noun car (car + "हरु") ;
+
+ adjPl : Str -> {s : Str} = \a -> case a of {
+ bor + "ठो" => adj (bor + "ठा") ;
+ _ => adj a
+ } ;
+
+ adj : Str -> {s : Str} =
+ \cold -> {s = cold} ;
+
+ copula : Number => Str =
+ table {Sg => "छ" ; Pl => "छन्"} ;
+}
+