mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-28 01:18:57 -06:00
Slovak complete up to Czech, except content words, and needs checking
This commit is contained in:
@@ -35,31 +35,31 @@ oper mk2Num : Determiner -> Str -> Str -> Str -> LinDigit =
|
|||||||
\unit, teenbase, tenbase, hundred ->
|
\unit, teenbase, tenbase, hundred ->
|
||||||
mkNum unit teenbase (tenbase + "cet") hundred ;
|
mkNum unit teenbase (tenbase + "cet") hundred ;
|
||||||
|
|
||||||
oper mk5Num : Str -> Str -> Str -> Str -> LinDigit =
|
oper mk5Num : Str -> Str -> Str -> Str -> Str -> Str -> LinDigit =
|
||||||
\unit,uniti, teenbase, tenbase ->
|
\unit,unitich,unitim,unitimi, teenbase, tenbase ->
|
||||||
mkNum (regNumeral unit uniti) teenbase (tenbase + "desát") (unit ++ "set") ;
|
mkNum (regNumeral unit unitich unitim unitimi) teenbase (tenbase + "desiat") (unit ++ "sto") ;
|
||||||
|
|
||||||
oper bigNumeral : Str -> LinNumeral = \s -> invarNumeral s ;
|
oper bigNumeral : Str -> LinNumeral = \s -> invarNumeral s ;
|
||||||
|
|
||||||
lin num x = x ;
|
lin num x = x ;
|
||||||
|
|
||||||
lin n2 = mk2Num twoNumeral "dva" "dva" ("dvě" ++ "stě") ;
|
lin n2 = mk2Num twoNumeral "dva" "dva" ("dve" ++ "sto") ;
|
||||||
lin n3 = mk2Num threeNumeral "tři" "tři" ("tři" ++ "sta") ;
|
lin n3 = mk2Num threeNumeral "tri" "tri" ("tri" ++ "sto") ;
|
||||||
lin n4 = mk2Num fourNumeral "čtr" "čtyři" ("čtyři" ++ "sta") ;
|
lin n4 = mk2Num fourNumeral "štr" "štyři" ("styri" ++ "sto") ;
|
||||||
lin n5 = mk5Num "pět" "pěti" "pat" "pa" ;
|
lin n5 = mk5Num "päť" "piatich" "piatim" "piatimi" "pät" "pät" ; ----
|
||||||
lin n6 = mk5Num "šest" "šesti" "šest" "še" ;
|
lin n6 = mk5Num "šest" "šestich" "šestim" "šestimi" "šest" "šest" ; ----
|
||||||
lin n7 = mk5Num "sedm" "sedmi" "sedm" "sedm";
|
lin n7 = mk5Num "sedem" "sedemich" "sedemim" "sedemimi" "sedem" "sedem"; ----
|
||||||
lin n8 = mk5Num "osm" "osmi" "osm" "osm";
|
lin n8 = mk5Num "osem" "osemich" "osemim" "osemimi" "osem" "osem";
|
||||||
lin n9 = mk5Num "devět" "devíti" "devate" "deva" ;
|
lin n9 = mk5Num "deväť" "deviatich" "deviatim" "deviatimi" "deväť" "deväť" ;
|
||||||
|
|
||||||
lin pot01 = {
|
lin pot01 = {
|
||||||
unit = oneNumeral.s ; hundred = "sto" ; ten = "deset" ; teen = "jedenáct" ;
|
unit = oneNumeral.s ; hundred = "sto" ; ten = "desať" ; teen = "jedenásť" ;
|
||||||
size = Num1
|
size = Num1
|
||||||
} ;
|
} ;
|
||||||
lin pot0 d = d ;
|
lin pot0 d = d ;
|
||||||
|
|
||||||
lin pot110 = bigNumeral "deset" ;
|
lin pot110 = bigNumeral "desať" ;
|
||||||
lin pot111 = bigNumeral "jedenáct" ;
|
lin pot111 = bigNumeral "jedenásť" ;
|
||||||
lin pot1to19 d = bigNumeral d.teen ;
|
lin pot1to19 d = bigNumeral d.teen ;
|
||||||
|
|
||||||
lin pot0as1 n = {s = n.unit ; size = n.size} ;
|
lin pot0as1 n = {s = n.unit ; size = n.size} ;
|
||||||
@@ -91,8 +91,8 @@ oper tfSize : NumSize -> NumSize = \sz ->
|
|||||||
oper mkTh : Str -> NumSize -> Str = \attr,size ->
|
oper mkTh : Str -> NumSize -> Str = \attr,size ->
|
||||||
case size of {
|
case size of {
|
||||||
Num1 => "tisíc" ;
|
Num1 => "tisíc" ;
|
||||||
Num2_4 => attr ++ "tisíce" ;
|
Num2_4 => attr ++ "tisíc" ;
|
||||||
Num5 => attr ++ "tisíc"
|
Num5 => attr ++ "tisí"
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
oper determinerStr : Determiner -> Str = \d -> d.s ! Masc Anim ! Nom ;
|
oper determinerStr : Determiner -> Str = \d -> d.s ! Masc Anim ! Nom ;
|
||||||
|
|||||||
@@ -584,14 +584,13 @@ adjFormsAdjective : AdjForms -> Adjective = \afs -> {
|
|||||||
|
|
||||||
---------------------
|
---------------------
|
||||||
-- Verbs
|
-- Verbs
|
||||||
|
-- https://en.wikipedia.org/wiki/Slovak_language#Verbs
|
||||||
|
|
||||||
VerbForms : Type = { ---- TODO more forms to add
|
VerbForms : Type = { ---- TODO more forms to add ?
|
||||||
inf,
|
inf,
|
||||||
pressg1, pressg2, pressg3,
|
pressg1, pressg2, pressg3,
|
||||||
prespl1, prespl2, prespl3,
|
prespl1, prespl2, prespl3,
|
||||||
pastpartsg, pastpartpl,
|
pastpmasc, pastpfem, pastpneutr : Str
|
||||||
---- passpart,
|
|
||||||
negpressg3 : Str -- matters only for copula
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ComplementCase : Type = {s : Str ; c : Case ; hasPrep : Bool} ;
|
ComplementCase : Type = {s : Str ; c : Case ; hasPrep : Bool} ;
|
||||||
@@ -600,38 +599,36 @@ adjFormsAdjective : AdjForms -> Adjective = \afs -> {
|
|||||||
= \vf,a,b -> case a of {
|
= \vf,a,b -> case a of {
|
||||||
Ag _ Sg P1 => vf.pressg1 ;
|
Ag _ Sg P1 => vf.pressg1 ;
|
||||||
Ag _ Sg P2 => vf.pressg2 ;
|
Ag _ Sg P2 => vf.pressg2 ;
|
||||||
Ag _ Sg P3 => case b of {
|
Ag _ Sg P3 => vf.pressg3 ;
|
||||||
True => vf.pressg3 ;
|
|
||||||
False => vf.negpressg3 -- matters only for copula
|
|
||||||
} ;
|
|
||||||
Ag _ Pl P1 => vf.prespl1 ;
|
Ag _ Pl P1 => vf.prespl1 ;
|
||||||
Ag _ Pl P2 => vf.prespl2 ;
|
Ag _ Pl P2 => vf.prespl2 ;
|
||||||
Ag _ Pl P3 => vf.prespl3
|
Ag _ Pl P3 => vf.prespl3
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
copulaVerbForms : VerbForms = {
|
copulaVerbForms : VerbForms = {
|
||||||
inf = "být" ;
|
inf = "byť" ;
|
||||||
pressg1 = "jsem" ;
|
pressg1 = "som" ;
|
||||||
pressg2 = "jsi" ;
|
pressg2 = "si" ;
|
||||||
pressg3 = "je" ;
|
pressg3 = "je" ;
|
||||||
prespl1 = "jsme" ;
|
prespl1 = "sme" ;
|
||||||
prespl2 = "jste" ;
|
prespl2 = "ste" ;
|
||||||
prespl3 = "jsou" ;
|
prespl3 = "sú" ;
|
||||||
pastpartsg = "byl" ;
|
pastpmasc = "bol" ;
|
||||||
pastpartpl = "byli" ;
|
pastpfem = "bola" ;
|
||||||
negpressg3 = "ní" ; -- ne is added to this
|
pastpneutr = "bolo" ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
haveVerbForms : VerbForms = {
|
haveVerbForms : VerbForms = {
|
||||||
inf = "mít" ;
|
inf = "mať" ;
|
||||||
pressg1 = "mám" ;
|
pressg1 = "mám" ;
|
||||||
pressg2 = "máš" ;
|
pressg2 = "máš" ;
|
||||||
pressg3, negpressg3 = "má" ;
|
pressg3 = "má" ;
|
||||||
prespl1 = "máme" ;
|
prespl1 = "máme" ;
|
||||||
prespl2 = "máte" ;
|
prespl2 = "máte" ;
|
||||||
prespl3 = "mají" ;
|
prespl3 = "majú" ;
|
||||||
pastpartsg = "měl" ;
|
pastpmasc = "mal" ;
|
||||||
pastpartpl = "měli" ;
|
pastpfem = "mala" ;
|
||||||
|
pastpneutr = "malo" ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- just an example of a traditional paradigm
|
-- just an example of a traditional paradigm
|
||||||
@@ -644,14 +641,15 @@ adjFormsAdjective : AdjForms -> Adjective = \afs -> {
|
|||||||
in
|
in
|
||||||
{
|
{
|
||||||
inf = kupovat ;
|
inf = kupovat ;
|
||||||
pressg1 = kupu + "ji" ; --- kupuju
|
pressg1 = kupu + "jem" ;
|
||||||
pressg2 = kupu + "ješ" ;
|
pressg2 = kupu + "ješ" ;
|
||||||
pressg3, negpressg3 = kupu + "je" ;
|
pressg3 = kupu + "je" ;
|
||||||
prespl1 = kupu + "jeme" ;
|
prespl1 = kupu + "jeme" ;
|
||||||
prespl2 = kupu + "jete" ;
|
prespl2 = kupu + "jete" ;
|
||||||
prespl3 = kupu + "jí" ; --- kupujou
|
prespl3 = kupu + "jú" ;
|
||||||
pastpartsg = kupo + "val" ;
|
pastpmasc = "kupoval" ;
|
||||||
pastpartpl = kupo + "vali" ;
|
pastpfem = "kupovala" ;
|
||||||
|
pastpneutr = "kupovalo" ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
@@ -901,17 +899,17 @@ oper
|
|||||||
in numeralFormsDeterminer forms Num2_4 ;
|
in numeralFormsDeterminer forms Num2_4 ;
|
||||||
|
|
||||||
-- for the numbers 5 upwards
|
-- for the numbers 5 upwards
|
||||||
regNumeral : Str -> Str -> Determiner = \pät,piati ->
|
regNumeral : Str -> Str -> Str -> Str -> Determiner = \pät,piatich,piatim,piatimi ->
|
||||||
let forms = {
|
let forms = {
|
||||||
msnom,fsnom,nsnom, fsacc = pät ;
|
msnom,fsnom,nsnom, fsacc = pät ;
|
||||||
msgen, fsgen, msloc = piati + "ch" ;
|
msgen, fsgen, msloc = piatich ;
|
||||||
msdat = piati + "m" ;
|
msdat = piatim ;
|
||||||
msins, fsins = piati + "mi" ;
|
msins, fsins = piatimi ;
|
||||||
}
|
}
|
||||||
in numeralFormsDeterminer forms Num5 ;
|
in numeralFormsDeterminer forms Num5 ;
|
||||||
|
|
||||||
invarDeterminer : Str -> NumSize -> Determiner = \sto,size ->
|
invarDeterminer : Str -> NumSize -> Determiner = \sto,size ->
|
||||||
regNumeral sto sto ;
|
regNumeral sto sto sto sto ;
|
||||||
|
|
||||||
invarNumeral : Str -> Determiner = \s -> invarDeterminer s Num5 ;
|
invarNumeral : Str -> Determiner = \s -> invarDeterminer s Num5 ;
|
||||||
|
|
||||||
|
|||||||
@@ -4,20 +4,20 @@ concrete StructuralSlo of Structural = CatSlo **
|
|||||||
lin
|
lin
|
||||||
and_Conj = mkConj "a" ;
|
and_Conj = mkConj "a" ;
|
||||||
by8agent_Prep = mkPrep "od" Gen ; ---- TODO this means "from", there might be no good translation
|
by8agent_Prep = mkPrep "od" Gen ; ---- TODO this means "from", there might be no good translation
|
||||||
few_Det = invarNumeral "málo" ; -- CEG 6.8 --- TODO genitive mála
|
few_Det = invarNumeral "málo" ; -----
|
||||||
for_Prep = mkPrep "pro" accusative ;
|
for_Prep = mkPrep "pro" accusative ;
|
||||||
from_Prep = mkPrep (pre {"s"|"z" => "ze" ; _ => "z"}) Gen ; ---- consonant clusters
|
from_Prep = mkPrep (pre {"s"|"z" => "zo" ; _ => "z"}) Gen ; ---- consonant clusters
|
||||||
have_V2 = mkV2 haveVerbForms ;
|
have_V2 = mkV2 haveVerbForms ;
|
||||||
in_Prep = mkPrep (pre {"v"|"m" => "ve" ; _ => "v"}) Loc ; ----
|
in_Prep = mkPrep (pre {"v"|"m" => "vo" ; _ => "v"}) Loc ; ----
|
||||||
many_Det = regNumeral "mnoho" "mnoha" ; -- CEG 6.8 ----
|
many_Det = regNumeral "mnoho" "mnohých" "mnohým" "mnohými" ; -- CEG 6.8 ----
|
||||||
or_Conj = mkConj "nebo" ;
|
or_Conj = mkConj "alebo" ;
|
||||||
somePl_Det = regNumeral "několik" "několika" ; -- CEG 6.8 ----
|
somePl_Det = {s = \\g,c => (demPronFormsAdjective (mkDemPronForms "nektor") "").s ! g ! Pl ! c ; size = Num5} ;
|
||||||
something_NP = {s,clit,prep = \\c => "ně" + coForms ! c ; a = Ag Neutr Sg P3 ; hasClit = False} ; -- CEG 5.6.3
|
something_NP = {s,clit,prep = \\c => "nie" + coForms ! c ; a = Ag Neutr Sg P3 ; hasClit = False} ; -- CEG 5.6.3
|
||||||
possess_Prep = mkPrep "" Gen ;
|
possess_Prep = mkPrep "" Gen ;
|
||||||
that_Quant = demPronFormsAdjective (mkDemPronForms "tamt") "" ;
|
that_Quant = demPronFormsAdjective (mkDemPronForms "tamt") "" ;
|
||||||
this_Quant = demPronFormsAdjective (mkDemPronForms "t") "to" ;
|
this_Quant = demPronFormsAdjective (mkDemPronForms "t") "to" ;
|
||||||
to_Prep = mkPrep "do" Gen ;
|
to_Prep = mkPrep "do" Gen ;
|
||||||
with_Prep = mkPrep (pre {"s"|"z" => "se" ; _ => "s"}) Ins ; ----
|
with_Prep = mkPrep (pre {"s"|"z" => "so" ; _ => "s"}) Ins ; ----
|
||||||
|
|
||||||
i_Pron = personalPron (Ag (Masc Anim) Sg P1) ;
|
i_Pron = personalPron (Ag (Masc Anim) Sg P1) ;
|
||||||
youSg_Pron = personalPron (Ag (Masc Anim) Sg P2) ;
|
youSg_Pron = personalPron (Ag (Masc Anim) Sg P2) ;
|
||||||
|
|||||||
Reference in New Issue
Block a user