mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-10 13:29:32 -06:00
53 lines
1.2 KiB
Plaintext
53 lines
1.2 KiB
Plaintext
--# -path=.:prelude
|
|
|
|
concrete FoodsEng of Foods = open Prelude in {
|
|
|
|
lincat
|
|
Phrase, Quality = SS ;
|
|
Kind = {s : Number => Str} ;
|
|
Item = {s : Str ; n : Number} ;
|
|
|
|
lin
|
|
Is item quality = ss (item.s ++ copula ! item.n ++ quality.s) ;
|
|
This = det Sg "this" ;
|
|
That = det Sg "that" ;
|
|
These = det Pl "these" ;
|
|
Those = det Pl "those" ;
|
|
QKind quality kind = {s = \\n => quality.s ++ kind.s ! n} ;
|
|
Wine = regNoun "wine" ;
|
|
Cheese = regNoun "cheese" ;
|
|
Fish = noun "fish" "fish" ;
|
|
Pizza = regNoun "pizza" ;
|
|
Very = prefixSS "very" ;
|
|
Fresh = ss "fresh" ;
|
|
Warm = ss "warm" ;
|
|
Italian = ss "Italian" ;
|
|
Expensive = ss "expensive" ;
|
|
Delicious = ss "delicious" ;
|
|
Boring = ss "boring" ;
|
|
|
|
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
|
|
} ;
|
|
noun : Str -> Str -> {s : Number => Str} =
|
|
\man,men -> {s = table {
|
|
Sg => man ;
|
|
Pl => men
|
|
}
|
|
} ;
|
|
regNoun : Str -> {s : Number => Str} =
|
|
\car -> noun car (car + "s") ;
|
|
copula : Number => Str =
|
|
table {
|
|
Sg => "is" ;
|
|
Pl => "are"
|
|
} ;
|
|
}
|
|
|