added present participles to Scandinavian verbs

This commit is contained in:
aarne
2013-11-03 16:48:51 +00:00
parent 01a98d9a39
commit d0a89f3845
8 changed files with 38 additions and 16 deletions

View File

@@ -36,14 +36,14 @@ instance DiffDan of DiffScand = open CommonScand, Prelude in {
detIndefPl = "nogle" ;
verbHave =
mkVerb "have" "har" "hav" "havde" "haft" "haven" "havet" "havne" **
mkVerb9 "have" "har" "hav" "havde" "haft" "haven" "havet" "havne" "havende" **
{part = [] ; isVaere = False} ;
verbBe =
mkVerb "være" "er" "var" "var" "været" "væren" "været" "værne" **
mkVerb9 "være" "er" "var" "var" "været" "væren" "været" "værne" "værende" **
{part = [] ; isVaere = False} ;
verbBecome =
mkVerb "blive" "bliver" "bliv" "blev" "blevet"
"bliven" "blivet" "blivne" **
mkVerb9 "blive" "bliver" "bliv" "blev" "blevet"
"bliven" "blivet" "blivne" "blivende" **
{part = [] ; isVaere = True} ;
auxFut = "vil" ; -- "skal" in ExtDan

View File

@@ -80,6 +80,11 @@ oper
VI (VSupin v) => mkVoice v spist ; --# notpresent
VI (VPtPret (Strong (GSg _)) c) => mkCase c spist ;
VI (VPtPret _ c) => mkCase c (spist + "e") ;
VI (VPtPres c) => case last spise of {
"e" => mkCase c (spise + "nde") ;
"i" => mkCase c (spise + "vende") ; --- gi, bli
_ => mkCase c (spise + "ende")
} ;
VF (VImper v) => mkVoice v spis
}
} ;

View File

@@ -44,13 +44,13 @@ instance DiffNor of DiffScand = open CommonScand, Prelude in {
detIndefPl = "noen" ;
verbHave =
mkVerb "ha" "har" "ha" "hadde" "hatt" "haven" "havet" "havne"
mkVerb9 "ha" "har" "ha" "hadde" "hatt" "haven" "havet" "havne" "havende"
** {part = [] ; isVaere = False} ;
verbBe =
mkVerb "være" "er" "var" "var" "vært" "væren" "været" "værne"
mkVerb9 "være" "er" "var" "var" "vært" "væren" "været" "værne" "værende"
** {part = [] ; isVaere = False} ;
verbBecome =
mkVerb "bli" "blir" "bli" "ble" "blitt" "bliven" "blivet" "blivne"
mkVerb9 "bli" "blir" "bli" "ble" "blitt" "bliven" "blivet" "blivne" "blivende"
** {part = [] ; isVaere = True} ;
-- auxiliary

View File

@@ -94,6 +94,11 @@ oper
"a" => mkCase c spist ;
_ => mkCase c (spist + "e")
} ;
VI (VPtPres c) => case last spise of {
"e" => mkCase c (spise + "nde") ;
"i" => mkCase c (spise + "vende") ; --- gi, bli
_ => mkCase c (spise + "ende")
} ;
VF (VImper v) => mkVoice v spis
}
} ;

View File

@@ -56,6 +56,7 @@ param
VInfin Voice
| VSupin Voice --# notpresent
| VPtPret AFormPos Case
| VPtPres Case
;
VPForm =
@@ -181,8 +182,8 @@ oper
}
} ;
mkVerb : (x1,_,_,_,_,_,_,x8 : Str) -> {s : VForm => Str ; vtype : VType} =
\finna,finner,finn,fann,funnit,funnen,funnet,funna -> {
mkVerb9 : (x1,_,_,_,_,_,_,_,x9 : Str) -> {s : VForm => Str ; vtype : VType} =
\finna,finner,finn,fann,funnit,funnen,funnet,funna, finnande -> {
s = table {
VF (VPres Act) => finner ;
VF (VPres Pass) => mkVoice Pass finn ;
@@ -190,7 +191,8 @@ oper
VF (VImper v) => mkVoice v finn ;
VI (VInfin v) => mkVoice v finna ;
VI (VSupin v) => mkVoice v funnit ; --# notpresent
VI (VPtPret a c)=> mkCase c (mkAdjPos a funnen funnet funna funna)
VI (VPtPret a c)=> mkCase c (mkAdjPos a funnen funnet funna funna) ;
VI (VPtPres c) => mkCase c finnande
} ;
vtype = VAct
} ;

View File

@@ -37,12 +37,12 @@ instance DiffSwe of DiffScand = open CommonScand, Prelude in {
detIndefPl = "några" ;
verbHave =
mkVerb "ha" "har" "ha" "hade" "haft" "havd" "havt" "havda" ** noPart ;
mkVerb9 "ha" "har" "ha" "hade" "haft" "havd" "havt" "havda" "havande" ** noPart ;
verbBe =
mkVerb "vara" "är" "var" "var" "varit" "varen" "varet" "varna"
mkVerb9 "vara" "är" "var" "var" "varit" "varen" "varet" "varna" "varande"
** noPart ;
verbBecome =
mkVerb "bli" "blir" "bli" "blev" "blivit" "bliven" "blivet" "blivna"
mkVerb9 "bli" "blir" "bli" "blev" "blivit" "bliven" "blivet" "blivna" "blivande"
** noPart ;
-- auxiliary

View File

@@ -17,7 +17,7 @@ lin
bad_A = irregA "dålig" "sämre" "sämst";
bank_N = mk2N "bank" "banker" ;
beautiful_A = mk3A "vacker" "vackert" "vackra" ;
become_VA = mkVA (mkV "bli" "blir""bli" "blev" "blivit" "bliven") ;
become_VA = mkVA (mkV "bli" "blir""bli" "blev" "blivit" "bliven" "blivande") ;
beer_N = regGenN "öl" neutrum ;
beg_V2V = mkV2V (mkV "be" "ber""be" "bad" "bett" "bedd") noPrep (mkPrep "att") ;
big_A = irregA "stor" "större" "störst";
@@ -316,7 +316,7 @@ lin
flow_V = rinna_V ;
fly_V = flyga_V ;
freeze_V = frysa_V ;
give_V3 = dirV3 giva_V (mkPrep "till");
give_V3 = dirV3 (mkV "ge" "ger""ge" "gav" "givit" "given" "givande") (mkPrep "till");
hit_V2 = dirV2 (slå_V) ;
hold_V2 = dirV2 (hålla_V) ;
hunt_V2 = dirV2 (regV "jaga") ;

View File

@@ -538,16 +538,25 @@ oper
mkV : (slita, slet : Str) -> V = reg2V ;
mkV : (dricka,drack,druckit : Str) -> V = irregV ;
mkV : (supa,super,sup,söp,supit,supen : Str) -> V = mk6V ;
mkV : (supa,super,sup,söp,supit,supen,supande : Str) -> V = mk7V ;
mkV : V -> Str -> V = partV
} ;
mk6V = \finna,finner,finn,fann,funnit,funnen ->
let finnande : Str = case finna of {
_ + "a" => finna + "nde" ;
_ => finna + "ende" -- gående; but bli - blivande must be given separately
}
in
mk7V finna finner finn fann funnit funnen finnande ;
mk7V = \finna,finner,finn,fann,funnit,funnen,finnande ->
let
funn = ptPretForms funnen ;
funnet = funn ! Strong (GSg Neutr) ! Nom ;
funna = funn ! Strong GPl ! Nom
in
mkVerb finna finner finn fann funnit funnen funnet funna **
mkVerb9 finna finner finn fann funnit funnen funnet funna finnande **
{part = [] ; vtype=VAct ; lock_V = <>} ;
regV leker = case leker of {
@@ -720,6 +729,7 @@ oper
mk3cA : (galen,galet,galna : Str) -> Bool -> A =
\x,y,z,b -> lin A {s = (mk3A x y z).s ; isComp = b} ;
mk7V : (supa,super,sup,söp,supit,supen,supande : Str) -> V ;
mk6V : (supa,super,sup,söp,supit,supen : Str) -> V ;
regV : (talar : Str) -> V ;
mk2V : (leka,lekte : Str) -> V ;