some more paradigms for Swe

This commit is contained in:
aarne
2013-10-28 16:44:27 +00:00
parent 56893dbf54
commit 0997f1e611
3 changed files with 58 additions and 15 deletions

View File

@@ -4,10 +4,16 @@ resource MakeStructuralSwe = open CatSwe,
(P=ParadigmsSwe), MorphoSwe, Prelude in {
oper
mkConj : Str -> Str -> P.Number -> Conj = \x,y,n ->
{s1 = x ; s2 = y ; n = n ; lock_Conj = <>} ;
mkSubj : Str -> Subj = \x ->
{s = x ; lock_Subj = <>} ;
mkConj = overload {
mkConj : Str -> Conj
= \s -> lin Conj {s1 = [] ; s2 = s ; n = P.plural} ;
mkConj : Str -> Str -> P.Number -> Conj
= \x,y,n -> {s1 = x ; s2 = y ; n = n ; lock_Conj = <>} ;
} ;
mkSubj : Str -> Subj
= \x -> {s = x ; lock_Subj = <>} ;
mkIQuant : Str -> Str -> Str -> DetSpecies -> IQuant = \vilken,vilket,vilka,d ->
{s = table (P.Number)
[table (P.Gender) [vilken;vilket] ; table (P.Gender) [vilka;vilka]] ;
@@ -21,8 +27,14 @@ oper
det = DIndef
} ;
mkDet : Str -> P.Number -> Det = \s,n ->
lin Det {s,sp = \\_,_ => s ; n = n ; det = DDef Indef} ;
mkDet = overload {
mkDet : Str -> Det
= \s -> lin Det {s,sp = \\_,_ => s ; n = P.singular ; det = DDef Indef} ;
mkDet : Str -> P.Number -> Det
= \s,n -> lin Det {s,sp = \\_,_ => s ; n = n ; det = DDef Indef} ;
mkDet : Str -> Str -> P.Number -> Det
= \ingen,inget,n -> lin Det {s,sp = \\_ => table NGender [ingen ; inget] ; n = n ; det = DDef Indef} ;
} ;
dDefIndef : DetSpecies = DDef Indef ;
---- other DetSpecies

View File

@@ -278,7 +278,12 @@ oper
mkV0 : V -> V0 ; --%
mkVS : V -> VS ;
mkV2S : V -> Prep -> V2S ;
mkV2S : overload {
mkV2S : V -> V2S ;
mkV2S : V -> Prep -> V2S ;
} ;
mkVV : V -> VV ;
auxVV : V -> VV ;
mkV2V : overload {
@@ -286,9 +291,19 @@ oper
mkV2V : V -> Prep -> Prep -> V2V ;
} ;
mkVA : V -> VA ;
mkV2A : V -> Prep -> V2A ;
mkV2A : overload {
mkV2A : V -> V2A ;
mkV2A : V -> Prep -> V2A ;
} ;
mkVQ : V -> VQ ;
mkV2Q : V -> Prep -> V2Q ;
mkV2Q : overload {
mkV2Q : V -> V2Q ;
mkV2Q : V -> Prep -> V2Q ;
} ;
mkAS : A -> AS ; --%
mkA2S : A -> Prep -> A2S ; --%
@@ -301,6 +316,9 @@ oper
V0 : Type ; --%
AS, A2S, AV, A2V : Type ; --%
mkInterj : Str -> Interj
= \s -> lin Interj {s = s} ;
--.
--2 Definitions of the paradigms
--
@@ -604,7 +622,11 @@ oper
mk6V sälja (säljer.s ! VF (VPres Act)) (säljer.s ! (VF (VImper Act))) sålde sålt såld
** {s1 = [] ; lock_V = <>} ;
partV v p = {s = v.s ; part = p ; vtype = v.vtype ; lock_V = <>} ;
partV v p = case p of {
"sig" => {s = v.s ; part = [] ; vtype = VRefl ; lock_V = <>} ;
_ => {s = v.s ; part = p ; vtype = v.vtype ; lock_V = <>}
} ;
depV v = {s = v.s ; part = v.part ; vtype = VPass ; lock_V = <>} ;
reflV v = {s = v.s ; part = v.part ; vtype = VRefl ; lock_V = <>} ;
@@ -642,14 +664,20 @@ oper
mkVQ v = v ** {lock_VQ = <>} ;
mkVA v = v ** {lock_VA = <>} ;
mkV2A v p = mmkV2 v p ** {lock_V2A = <>} ;
mkV2A = overload {
mkV2A : V -> V2A = \v -> lin V2A (mmkV2 v (mkPrep [])) ;
mkV2A : V -> Prep -> V2A = \v, p -> lin V2A (mmkV2 v p) ;
} ;
V0 : Type = V ;
-- V2S, V2V, V2Q : Type = V2 ;
AS, A2S, AV : Type = A ;
A2V : Type = A2 ;
mkV2S v p = mmkV2 v p ** {lock_V2S = <>} ;
mkV2S = overload {
mkV2S : V -> V2S = \v -> lin V2S (mmkV2 v (mkPrep [])) ;
mkV2S : V -> Prep -> V2S = \v, p -> lin V2S (mmkV2 v p) ;
} ;
mkV2V = overload {
@@ -659,7 +687,10 @@ oper
\v, p, t -> mmkV2 v p ** {c3 = mkComplement p.s ; lock_V2V = <>} ;
} ;
mkV2Q v p = mmkV2 v p ** {lock_V2Q = <>} ;
mkV2Q = overload {
mkV2Q : V -> V2Q = \v -> lin V2Q (mmkV2 v (mkPrep [])) ;
mkV2Q : V -> Prep -> V2Q = \v, p -> lin V2Q (mmkV2 v p) ;
} ;
mkAS v = v ** {lock_A = <>} ;
mkA2S v p = mkA2 v p ** {lock_A = <>} ;

View File

@@ -18,7 +18,7 @@ concrete ParseSwe of ParseEngAbs =
VPI, VPIForm, VPIInf, VPIPresPart, ListVPI, VV, MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV,
ClSlash, RCl, EmptyRelSlash],
DictEngSwe **
WDictEngSwe **
open MorphoSwe, ResSwe, ParadigmsSwe, SyntaxSwe, Prelude in {
flags