diff --git a/lib/src/slovenian/CatSlv.gf b/lib/src/slovenian/CatSlv.gf index 69c856638..8a53f7133 100644 --- a/lib/src/slovenian/CatSlv.gf +++ b/lib/src/slovenian/CatSlv.gf @@ -4,6 +4,7 @@ lincat -- Sentence Cl = {s : P.Tense => P.Anteriority => P.Polarity => Str} ; Imp = {s : P.Polarity => Gender => Number => Str} ; + ClSlash = {s : P.Tense => P.Anteriority => P.Polarity => Str ; c2 : Prep} ; ----AR -- Question QCl = {s : P.Tense => P.Anteriority => P.Polarity => Str} ; @@ -36,11 +37,11 @@ lincat Prep = {s : Str; c : Case} ; -- Open lexical classes, e.g. Lexicon - V = {s : VForm => Str}; - VS = {s : VForm => Str}; + V = {s : VForm => Str ; p : Str}; ----AR: +p particle + VS = {s : VForm => Str ; p : Str}; VQ = {s : VForm => Str}; VV = {s : VForm => Str}; - V2 = {s : VForm => Str; c2 : Prep}; + V2 = {s : VForm => Str; c2 : Prep ; p : Str}; ----AR: +p particle A = {s : AForm => Str}; diff --git a/lib/src/slovenian/ConstructionSlv.gf b/lib/src/slovenian/ConstructionSlv.gf index ee79ba1c5..540729b9c 100644 --- a/lib/src/slovenian/ConstructionSlv.gf +++ b/lib/src/slovenian/ConstructionSlv.gf @@ -1,5 +1,5 @@ concrete ConstructionSlv of Construction = CatSlv ** - open ParadigmsSlv in { + open ParadigmsSlv, ResSlv in { flags coding=utf8; @@ -33,4 +33,12 @@ lin october_Month = mkN "oktober" "oktobra" "oktobru" "oktober" "oktobru" "oktobrom" "oktobra" "oktobrov" "oktobroma" "oktobra" "oktobrih" "oktobroma" "oktobri" "oktobrov" "oktobrom" "oktobre" "oktobrih" "oktobri" masculine ; november_Month = mkN "november" "novembra" "novembru" "november" "novembru" "novembrom" "novembra" "novembrov" "novembroma" "novembra" "novembrih" "novembroma" "novembri" "novembrov" "novembrom" "novembre" "novembrih" "novembri" masculine ; december_Month = mkN "december" "decembra" "decembru" "december" "decembru" "decembrom" "decembra" "decembrov" "decembroma" "decembra" "decembrih" "decembroma" "decembri" "decembrov" "decembrom" "decembre" "decembrih" "decembri" masculine ; + + weekdayPunctualAdv w = {s = "v" ++ w.s ! Acc ! Sg} ; ----AR + weekdayHabitualAdv w = {s = "ob" ++ w.s ! Loc ! Pl} ; ----AR + weekdayNextAdv w = {s = "naslednjo" ++ w.s ! Acc ! Sg} ; ----AR + weekdayLastAdv w = {s = "prejšnjo" ++ w.s ! Acc ! Sg} ; ----AR + + monthAdv w = {s = "w" ++ w.s ! Loc ! Sg} ; ----AR + } diff --git a/lib/src/slovenian/ParadigmsSlv.gf b/lib/src/slovenian/ParadigmsSlv.gf index 0796f7c64..ee8d4c311 100644 --- a/lib/src/slovenian/ParadigmsSlv.gf +++ b/lib/src/slovenian/ParadigmsSlv.gf @@ -138,6 +138,8 @@ oper mkV : (x1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,x25 : Str) -> V = worstV ; } ; + particleV : V -> Str -> V = \v,p -> v ** {p = p} ; + -- Regular verbs are formed from two forms. Infinitive and 3rd person singular presens. regV : (_,_ : Str) -> V = \hoditi,hodi -> @@ -209,7 +211,8 @@ oper VImper2 Sg => imp2sg; VImper2 Dl => imp2dl; VImper2 Pl => imp2pl - } + } ; + p = [] ; ----AR: +p }; --Imperative forms are formed separetely. Pattern matching performed on thirdpersonsingular verbform. diff --git a/lib/src/slovenian/QuestionSlv.gf b/lib/src/slovenian/QuestionSlv.gf index 1f81c41ed..cd32e4a94 100644 --- a/lib/src/slovenian/QuestionSlv.gf +++ b/lib/src/slovenian/QuestionSlv.gf @@ -4,7 +4,11 @@ concrete QuestionSlv of Question = CatSlv ** open ResSlv,Prelude in { lin QuestVP ip vp = mkClause (ip.s ! Nom) ip.a False vp ; QuestCl cl = {s = \\t,a,p => "ali" ++ cl.s ! t ! a ! p} ; + QuestSlash ip cls = {s = \\t,a,p => cls.c2.s ++ ip.s ! cls.c2.c ++ cls.s ! t ! a ! p} ; QuestIAdv iadv cl = {s = \\t,a,p => iadv.s ++ cl.s ! t ! a ! p} ; + QuestIComp icomp np = mkClause icomp.s np.a np.isPron {s = copula ; s2 = \\_ => [] ; isCop = True} ; + CompIAdv a = a ; + CompIP p = ss (p.s ! Nom) ; ------AR END diff --git a/lib/src/slovenian/SentenceSlv.gf b/lib/src/slovenian/SentenceSlv.gf index 23aa22fc2..6293bc022 100644 --- a/lib/src/slovenian/SentenceSlv.gf +++ b/lib/src/slovenian/SentenceSlv.gf @@ -7,6 +7,8 @@ lin s = \\p,g,n => vp.s ! p ! VImper2 n ++ vp.s2 ! {g=g; n=n; p=P2} ; } ; + SlashVP np vp = mkClause (np.s ! Nom) np.a np.isPron vp ** {c2 = vp.c2} ; + UseCl t p cl = { s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p } ; diff --git a/lib/src/slovenian/StructuralSlv.gf b/lib/src/slovenian/StructuralSlv.gf index c14f02347..85975cc11 100644 --- a/lib/src/slovenian/StructuralSlv.gf +++ b/lib/src/slovenian/StructuralSlv.gf @@ -29,6 +29,7 @@ lin "mòje" "mòjega" "mòjemu" "mòjo" "mòjem" "mòjim" "mòji" "mòjih" "mòjima" "mòji" "mòjih" "mòjima" "mòja" "mòjih" "mòjim" "mòja" "mòjih" "mòjimi" Masc Sg P1 ; + if_Subj = ss "če" ; in_Prep = mkPrep "v" locative ; it_Pron = mkPron "ôno" "njêga" "njêga" "njêmu" "njêm" "njím" ("njegôv"|"njegòv") "njegôvega" "njegôvemu" ("njegôv"|"njegôvega") "njegôvem" "njegôvim" @@ -41,6 +42,8 @@ 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" Neut Sg P3 ; must_VV = regV "morati" "mora" ; + or_Conj = mkConj "ali" Sg ; + she_Pron = variants {mkPron "ôna" "njó" "njé" "njéj" "njéj" "njó" ; mkPron "ôna" "njó" "njé" "njèj" "njèj" "njó" ; mkPron "ôna" "njó" "njé" "njì" "njì" "njó"} @@ -81,6 +84,7 @@ lin "tȏ" "tȇga" "tȇmu" "tȏ" "tȇm" "tȇm" "tî" "tȇh" "tȇma" "tî" "tȇh" "tȇma" "tȃ" "tȇh" "tȇm" "tȃ" "tȇh" "tȇmi" Def ; + very_AdA = {s = "zelo"} ; ----AR want_VV = regV "želeti" "želi"; we_Pron = mkPron "mí" "nàs" "nàs" "nàm" "nàs" "nàmi" "nàš" "nášega" "nášemu" ("náši"|"nášega") "nášem" "nášim" @@ -96,7 +100,7 @@ lin when_Subj = {s="medtem ko"} ; where_IAdv = {s="kje"} ; - whatSg_NP = mkNP "káj" "káj" "čésa" "čému" "čém" "čím" Neut Sg ; ----AR + whatSg_IP = 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"} ; diff --git a/lib/src/slovenian/VerbSlv.gf b/lib/src/slovenian/VerbSlv.gf index 4f045a3eb..d75892926 100644 --- a/lib/src/slovenian/VerbSlv.gf +++ b/lib/src/slovenian/VerbSlv.gf @@ -3,13 +3,13 @@ concrete VerbSlv of Verb = CatSlv ** open ResSlv, ParamX, Prelude in { lin UseV v = { s = \\p,vform => ne ! p ++ v.s ! vform ; - s2 = \\a => "" ; + s2 = \\a => v.p ; ----AR: +p particle isCop = False } ; SlashV2a v = { s = \\p,vform => ne ! p ++ v.s ! vform ; - s2 = \\a => "" ; + s2 = \\a => v.p ; ----AR: +p particle c2 = v.c2 ; isCop = False } ; @@ -28,5 +28,8 @@ concrete VerbSlv of Verb = CatSlv ** open ResSlv, ParamX, Prelude in { CompAP ap = { s = \\agr => ap.s ! Indef ! inanimateGender agr.g ! Nom ! agr.n } ; + + CompAdv adv = {s = \\agr => adv.s} ; ----AR + CompNP np = {s = \\agr => np.s ! Nom} ; ----AR }