mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-29 09:40:21 +00:00
92 lines
3.0 KiB
Plaintext
92 lines
3.0 KiB
Plaintext
--# -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
|
|
}
|
|
} ;
|
|
|
|
}
|