summaryrefslogtreecommitdiff
path: root/examples/foods/FoodsMon.gf
blob: c0d58f7226f0f8e3c2e7beeb80cb941b2b0a4377 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48

-- (c) 2009 Nyamsuren Erdenebadrakh under LGPL

concrete FoodsMon of Foods = open Prelude in {
  flags coding=utf8;

  lincat
    Comment, Quality = SS ; 
	Kind = {s : Number => Str} ; 
    Item = {s : Str ; n : Number} ; 

  lin
	Pred item quality = ss (item.s ++ "бол" ++ quality.s) ;
	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 = prefixSS "маш" ;
	Fresh = ss "шинэ" ;
	Warm = ss "халуун" ;
	Italian = ss "итали" ;
	Expensive = ss "үнэтэй" ;
	Delicious = ss "амттай" ;
	Boring = ss "амтгүй" ;

  param
    Number = Sg | Pl ;

  oper
	det : Number -> Str -> {s : Number => Str} -> {s : Str ; n : Number} = 
	\n,d,cn -> {
		s = d ++ cn.s ! n ;
		n = n
	} ;
  	
	regNoun : Str -> {s : Number => Str} = 
	\x -> {s = table {
		Sg => x ; 
		Pl => x + "нууд"}
		} ;
	}