summaryrefslogtreecommitdiff
path: root/examples/foods/FoodsLav.gf
diff options
context:
space:
mode:
authorjohn.j.camilleri <john.j.camilleri@chalmers.se>2013-09-16 07:17:27 +0000
committerjohn.j.camilleri <john.j.camilleri@chalmers.se>2013-09-16 07:17:27 +0000
commitf5461eb3d4eb2605b546a4ed202c12bcdaa1f4e4 (patch)
tree946c9e8542b8e8271b6b529a95c0400fa6613cb4 /examples/foods/FoodsLav.gf
parent8e1c6cca407c82fc09569d80c231b8d256735989 (diff)
Remove contribs and examples
Everything has now been moved to a separate repository at https://github.com/GrammaticalFramework/gf-contrib The contents of the examples folder are build during SetupWeb
Diffstat (limited to 'examples/foods/FoodsLav.gf')
-rw-r--r--examples/foods/FoodsLav.gf91
1 files changed, 91 insertions, 0 deletions
diff --git a/examples/foods/FoodsLav.gf b/examples/foods/FoodsLav.gf
new file mode 100644
index 000000000..efab63450
--- /dev/null
+++ b/examples/foods/FoodsLav.gf
@@ -0,0 +1,91 @@
+--# -path=.:prelude
+
+-- (c) 2009 Inese Bernsone under LGPL
+
+concrete FoodsLav of Foods = open Prelude in {
+
+ flags
+ coding=utf8 ;
+
+ lincat
+ Comment = SS ;
+ Quality = {s : Q => Gender => Number => Defin => Str } ;
+ Kind = {s : Number => Str ; g : Gender} ;
+ Item = {s : Str ; g : Gender ; n : Number } ;
+
+ lin
+ Pred item quality = ss (item.s ++ {- copula item.n -} "ir" ++ quality.s ! Q1 ! item.g ! item.n ! Ind ) ;
+ This = det Sg "šis" "šī" ;
+ That = det Sg "tas" "tā" ;
+ These = det Pl "šie" "šīs" ;
+ Those = det Pl "tie" "tās" ;
+ Mod quality kind = {s = \\n => quality.s ! Q1 ! kind.g ! n ! Def ++ kind.s ! n ; g = kind.g } ;
+ Wine = noun "vīns" "vīni" Masc ;
+ Cheese = noun "siers" "sieri" Masc ;
+ Fish = noun "zivs" "zivis" Fem ;
+ Pizza = noun "pica" "picas" Fem ;
+ Very qual = {s = \\q,g,n,spec => "ļoti" ++ qual.s ! Q2 ! g ! n ! spec };
+
+ Fresh = adjective "svaigs" "svaiga" "svaigi" "svaigas" "svaigais" "svaigā" "svaigie" "svaigās" ;
+ Warm = regAdj "silts" ;
+ Italian = specAdj "itāļu" (regAdj "itālisks") ;
+ Expensive = regAdj "dārgs" ;
+ Delicious = regAdj "garšīgs" ;
+ Boring = regAdj "garlaicīgs" ;
+
+ param
+ Number = Sg | Pl ;
+ Gender = Masc | Fem ;
+ Defin = Ind | Def ;
+ Q = Q1 | Q2 ;
+
+ oper
+ det : Number -> Str -> Str -> {s : Number => Str ; g : Gender} ->
+ {s : Str ; g : Gender ; n : Number} =
+ \n,m,f,cn -> {
+ s = case cn.g of {Masc => m ; Fem => f} ++ cn.s ! n ;
+ g = cn.g ;
+ n = n
+ } ;
+ noun : Str -> Str -> Gender -> {s : Number => Str ; g : Gender} =
+ \man,men,g -> {
+ s = table {
+ Sg => man ;
+ Pl => men
+ } ;
+ g = g
+ } ;
+ adjective : (_,_,_,_,_,_,_,_ : Str) -> {s : Q => Gender => Number => Defin => Str} =
+ \skaists,skaista,skaisti,skaistas,skaistais,skaistaa,skaistie,skaistaas -> {
+ s = table {
+ _ => table {
+ Masc => table {
+ Sg => table {Ind => skaists ; Def => skaistais} ;
+ Pl => table {Ind => skaisti ; Def => skaistie}
+ } ;
+ Fem => table {
+ Sg => table {Ind => skaista ; Def => skaistaa} ;
+ Pl => table {Ind => skaistas ; Def => skaistaas}
+ }
+ }
+ }
+ } ;
+
+ {- irregAdj : Str -> {s : Gender => Number => Defin => Str} = \itaalju ->
+ let itaalju = itaalju
+ in adjective itaalju (itaalju) (itaalju) (itaalju) (itaalju) (itaalju) (itaalju) (itaalju) ; -}
+
+ regAdj : Str -> {s : Q => Gender => Number => Defin => Str} = \skaists ->
+ let skaist = init skaists
+ in adjective skaists (skaist + "a") (skaist + "i") (skaist + "as") (skaist + "ais") (skaist + "ā") (skaist + "ie") (skaist + "ās");
+
+ Adjective : Type = {s : Q => Gender => Number => Defin => Str} ;
+
+ specAdj : Str -> Adjective -> Adjective = \s,a -> {
+ s = table {
+ Q2 => a.s ! Q1 ;
+ Q1 => \\_,_,_ => s
+ }
+ } ;
+
+ }