mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 03:32:51 -06:00
Add Afr, Amh, Cat, Cze, Dut, Ger foods grammars to testsuite
This commit is contained in:
@@ -131,7 +131,8 @@ linearizeConcreteText concr expr = lin2string $ lin (expr2tree expr)
|
|||||||
Fun f as ->
|
Fun f as ->
|
||||||
case Map.lookup f (lins concr) of
|
case Map.lookup f (lins concr) of
|
||||||
Just t -> eval (map lin as) t
|
Just t -> eval (map lin as) t
|
||||||
_ -> error $ printf "Lookup failed for function: %s" (showCId f)
|
-- _ -> error $ printf "Lookup failed for function: %s" (showCId f)
|
||||||
|
_ -> LFToken $ T.pack $ printf "[%s]" (showCId f)
|
||||||
x -> error $ printf "Cannot lin: %s" (prTree x)
|
x -> error $ printf "Cannot lin: %s" (prTree x)
|
||||||
|
|
||||||
-- | Evaluation context is a sequence of terms
|
-- | Evaluation context is a sequence of terms
|
||||||
|
|||||||
@@ -1,45 +1,75 @@
|
|||||||
Foods: Pred (That Wine) Delicious
|
Foods: Pred (That Wine) Delicious
|
||||||
|
FoodsAfr: daardie wyn is heerlik
|
||||||
|
FoodsAmh: ያ ወይን ጣፋጭ ነው::
|
||||||
FoodsBul: онова вино е превъзходно
|
FoodsBul: онова вино е превъзходно
|
||||||
|
FoodsCat: aquell vi és deliciós
|
||||||
FoodsChi: 那 瓶 酒 是 美 味 的
|
FoodsChi: 那 瓶 酒 是 美 味 的
|
||||||
|
FoodsCze: tamto víno je vynikající
|
||||||
|
FoodsDut: die wijn is lekker
|
||||||
FoodsEng: that wine is delicious
|
FoodsEng: that wine is delicious
|
||||||
FoodsFin: tuo viini on herkullinen
|
FoodsFin: tuo viini on herkullinen
|
||||||
FoodsFre: ce vin est délicieux
|
FoodsFre: ce vin est délicieux
|
||||||
|
FoodsGer: jener Wein ist köstlich
|
||||||
FoodsHeb: היין ההוא טעים
|
FoodsHeb: היין ההוא טעים
|
||||||
FoodsSwe: det där vinet är läckert
|
FoodsSwe: det där vinet är läckert
|
||||||
|
|
||||||
Foods: Pred (This Pizza) (Very Boring)
|
Foods: Pred (This Pizza) (Very Boring)
|
||||||
|
FoodsAfr: hierdie pizza is baie vervelig
|
||||||
|
FoodsAmh: ይህ [Pizza] በጣም አስቀያሚ ነው::
|
||||||
FoodsBul: тази пица е много еднообразна
|
FoodsBul: тази пица е много еднообразна
|
||||||
|
FoodsCat: aquesta pizza és molt aburrida
|
||||||
FoodsChi: 这 张 比 萨 饼 是 非 常 难 吃 的
|
FoodsChi: 这 张 比 萨 饼 是 非 常 难 吃 的
|
||||||
|
FoodsCze: tato pizza je velmi nudná
|
||||||
|
FoodsDut: deze pizza is erg saai
|
||||||
FoodsEng: this pizza is very boring
|
FoodsEng: this pizza is very boring
|
||||||
FoodsFin: tämä pizza on erittäin tylsä
|
FoodsFin: tämä pizza on erittäin tylsä
|
||||||
FoodsFre: cette pizza est très ennuyeuse
|
FoodsFre: cette pizza est très ennuyeuse
|
||||||
|
FoodsGer: diese Pizza ist sehr langweilig
|
||||||
FoodsHeb: הפיצה הזאת מאוד משעממת
|
FoodsHeb: הפיצה הזאת מאוד משעממת
|
||||||
FoodsSwe: den här pizzan är mycket tråkig
|
FoodsSwe: den här pizzan är mycket tråkig
|
||||||
|
|
||||||
Foods: Pred (This Cheese) Fresh
|
Foods: Pred (This Cheese) Fresh
|
||||||
|
FoodsAfr: hierdie kaas is vars
|
||||||
|
FoodsAmh: ይህ አይብ አዲስ ነው::
|
||||||
FoodsBul: това сирене е свежо
|
FoodsBul: това сирене е свежо
|
||||||
|
FoodsCat: aquest formatge és fresc
|
||||||
FoodsChi: 这 块 奶 酪 是 新 鲜 的
|
FoodsChi: 这 块 奶 酪 是 新 鲜 的
|
||||||
|
FoodsCze: tento sýr je čerstvý
|
||||||
|
FoodsDut: deze kaas is vers
|
||||||
FoodsEng: this cheese is fresh
|
FoodsEng: this cheese is fresh
|
||||||
FoodsFin: tämä juusto on tuore
|
FoodsFin: tämä juusto on tuore
|
||||||
FoodsFre: ce fromage est frais
|
FoodsFre: ce fromage est frais
|
||||||
|
FoodsGer: dieser Käse ist frisch
|
||||||
FoodsHeb: הגבינה הזאת טריה
|
FoodsHeb: הגבינה הזאת טריה
|
||||||
FoodsSwe: den här osten är färsk
|
FoodsSwe: den här osten är färsk
|
||||||
|
|
||||||
Foods: Pred (Those Fish) Warm
|
Foods: Pred (Those Fish) Warm
|
||||||
|
FoodsAfr: daardie visse is warm
|
||||||
|
FoodsAmh: [Those] ትኩስ ነው::
|
||||||
FoodsBul: онези риби са горещи
|
FoodsBul: онези риби са горещи
|
||||||
|
FoodsCat: aquells peixos són calents
|
||||||
FoodsChi: 那 几 条 鱼 是 温 热 的
|
FoodsChi: 那 几 条 鱼 是 温 热 的
|
||||||
|
FoodsCze: tamty ryby jsou teplé
|
||||||
|
FoodsDut: die vissen zijn warm
|
||||||
FoodsEng: those fish are warm
|
FoodsEng: those fish are warm
|
||||||
FoodsFin: nuo kalat ovat lämpimiä
|
FoodsFin: nuo kalat ovat lämpimiä
|
||||||
FoodsFre: ces poissons sont chauds
|
FoodsFre: ces poissons sont chauds
|
||||||
|
FoodsGer: jene Fische sind warm
|
||||||
FoodsHeb: הדגים ההם חמים
|
FoodsHeb: הדגים ההם חמים
|
||||||
FoodsSwe: de där fiskarna är varma
|
FoodsSwe: de där fiskarna är varma
|
||||||
|
|
||||||
Foods: Pred (That (Mod Boring (Mod Italian Pizza))) Expensive
|
Foods: Pred (That (Mod Boring (Mod Italian Pizza))) Expensive
|
||||||
|
FoodsAfr: daardie vervelige Italiaanse pizza is duur
|
||||||
|
FoodsAmh: ያ አስቀያሚ የጥልያን [Pizza] ውድ ነው::
|
||||||
FoodsBul: онази еднообразна италианска пица е скъпа
|
FoodsBul: онази еднообразна италианска пица е скъпа
|
||||||
|
FoodsCat: aquella pizza italiana aburrida és cara
|
||||||
FoodsChi: 那 张 又 难 吃 又 意 大 利 式 的 比 萨 饼 是 昂 贵 的
|
FoodsChi: 那 张 又 难 吃 又 意 大 利 式 的 比 萨 饼 是 昂 贵 的
|
||||||
|
FoodsCze: tamta nudná italská pizza je drahá
|
||||||
|
FoodsDut: die saaie Italiaanse pizza is duur
|
||||||
FoodsEng: that boring Italian pizza is expensive
|
FoodsEng: that boring Italian pizza is expensive
|
||||||
FoodsFin: tuo tylsä italialainen pizza on kallis
|
FoodsFin: tuo tylsä italialainen pizza on kallis
|
||||||
FoodsFre: cette pizza italienne ennuyeuse est chère
|
FoodsFre: cette pizza italienne ennuyeuse est chère
|
||||||
|
FoodsGer: jene langweilige italienische Pizza ist teuer
|
||||||
FoodsHeb: הפיצה האיטלקית המשעממת ההיא יקרה
|
FoodsHeb: הפיצה האיטלקית המשעממת ההיא יקרה
|
||||||
FoodsSwe: den där tråkiga italienska pizzan är dyr
|
FoodsSwe: den där tråkiga italienska pizzan är dyr
|
||||||
|
|
||||||
|
|||||||
77
testsuite/lpgf/FoodsAfr.gf
Normal file
77
testsuite/lpgf/FoodsAfr.gf
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
-- (c) 2009 Laurette Pretorius Sr & Jr and Ansu Berg under LGPL
|
||||||
|
--# -coding=latin1
|
||||||
|
|
||||||
|
concrete FoodsAfr of Foods = open Prelude, Predef in{
|
||||||
|
lincat
|
||||||
|
Comment = {s: Str} ;
|
||||||
|
Kind = {s: Number => Str} ;
|
||||||
|
Item = {s: Str ; n: Number} ;
|
||||||
|
Quality = {s: AdjAP => Str} ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
Pred item quality = {s = item.s ++ "is" ++ (quality.s ! Predic)};
|
||||||
|
This kind = {s = "hierdie" ++ (kind.s ! Sg); n = Sg};
|
||||||
|
That kind = {s = "daardie" ++ (kind.s ! Sg); n = Sg};
|
||||||
|
These kind = {s = "hierdie" ++ (kind.s ! Pl); n = Pl};
|
||||||
|
Those kind = {s = "daardie" ++ (kind.s ! Pl); n = Pl};
|
||||||
|
Mod quality kind = {s = table{n => (quality.s ! Attr) ++ (kind.s!n)}};
|
||||||
|
|
||||||
|
Wine = declNoun_e "wyn";
|
||||||
|
Cheese = declNoun_aa "kaas";
|
||||||
|
Fish = declNoun_ss "vis";
|
||||||
|
Pizza = declNoun_s "pizza";
|
||||||
|
|
||||||
|
Very quality = veryAdj quality;
|
||||||
|
|
||||||
|
Fresh = regAdj "vars";
|
||||||
|
Warm = regAdj "warm";
|
||||||
|
Italian = smartAdj_e "Italiaans";
|
||||||
|
Expensive = regAdj "duur";
|
||||||
|
Delicious = smartAdj_e "heerlik";
|
||||||
|
Boring = smartAdj_e "vervelig";
|
||||||
|
|
||||||
|
param
|
||||||
|
AdjAP = Attr | Predic ;
|
||||||
|
Number = Sg | Pl ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
--Noun operations (wyn, kaas, vis, pizza)
|
||||||
|
|
||||||
|
declNoun_aa: Str -> {s: Number => Str} = \x ->
|
||||||
|
let v = tk 2 x
|
||||||
|
in
|
||||||
|
{s = table{Sg => x ; Pl => v + (last x) +"e"}};
|
||||||
|
|
||||||
|
declNoun_e: Str -> {s: Number => Str} = \x -> {s = table{Sg => x ; Pl => x + "e"}} ;
|
||||||
|
declNoun_s: Str -> {s: Number => Str} = \x -> {s = table{Sg => x ; Pl => x + "s"}} ;
|
||||||
|
|
||||||
|
declNoun_ss: Str -> {s: Number => Str} = \x -> {s = table{Sg => x ; Pl => x + (last x) + "e"}} ;
|
||||||
|
|
||||||
|
|
||||||
|
--Adjective operations
|
||||||
|
|
||||||
|
mkAdj : Str -> Str -> {s: AdjAP => Str} = \x,y -> {s = table{Attr => x; Predic => y}};
|
||||||
|
|
||||||
|
declAdj_e : Str -> {s : AdjAP=> Str} = \x -> mkAdj (x + "e") x;
|
||||||
|
declAdj_g : Str -> {s : AdjAP=> Str} = \w ->
|
||||||
|
let v = init w
|
||||||
|
in mkAdj (v + "ë") w ;
|
||||||
|
|
||||||
|
declAdj_oog : Str -> {s : AdjAP=> Str} = \w ->
|
||||||
|
let v = init w
|
||||||
|
in
|
||||||
|
let i = init v
|
||||||
|
in mkAdj (i + "ë") w ;
|
||||||
|
|
||||||
|
regAdj : Str -> {s : AdjAP=> Str} = \x -> mkAdj x x;
|
||||||
|
|
||||||
|
veryAdj : {s: AdjAP => Str} -> {s : AdjAP=> Str} = \x -> {s = table{a => "baie" ++ (x.s!a)}};
|
||||||
|
|
||||||
|
|
||||||
|
smartAdj_e : Str -> {s : AdjAP=> Str} = \a -> case a of
|
||||||
|
{
|
||||||
|
_ + "oog" => declAdj_oog a ;
|
||||||
|
_ + ("e" | "ie" | "o" | "oe") + "g" => declAdj_g a ;
|
||||||
|
_ => declAdj_e a
|
||||||
|
};
|
||||||
|
}
|
||||||
21
testsuite/lpgf/FoodsAmh.gf
Normal file
21
testsuite/lpgf/FoodsAmh.gf
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
concrete FoodsAmh of Foods ={
|
||||||
|
flags coding = utf8;
|
||||||
|
lincat
|
||||||
|
Comment,Item,Kind,Quality = Str;
|
||||||
|
lin
|
||||||
|
Pred item quality = item ++ quality++ "ነው::" ;
|
||||||
|
This kind = "ይህ" ++ kind;
|
||||||
|
That kind = "ያ" ++ kind;
|
||||||
|
Mod quality kind = quality ++ kind;
|
||||||
|
Wine = "ወይን";
|
||||||
|
Cheese = "አይብ";
|
||||||
|
Fish = "ዓሳ";
|
||||||
|
Very quality = "በጣም" ++ quality;
|
||||||
|
Fresh = "አዲስ";
|
||||||
|
Warm = "ትኩስ";
|
||||||
|
Italian = "የጥልያን";
|
||||||
|
Expensive = "ውድ";
|
||||||
|
Delicious = "ጣፋጭ";
|
||||||
|
Boring = "አስቀያሚ";
|
||||||
|
|
||||||
|
}
|
||||||
6
testsuite/lpgf/FoodsCat.gf
Normal file
6
testsuite/lpgf/FoodsCat.gf
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
|
||||||
|
-- (c) 2009 Jordi Saludes under LGPL
|
||||||
|
|
||||||
|
concrete FoodsCat of Foods = FoodsI with
|
||||||
|
(Syntax = SyntaxCat),
|
||||||
|
(LexFoods = LexFoodsCat) ;
|
||||||
35
testsuite/lpgf/FoodsCze.gf
Normal file
35
testsuite/lpgf/FoodsCze.gf
Normal file
@@ -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" ;
|
||||||
|
}
|
||||||
|
|
||||||
58
testsuite/lpgf/FoodsDut.gf
Normal file
58
testsuite/lpgf/FoodsDut.gf
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
-- (c) 2009 Femke Johansson under LGPL
|
||||||
|
|
||||||
|
concrete FoodsDut of Foods = {
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Comment = {s : Str};
|
||||||
|
Quality = {s : AForm => Str};
|
||||||
|
Kind = { s : Number => Str};
|
||||||
|
Item = {s : Str ; n : Number};
|
||||||
|
|
||||||
|
lin
|
||||||
|
Pred item quality =
|
||||||
|
{s = item.s ++ copula ! item.n ++ quality.s ! APred};
|
||||||
|
This = det Sg "deze";
|
||||||
|
These = det Pl "deze";
|
||||||
|
That = det Sg "die";
|
||||||
|
Those = det Pl "die";
|
||||||
|
|
||||||
|
Mod quality kind =
|
||||||
|
{s = \\n => quality.s ! AAttr ++ kind.s ! n};
|
||||||
|
Wine = regNoun "wijn";
|
||||||
|
Cheese = noun "kaas" "kazen";
|
||||||
|
Fish = noun "vis" "vissen";
|
||||||
|
Pizza = noun "pizza" "pizza's";
|
||||||
|
|
||||||
|
Very a = {s = \\f => "erg" ++ a.s ! f};
|
||||||
|
|
||||||
|
Fresh = regadj "vers";
|
||||||
|
Warm = regadj "warm";
|
||||||
|
Italian = regadj "Italiaans";
|
||||||
|
Expensive = adj "duur" "dure";
|
||||||
|
Delicious = regadj "lekker";
|
||||||
|
Boring = regadj "saai";
|
||||||
|
|
||||||
|
param
|
||||||
|
Number = Sg | Pl;
|
||||||
|
AForm = APred | AAttr;
|
||||||
|
|
||||||
|
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} =
|
||||||
|
\wijn -> noun wijn (wijn + "en");
|
||||||
|
|
||||||
|
regadj : Str -> {s : AForm => Str} =
|
||||||
|
\koud -> adj koud (koud+"e");
|
||||||
|
|
||||||
|
adj : Str -> Str -> {s : AForm => Str} =
|
||||||
|
\duur, dure -> {s = table {APred => duur; AAttr => dure}};
|
||||||
|
|
||||||
|
copula : Number => Str =
|
||||||
|
table {Sg => "is" ; Pl => "zijn"};
|
||||||
|
}
|
||||||
6
testsuite/lpgf/FoodsGer.gf
Normal file
6
testsuite/lpgf/FoodsGer.gf
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
|
||||||
|
-- (c) 2009 Aarne Ranta under LGPL
|
||||||
|
|
||||||
|
concrete FoodsGer of Foods = FoodsI with
|
||||||
|
(Syntax = SyntaxGer),
|
||||||
|
(LexFoods = LexFoodsGer) ;
|
||||||
18
testsuite/lpgf/LexFoodsCat.gf
Normal file
18
testsuite/lpgf/LexFoodsCat.gf
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
-- (c) 2009 Jordi Saludes under LGPL
|
||||||
|
|
||||||
|
instance LexFoodsCat of LexFoods =
|
||||||
|
open SyntaxCat, ParadigmsCat, (M = MorphoCat) in {
|
||||||
|
flags
|
||||||
|
coding = utf8 ;
|
||||||
|
oper
|
||||||
|
wine_N = mkN "vi" "vins" M.Masc ;
|
||||||
|
pizza_N = mkN "pizza" ;
|
||||||
|
cheese_N = mkN "formatge" ;
|
||||||
|
fish_N = mkN "peix" "peixos" M.Masc;
|
||||||
|
fresh_A = mkA "fresc" "fresca" "frescos" "fresques" "frescament";
|
||||||
|
warm_A = mkA "calent" ;
|
||||||
|
italian_A = mkA "italià" "italiana" "italians" "italianes" "italianament" ;
|
||||||
|
expensive_A = mkA "car" ;
|
||||||
|
delicious_A = mkA "deliciós" "deliciosa" "deliciosos" "delicioses" "deliciosament";
|
||||||
|
boring_A = mkA "aburrit" "aburrida" "aburrits" "aburrides" "aburridament" ;
|
||||||
|
}
|
||||||
17
testsuite/lpgf/LexFoodsGer.gf
Normal file
17
testsuite/lpgf/LexFoodsGer.gf
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
-- (c) 2009 Aarne Ranta under LGPL
|
||||||
|
--# -coding=latin1
|
||||||
|
|
||||||
|
instance LexFoodsGer of LexFoods =
|
||||||
|
open SyntaxGer, ParadigmsGer in {
|
||||||
|
oper
|
||||||
|
wine_N = mkN "Wein" ;
|
||||||
|
pizza_N = mkN "Pizza" "Pizzen" feminine ;
|
||||||
|
cheese_N = mkN "Käse" "Käse" masculine ;
|
||||||
|
fish_N = mkN "Fisch" ;
|
||||||
|
fresh_A = mkA "frisch" ;
|
||||||
|
warm_A = mkA "warm" "wärmer" "wärmste" ;
|
||||||
|
italian_A = mkA "italienisch" ;
|
||||||
|
expensive_A = mkA "teuer" ;
|
||||||
|
delicious_A = mkA "köstlich" ;
|
||||||
|
boring_A = mkA "langweilig" ;
|
||||||
|
}
|
||||||
46
testsuite/lpgf/ResCze.gf
Normal file
46
testsuite/lpgf/ResCze.gf
Normal file
@@ -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"} ;
|
||||||
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user