diff --git a/lib/src/slovenian/CatSlv.gf b/lib/src/slovenian/CatSlv.gf index 566dd98c3..69c856638 100644 --- a/lib/src/slovenian/CatSlv.gf +++ b/lib/src/slovenian/CatSlv.gf @@ -7,6 +7,7 @@ lincat -- Question QCl = {s : P.Tense => P.Anteriority => P.Polarity => Str} ; + IP = {s : Case => Str; a : Agr} ; ----AR -- Verb VP = ResSlv.VP ; diff --git a/lib/src/slovenian/GrammarSlv.gf b/lib/src/slovenian/GrammarSlv.gf index 2ab83e31b..f8650ba29 100644 --- a/lib/src/slovenian/GrammarSlv.gf +++ b/lib/src/slovenian/GrammarSlv.gf @@ -13,7 +13,7 @@ concrete GrammarSlv of Grammar = PhraseSlv, TextX - [Pol,PPos,PNeg], StructuralSlv, -{- IdiomSlv, -} + IdiomSlv, ----AR TenseX ** { diff --git a/lib/src/slovenian/IdiomSlv.gf b/lib/src/slovenian/IdiomSlv.gf new file mode 100644 index 000000000..a37842a7c --- /dev/null +++ b/lib/src/slovenian/IdiomSlv.gf @@ -0,0 +1,13 @@ +----AR BEGIN the whole IdiomSlv +concrete IdiomSlv of Idiom = CatSlv ** + open ParadigmsSlv, ResSlv, Prelude in { + + lin + ExistNP np = + mkClause [] np.a False { + s = \\p,vform => ne ! p ++ (mkV "obstajati" "obstaja").s ! vform ; + s2 = \\a => np.s ! Nom ; + isCop = False + } ; +} +----AR END \ No newline at end of file diff --git a/lib/src/slovenian/NumeralSlv.gf b/lib/src/slovenian/NumeralSlv.gf index 3618a8949..b1d1794c5 100644 --- a/lib/src/slovenian/NumeralSlv.gf +++ b/lib/src/slovenian/NumeralSlv.gf @@ -187,4 +187,50 @@ oper mkDigit2 : (_,_,_,_,_,_ : Str) -> Gender => Case => Str; Loc => s+"ih" ; Instr => s+"imi" } ; + +-----------------------------------------AR BEGIN ; copied from Italian +-- numerals as sequences of digits + + lincat + Dig = TDigit ; + + lin + IDig d = d ; + + IIDig d i = { + s = d.s ++ BIND ++ i.s ; +---- s = \\o => d.s ! NCard Masc ++ BIND ++ i.s ! o ; + n = Pl + } ; + + D_0 = mkDig "0" ; + D_1 = mk2Dig "1" Sg ; ---- gender + D_2 = mkDig "2" ; + D_3 = mkDig "3" ; + D_4 = mkDig "4" ; + D_5 = mkDig "5" ; + D_6 = mkDig "6" ; + D_7 = mkDig "7" ; + D_8 = mkDig "8" ; + D_9 = mkDig "9" ; + + oper + mkDig : Str -> TDigit = \c -> mk2Dig c Pl ; + + mk2Dig : Str -> Number -> TDigit = \c,n -> { + s = c ; ---- +---- s = table {NCard _ => c ; +---- NOrd Masc Sg => c + ":o" ; NOrd Fem Sg => c + ":a" ; +---- NOrd Masc Pl => c + ":i" ; NOrd Fem Pl => c + ":e" +---- } ; + n = n + } ; + + TDigit = { + n : Number ; + s : Str ; ---- CardOrd => Str + } ; + +---------------------AR END + } diff --git a/lib/src/slovenian/PhraseSlv.gf b/lib/src/slovenian/PhraseSlv.gf index e9daee47b..404e52200 100644 --- a/lib/src/slovenian/PhraseSlv.gf +++ b/lib/src/slovenian/PhraseSlv.gf @@ -12,7 +12,11 @@ concrete PhraseSlv of Phrase = CatSlv ** open Prelude, ResSlv, (P=ParamX) in { UttNP np = {s = np.s ! Nom} ; UttVP vp = {s = vp.s ! P.Pos ! VInf ++ vp.s2 ! {g=Masc; n=Sg; p=P3}} ; UttAdv adv = adv ; - UttCN n = {s = n.s ! Indef ! Nom ! Sg} ; + + UttIAdv iadv = iadv ; ----AR + UttIP ip = {s = ip.s ! Nom} ; ----AR + + UttCN n = {s = n.s ! Indef ! Nom ! Sg} ; UttCard n = {s = n.s ! Fem ! Nom} ; UttAP ap = {s = ap.s ! Indef ! AMasc Inanimate ! Nom ! Sg} ; UttInterj i = i ; diff --git a/lib/src/slovenian/QuestionSlv.gf b/lib/src/slovenian/QuestionSlv.gf index b0fdf0f85..1f81c41ed 100644 --- a/lib/src/slovenian/QuestionSlv.gf +++ b/lib/src/slovenian/QuestionSlv.gf @@ -1,2 +1,12 @@ -concrete QuestionSlv of Question = CatSlv ** open ResSlv in { +concrete QuestionSlv of Question = CatSlv ** open ResSlv,Prelude in { + +------AR BEGIN +lin + QuestVP ip vp = mkClause (ip.s ! Nom) ip.a False vp ; + QuestCl cl = {s = \\t,a,p => "ali" ++ cl.s ! t ! a ! p} ; + QuestIAdv iadv cl = {s = \\t,a,p => iadv.s ++ cl.s ! t ! a ! p} ; + + +------AR END + } diff --git a/lib/src/slovenian/StructuralSlv.gf b/lib/src/slovenian/StructuralSlv.gf index 6f67c99f5..c14f02347 100644 --- a/lib/src/slovenian/StructuralSlv.gf +++ b/lib/src/slovenian/StructuralSlv.gf @@ -1,10 +1,12 @@ -concrete StructuralSlv of Structural = CatSlv ** open ResSlv, ParadigmsSlv in { +concrete StructuralSlv of Structural = CatSlv ** open ResSlv, ParadigmsSlv, Prelude in { lin although_Subj = {s="čeprav"} ; and_Conj = mkConj "in" Pl ; because_Subj = {s="zato ket"} ; - can_VV = {s = \\vform => case vform of {_ => "lahko"} }; + can_VV = {s = \\vform => case vform of {_ => "lahko"} }; + have_V2 = mkV2 (mkV "iméti" "imá") ; ----AR + he_Pron = mkPron "òn" "njêga" "njêga" "njêmu" "njêm" "njím" "njegôv" "njegôvega" "njegôvemu" ("njegôv"|"njegôvega") "njegôvem" "njegôvim" "njegôva" "njegôvih" "njegôvima" "njegôva" "njegôvih" "njegôvima" @@ -16,6 +18,7 @@ lin "njegôvi" "njegôvih" "njegôvima" "njegôvi" "njegôvih" "njegôvima" "njegôva" "njegôvih" "njegôvim" "njegôva" "njegôvih" "njegôvimi" Masc Sg P3 ; here_Adv = {s="tukaj"} ; + how8much_IAdv = ss "koliko" ; i_Pron = mkPron "jàz" "méne" "méne" "méni" "méni" ("menój"|"máno") "mój" "mòjega" "mòjemu" ("mòj"|"mòjega") "mòjem" "mòjim" "mòja" "mòjih" "mòjima" "mòja" "mòjih" "mòjima" @@ -92,8 +95,13 @@ lin when_IAdv = {s="kdaj"} ; when_Subj = {s="medtem ko"} ; where_IAdv = {s="kje"} ; + + whatSg_NP = mkNP "káj" "káj" "čésa" "čému" "čém" "čím" Neut Sg ; ----AR + whoSg_IP = mkNP "kdó" "kóga" "kóga" "kómu" "kóm" "kóm" Masc Sg ; ----AR + why_IAdv = {s="zakaj"} ; with_Prep = mkPrep "z" instrumental ; + without_Prep = mkPrep "brez" genitive ; ----AR youSg_Pron = mkPron "tí" "tébe" "tébe" "tébi" "tébi" ("tebój"|"tábo") "tvój" "tvòjega" "tvòjemu" ("tvòj"|"tvòjega") "tvòjem" "tvòjim" "tvòja" "tvòjih" "tvòjima" "tvòja" "tvòjih" "tvòjima"