From 73c76ec92720802af2b686716266f9dec21a43e5 Mon Sep 17 00:00:00 2001 From: krasimir Date: Fri, 6 May 2016 09:02:21 +0000 Subject: [PATCH] PossPron, DetNP and PrepNP in Slovenian --- lib/src/slovenian/AdverbSlv.gf | 6 ++++++ lib/src/slovenian/CatSlv.gf | 2 +- lib/src/slovenian/GrammarSlv.gf | 2 +- lib/src/slovenian/NounSlv.gf | 10 ++++++++++ lib/src/slovenian/ParadigmsSlv.gf | 5 +++-- lib/src/slovenian/StructuralSlv.gf | 22 +++++++++++----------- 6 files changed, 32 insertions(+), 15 deletions(-) create mode 100644 lib/src/slovenian/AdverbSlv.gf diff --git a/lib/src/slovenian/AdverbSlv.gf b/lib/src/slovenian/AdverbSlv.gf new file mode 100644 index 000000000..6fc95c8b7 --- /dev/null +++ b/lib/src/slovenian/AdverbSlv.gf @@ -0,0 +1,6 @@ +concrete AdverbSlv of Adverb = CatSlv ** open ResSlv in { + + lin + PrepNP prep np = {s = prep.s ++ np.s ! prep.c} ; + +} diff --git a/lib/src/slovenian/CatSlv.gf b/lib/src/slovenian/CatSlv.gf index 92bab6ac2..7e3f43007 100644 --- a/lib/src/slovenian/CatSlv.gf +++ b/lib/src/slovenian/CatSlv.gf @@ -17,7 +17,7 @@ lincat CN = {s : Species => Case => Number => Str; g : Gender} ; NP = {s : Case => Str ; a : Agr} ; - Pron = {s : Case => Str ; a : Agr} ; + Pron = {s : Case => Str; poss : Str; a : Agr} ; Det = {s : Gender => Case => Str; spec : Species; n : NumAgr} ; Num = {s : Gender => Case => Str ; n : NumAgr} ; diff --git a/lib/src/slovenian/GrammarSlv.gf b/lib/src/slovenian/GrammarSlv.gf index 2992b833f..0e1c382eb 100644 --- a/lib/src/slovenian/GrammarSlv.gf +++ b/lib/src/slovenian/GrammarSlv.gf @@ -4,7 +4,7 @@ concrete GrammarSlv of Grammar = NounSlv, VerbSlv, AdjectiveSlv, -{- AdverbSlv,-} + AdverbSlv, NumeralSlv, SentenceSlv, {- QuestionSlv, diff --git a/lib/src/slovenian/NounSlv.gf b/lib/src/slovenian/NounSlv.gf index 36cdbffa3..4d5acb602 100644 --- a/lib/src/slovenian/NounSlv.gf +++ b/lib/src/slovenian/NounSlv.gf @@ -24,6 +24,16 @@ concrete NounSlv of Noun = CatSlv ** open ResSlv in { n = num.n ; } ; + DetNP det = { + s = det.s ! Masc ; + a = {g=Masc; n=case det.n of {UseNum n=>n; UseGen=>Pl}; p=P3}; + } ; + + PossPron p = { + s = p.poss ; + spec = Indef + } ; + NumSg = {s = \\_,_ => []; n = UseNum Sg} ; NumPl = {s = \\_,_ => []; n = UseNum Pl} ; diff --git a/lib/src/slovenian/ParadigmsSlv.gf b/lib/src/slovenian/ParadigmsSlv.gf index 51cb40524..4c13caa6a 100644 --- a/lib/src/slovenian/ParadigmsSlv.gf +++ b/lib/src/slovenian/ParadigmsSlv.gf @@ -279,8 +279,8 @@ oper mkAdV : Str -> AdV = \s -> lin AdV {s=s} ; - mkPron : (_,_,_,_,_,_ : Str) -> Gender -> Number -> Person -> Pron = - \nom,acc,gen,dat,loc,instr,g,n,p -> + mkPron : (_,_,_,_,_,_,_ : Str) -> Gender -> Number -> Person -> Pron = + \nom,acc,gen,dat,loc,instr,poss,g,n,p -> lin Pron {s = table { Nom => nom; Acc => acc; @@ -289,6 +289,7 @@ oper Loc => loc; Instr=>instr } ; + poss = poss ; a = {g=g; n=n; p=p} } ; diff --git a/lib/src/slovenian/StructuralSlv.gf b/lib/src/slovenian/StructuralSlv.gf index f8045c88c..915182d4d 100644 --- a/lib/src/slovenian/StructuralSlv.gf +++ b/lib/src/slovenian/StructuralSlv.gf @@ -1,17 +1,17 @@ concrete StructuralSlv of Structural = CatSlv ** open ResSlv, ParadigmsSlv in { lin - he_Pron = mkPron "òn" "njêga" "njêga" "njêmu" "njêm" "njím" Masc Sg P3 ; - i_Pron = mkPron "jàz" "méne" "méne" "méni" "méni" ("menój"|"máno") Masc Sg P1 ; - it_Pron = mkPron "ôno" "njêga" "njêga" "njêmu" "njêm" "njím" Neut Sg P3 ; - she_Pron = variants {mkPron "ôna" "njó" "njé" "njéj" "njéj" "njó" Fem Sg P3 ; - mkPron "ôna" "njó" "njé" "njèj" "njèj" "njó" Fem Sg P3 ; - mkPron "ôna" "njó" "njé" "njì" "njì" "njó" Fem Sg P3 } ; - they_Pron = mkPron "ôni" "njìh" "njìh" "njìm" "njìh" "njími" Masc Pl P3 ; - we_Pron = mkPron "mí" "nàs" "nàs" "nàm" "nàs" "nàmi" Masc Pl P1 ; - youSg_Pron = mkPron "tí" "tébe" "tébe" "tébi" "tébi" ("tebój"|"tábo") Masc Sg P2 ; - youPl_Pron = mkPron "ví" "vàs" "vàs" "vàm" "vàs" "vàmi" Masc Pl P2 ; - youPol_Pron = mkPron "ví" "vàs" "vàs" "vàm" "vàs" "vàmi" Masc Pl P2 ; + he_Pron = mkPron "òn" "njêga" "njêga" "njêmu" "njêm" "njím" "njegôv" Masc Sg P3 ; + i_Pron = mkPron "jàz" "méne" "méne" "méni" "méni" ("menój"|"máno") "mój" Masc Sg P1 ; + it_Pron = mkPron "ôno" "njêga" "njêga" "njêmu" "njêm" "njím" ("njegôv"|"njegòv") Neut Sg P3 ; + she_Pron = variants {mkPron "ôna" "njó" "njé" "njéj" "njéj" "njó" "njén" Fem Sg P3 ; + mkPron "ôna" "njó" "njé" "njèj" "njèj" "njó" "njén" Fem Sg P3 ; + mkPron "ôna" "njó" "njé" "njì" "njì" "njó" "njén" Fem Sg P3 } ; + they_Pron = mkPron "ôni" "njìh" "njìh" "njìm" "njìh" "njími" "njíhov" Masc Pl P3 ; + we_Pron = mkPron "mí" "nàs" "nàs" "nàm" "nàs" "nàmi" "nàš" Masc Pl P1 ; + youSg_Pron = mkPron "tí" "tébe" "tébe" "tébi" "tébi" ("tebój"|"tábo") "tvój" Masc Sg P2 ; + youPl_Pron = mkPron "ví" "vàs" "vàs" "vàm" "vàs" "vàmi" "vàš" Masc Pl P2 ; + youPol_Pron = mkPron "ví" "vàs" "vàs" "vàm" "vàs" "vàmi" "vàš" Masc Pl P2 ; somebody_NP = mkNP "nekdo" "nekóga" "nekóga" "nekómu" "nekóm" "nekóm" Masc Sg ; something_NP = mkNP "nekaj" "nekaj" "nečésa" "nečému" "nečém" "nečīm" Neut Sg ; nobody_NP = mkNP "nihčè" "nikȏgar" "nikȏgar" "nikȏmur" "nikȏmer" "nikȏmer" Masc Sg ;