forked from GitHub/gf-core
some more functions added to Slv by guessing and using Morgan Nilsson's grammar book
This commit is contained in:
@@ -4,6 +4,7 @@ lincat
|
|||||||
-- Sentence
|
-- Sentence
|
||||||
Cl = {s : P.Tense => P.Anteriority => P.Polarity => Str} ;
|
Cl = {s : P.Tense => P.Anteriority => P.Polarity => Str} ;
|
||||||
Imp = {s : P.Polarity => Gender => Number => Str} ;
|
Imp = {s : P.Polarity => Gender => Number => Str} ;
|
||||||
|
ClSlash = {s : P.Tense => P.Anteriority => P.Polarity => Str ; c2 : Prep} ; ----AR
|
||||||
|
|
||||||
-- Question
|
-- Question
|
||||||
QCl = {s : P.Tense => P.Anteriority => P.Polarity => Str} ;
|
QCl = {s : P.Tense => P.Anteriority => P.Polarity => Str} ;
|
||||||
@@ -36,11 +37,11 @@ lincat
|
|||||||
Prep = {s : Str; c : Case} ;
|
Prep = {s : Str; c : Case} ;
|
||||||
|
|
||||||
-- Open lexical classes, e.g. Lexicon
|
-- Open lexical classes, e.g. Lexicon
|
||||||
V = {s : VForm => Str};
|
V = {s : VForm => Str ; p : Str}; ----AR: +p particle
|
||||||
VS = {s : VForm => Str};
|
VS = {s : VForm => Str ; p : Str};
|
||||||
VQ = {s : VForm => Str};
|
VQ = {s : VForm => Str};
|
||||||
VV = {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};
|
A = {s : AForm => Str};
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
concrete ConstructionSlv of Construction = CatSlv **
|
concrete ConstructionSlv of Construction = CatSlv **
|
||||||
open ParadigmsSlv in {
|
open ParadigmsSlv, ResSlv in {
|
||||||
|
|
||||||
flags
|
flags
|
||||||
coding=utf8;
|
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 ;
|
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 ;
|
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 ;
|
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
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -138,6 +138,8 @@ oper
|
|||||||
mkV : (x1,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,x25 : Str) -> V = worstV ;
|
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.
|
-- Regular verbs are formed from two forms. Infinitive and 3rd person singular presens.
|
||||||
|
|
||||||
regV : (_,_ : Str) -> V = \hoditi,hodi ->
|
regV : (_,_ : Str) -> V = \hoditi,hodi ->
|
||||||
@@ -209,7 +211,8 @@ oper
|
|||||||
VImper2 Sg => imp2sg;
|
VImper2 Sg => imp2sg;
|
||||||
VImper2 Dl => imp2dl;
|
VImper2 Dl => imp2dl;
|
||||||
VImper2 Pl => imp2pl
|
VImper2 Pl => imp2pl
|
||||||
}
|
} ;
|
||||||
|
p = [] ; ----AR: +p
|
||||||
};
|
};
|
||||||
|
|
||||||
--Imperative forms are formed separetely. Pattern matching performed on thirdpersonsingular verbform.
|
--Imperative forms are formed separetely. Pattern matching performed on thirdpersonsingular verbform.
|
||||||
|
|||||||
@@ -4,7 +4,11 @@ concrete QuestionSlv of Question = CatSlv ** open ResSlv,Prelude in {
|
|||||||
lin
|
lin
|
||||||
QuestVP ip vp = mkClause (ip.s ! Nom) ip.a False vp ;
|
QuestVP ip vp = mkClause (ip.s ! Nom) ip.a False vp ;
|
||||||
QuestCl cl = {s = \\t,a,p => "ali" ++ cl.s ! t ! a ! p} ;
|
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} ;
|
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
|
------AR END
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ lin
|
|||||||
s = \\p,g,n => vp.s ! p ! VImper2 n ++ vp.s2 ! {g=g; n=n; p=P2} ;
|
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 = {
|
UseCl t p cl = {
|
||||||
s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p
|
s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ lin
|
|||||||
"mòje" "mòjega" "mòjemu" "mòjo" "mòjem" "mòjim"
|
"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ò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 ;
|
"mòja" "mòjih" "mòjim" "mòja" "mòjih" "mòjimi" Masc Sg P1 ;
|
||||||
|
if_Subj = ss "če" ;
|
||||||
in_Prep = mkPrep "v" locative ;
|
in_Prep = mkPrep "v" locative ;
|
||||||
it_Pron = mkPron "ôno" "njêga" "njêga" "njêmu" "njêm" "njím"
|
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"
|
("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ô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 ;
|
"njegôva" "njegôvih" "njegôvim" "njegôva" "njegôvih" "njegôvimi" Neut Sg P3 ;
|
||||||
must_VV = regV "morati" "mora" ;
|
must_VV = regV "morati" "mora" ;
|
||||||
|
or_Conj = mkConj "ali" Sg ;
|
||||||
|
|
||||||
she_Pron = variants {mkPron "ôna" "njó" "njé" "njéj" "njéj" "njó" ;
|
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èj" "njèj" "njó" ;
|
||||||
mkPron "ôna" "njó" "njé" "njì" "njì" "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ȇga" "tȇmu" "tȏ" "tȇm" "tȇm"
|
||||||
"tî" "tȇh" "tȇma" "tî" "tȇh" "tȇma"
|
"tî" "tȇh" "tȇma" "tî" "tȇh" "tȇma"
|
||||||
"tȃ" "tȇh" "tȇm" "tȃ" "tȇh" "tȇmi" Def ;
|
"tȃ" "tȇh" "tȇm" "tȃ" "tȇh" "tȇmi" Def ;
|
||||||
|
very_AdA = {s = "zelo"} ; ----AR
|
||||||
want_VV = regV "želeti" "želi";
|
want_VV = regV "želeti" "želi";
|
||||||
we_Pron = mkPron "mí" "nàs" "nàs" "nàm" "nàs" "nàmi"
|
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"
|
"nàš" "nášega" "nášemu" ("náši"|"nášega") "nášem" "nášim"
|
||||||
@@ -96,7 +100,7 @@ lin
|
|||||||
when_Subj = {s="medtem ko"} ;
|
when_Subj = {s="medtem ko"} ;
|
||||||
where_IAdv = {s="kje"} ;
|
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
|
whoSg_IP = mkNP "kdó" "kóga" "kóga" "kómu" "kóm" "kóm" Masc Sg ; ----AR
|
||||||
|
|
||||||
why_IAdv = {s="zakaj"} ;
|
why_IAdv = {s="zakaj"} ;
|
||||||
|
|||||||
@@ -3,13 +3,13 @@ concrete VerbSlv of Verb = CatSlv ** open ResSlv, ParamX, Prelude in {
|
|||||||
lin
|
lin
|
||||||
UseV v =
|
UseV v =
|
||||||
{ s = \\p,vform => ne ! p ++ v.s ! vform ;
|
{ s = \\p,vform => ne ! p ++ v.s ! vform ;
|
||||||
s2 = \\a => "" ;
|
s2 = \\a => v.p ; ----AR: +p particle
|
||||||
isCop = False
|
isCop = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
SlashV2a v =
|
SlashV2a v =
|
||||||
{ s = \\p,vform => ne ! p ++ v.s ! vform ;
|
{ s = \\p,vform => ne ! p ++ v.s ! vform ;
|
||||||
s2 = \\a => "" ;
|
s2 = \\a => v.p ; ----AR: +p particle
|
||||||
c2 = v.c2 ;
|
c2 = v.c2 ;
|
||||||
isCop = False
|
isCop = False
|
||||||
} ;
|
} ;
|
||||||
@@ -28,5 +28,8 @@ concrete VerbSlv of Verb = CatSlv ** open ResSlv, ParamX, Prelude in {
|
|||||||
CompAP ap = {
|
CompAP ap = {
|
||||||
s = \\agr => ap.s ! Indef ! inanimateGender agr.g ! Nom ! agr.n
|
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
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user