summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2011-08-18 19:51:28 +0000
committeraarne <aarne@chalmers.se>2011-08-18 19:51:28 +0000
commit095f2967473499778ef5b7ea231198f77c313190 (patch)
tree5f3fb0f52f801706169ad987bd7077cd9300fce6
parent9c8fbd74fea71f6b4e1861ad511db047e43ce2be (diff)
FoodsCze by Katerina Bohmova
-rw-r--r--contrib/summerschool/foods/FoodsCze.gf35
-rw-r--r--contrib/summerschool/foods/ResCze.gf46
2 files changed, 81 insertions, 0 deletions
diff --git a/contrib/summerschool/foods/FoodsCze.gf b/contrib/summerschool/foods/FoodsCze.gf
new file mode 100644
index 000000000..3fec68141
--- /dev/null
+++ b/contrib/summerschool/foods/FoodsCze.gf
@@ -0,0 +1,35 @@
+-- (c) 2011 Katerina Bohmova under LGPL
+
+concrete FoodsCze of Foods = open ResCze in {
+ flags
+ coding = utf8 ;
+ lincat
+ Comment = {s : Str} ;
+ Quality = Adjective ;
+ Kind = Noun ;
+ Item = NounPhrase ;
+ lin
+ Pred item quality =
+ {s = item.s ++ copula ! item.n ++
+ quality.s ! item.g ! item.n} ;
+ This = det Sg "tento" "tato" "toto" ;
+ That = det Sg "tamten" "tamta" "tamto" ;
+ These = det Pl "tyto" "tyto" "tato" ;
+ Those = det Pl "tamty" "tamty" "tamta" ;
+ Mod quality kind = {
+ s = \\n => quality.s ! kind.g ! n ++ kind.s ! n ;
+ g = kind.g
+ } ;
+ Wine = noun "víno" "vína" Neutr ;
+ Cheese = noun "sýr" "sýry" Masc ;
+ Fish = noun "ryba" "ryby" Fem ;
+ Pizza = noun "pizza" "pizzy" Fem ;
+ Very qual = {s = \\g,n => "velmi" ++ qual.s ! g ! n} ;
+ Fresh = regAdj "čerstv" ;
+ Warm = regAdj "tepl" ;
+ Italian = regAdj "italsk" ;
+ Expensive = regAdj "drah" ;
+ Delicious = regnfAdj "vynikající" ;
+ Boring = regAdj "nudn" ;
+}
+
diff --git a/contrib/summerschool/foods/ResCze.gf b/contrib/summerschool/foods/ResCze.gf
new file mode 100644
index 000000000..56b4aa6ee
--- /dev/null
+++ b/contrib/summerschool/foods/ResCze.gf
@@ -0,0 +1,46 @@
+-- (c) 2011 Katerina Bohmova under LGPL
+
+resource ResCze = open Prelude in {
+ flags
+ coding = utf8 ;
+ param
+ Number = Sg | Pl ;
+ Gender = Masc | Fem | Neutr;
+ oper
+ NounPhrase : Type =
+ {s : Str ; g : Gender ; n : Number} ;
+ Noun : Type = {s : Number => Str ; g : Gender} ;
+ Adjective : Type = {s : Gender => Number => Str} ;
+
+ det : Number -> Str -> Str -> Str -> Noun -> NounPhrase =
+ \n,m,f,ne,cn -> {
+ s = table {Masc => m ; Fem => f; Neutr => ne} ! cn.g ++
+ cn.s ! n ;
+ g = cn.g ;
+ n = n
+ } ;
+ noun : Str -> Str -> Gender -> Noun =
+ \muz,muzi,g -> {
+ s = table {Sg => muz ; Pl => muzi} ;
+ g = g
+ } ;
+ adjective : (msg,fsg,nsg,mpl,fpl,npl : Str) -> Adjective =
+ \msg,fsg,nsg,mpl,fpl,npl -> {
+ s = table {
+ Masc => table {Sg => msg ; Pl => mpl} ;
+ Fem => table {Sg => fsg ; Pl => fpl} ;
+ Neutr => table {Sg => nsg ; Pl => npl}
+ }
+ } ;
+ regAdj : Str -> Adjective =
+ \mlad ->
+ adjective (mlad+"ý") (mlad+"á") (mlad+"é")
+ (mlad+"é") (mlad+"é") (mlad+"á") ;
+ regnfAdj : Str -> Adjective =
+ \vynikajici ->
+ adjective vynikajici vynikajici vynikajici
+ vynikajici vynikajici vynikajici;
+ copula : Number => Str =
+ table {Sg => "je" ; Pl => "jsou"} ;
+}
+