forked from GitHub/gf-core
fixed Danish auxialiary and particle verb word order in Scandinavian
This commit is contained in:
@@ -18,6 +18,15 @@ instance DiffDan of DiffScand = open CommonScand, Prelude in {
|
|||||||
|
|
||||||
detDef : Species = Indef ;
|
detDef : Species = Indef ;
|
||||||
|
|
||||||
|
Verb : Type = {
|
||||||
|
s : VForm => Str ;
|
||||||
|
part : Str ;
|
||||||
|
vtype : VType ;
|
||||||
|
isVaere : Bool
|
||||||
|
} ;
|
||||||
|
|
||||||
|
hasAuxBe v = v.isVaere ;
|
||||||
|
|
||||||
-- Strings.
|
-- Strings.
|
||||||
|
|
||||||
conjThat = "at" ;
|
conjThat = "at" ;
|
||||||
@@ -33,11 +42,15 @@ instance DiffDan of DiffScand = open CommonScand, Prelude in {
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
verbHave =
|
verbHave =
|
||||||
mkVerb "have" "har" "hav" "havde" "haft" nonExist nonExist nonExist ;
|
mkVerb "have" "har" "hav" "havde" "haft" nonExist nonExist nonExist **
|
||||||
|
{part = [] ; isVaere = False} ;
|
||||||
verbBe =
|
verbBe =
|
||||||
mkVerb "være" "er" "var" "var" "været" "væren" "været" "værne" ;
|
mkVerb "være" "er" "var" "var" "været" "væren" "været" "værne" **
|
||||||
|
{part = [] ; isVaere = False} ;
|
||||||
verbBecome =
|
verbBecome =
|
||||||
mkVerb "blive" "bliver" "bliv" "blev" "blevet" "bliven" "blivet" "blivne" ;
|
mkVerb "blive" "bliver" "bliv" "blev" "blevet"
|
||||||
|
"bliven" "blivet" "blivne" **
|
||||||
|
{part = [] ; isVaere = True} ;
|
||||||
|
|
||||||
auxFut = "vil" ; -- "skal" in ExtDan
|
auxFut = "vil" ; -- "skal" in ExtDan
|
||||||
auxCond = "ville" ;
|
auxCond = "ville" ;
|
||||||
|
|||||||
@@ -55,12 +55,12 @@ lin
|
|||||||
close_V2 = dirV2 (mk2V "lukke" "lukkede") ;
|
close_V2 = dirV2 (mk2V "lukke" "lukkede") ;
|
||||||
coat_N = mk2N "frakke" "frakken" ;
|
coat_N = mk2N "frakke" "frakken" ;
|
||||||
cold_A = regADeg "kold" ;
|
cold_A = regADeg "kold" ;
|
||||||
come_V = komme_V ;
|
come_V = vaereV komme_V ;
|
||||||
computer_N = mk2N "datamaskine" "datamaskinen" ;
|
computer_N = mk2N "datamaskine" "datamaskinen" ;
|
||||||
country_N = mk2N "land" "landet" ;
|
country_N = mk2N "land" "landet" ;
|
||||||
cousin_N = mk3N "fætter" "fættren" "fættre" ; ----
|
cousin_N = mk3N "fætter" "fættren" "fættre" ; ----
|
||||||
cow_N = mk2N "ku" "kuen" ; ----
|
cow_N = mk2N "ku" "kuen" ; ----
|
||||||
die_V = dø_V ;
|
die_V = vaereV dø_V ;
|
||||||
dirty_A = regADeg "smudsig" ; ----
|
dirty_A = regADeg "smudsig" ; ----
|
||||||
distance_N3 = mkN3 (regGenN "afstand" utrum) "fra" "til" ;
|
distance_N3 = mkN3 (regGenN "afstand" utrum) "fra" "til" ;
|
||||||
doctor_N = mk2N "læge" "lægen" ;
|
doctor_N = mk2N "læge" "lægen" ;
|
||||||
@@ -87,7 +87,7 @@ lin
|
|||||||
glove_N = mk2N "handske" "handsken" ;
|
glove_N = mk2N "handske" "handsken" ;
|
||||||
gold_N = mk2N "guld" "guldet" ;
|
gold_N = mk2N "guld" "guldet" ;
|
||||||
good_A = mkADeg "god" "godt" "gode" "bedre" "bedst" ; ----
|
good_A = mkADeg "god" "godt" "gode" "bedre" "bedst" ; ----
|
||||||
go_V = gå_V ;
|
go_V = vaereV gå_V ;
|
||||||
green_A = mk3ADeg "grøn" "grønt" "grønne" ;
|
green_A = mk3ADeg "grøn" "grønt" "grønne" ;
|
||||||
harbour_N = mk2N "havn" "havnen" ;
|
harbour_N = mk2N "havn" "havnen" ;
|
||||||
hate_V2 = dirV2 (regV "hade") ;
|
hate_V2 = dirV2 (regV "hade") ;
|
||||||
@@ -107,16 +107,16 @@ lin
|
|||||||
lake_N = mk2N "sø" "søen" ;
|
lake_N = mk2N "sø" "søen" ;
|
||||||
lamp_N = mk2N "lampe" "lampen" ;
|
lamp_N = mk2N "lampe" "lampen" ;
|
||||||
learn_V2 = dirV2 (mk2V "lære" "lærte") ;
|
learn_V2 = dirV2 (mk2V "lære" "lærte") ;
|
||||||
leather_N = mk2N "læder" "læderet" ;
|
leather_N = mk2N "læder" "lædret" ;
|
||||||
leave_V2 = dirV2 forlade_V ;
|
leave_V2 = dirV2 forlade_V ;
|
||||||
like_V2 = mkV2 holde_V "af" ;
|
like_V2 = mkV2 holde_V "af" ;
|
||||||
listen_V2 = dirV2 (regV "lytte") ;
|
listen_V2 = dirV2 (regV "lytte") ;
|
||||||
live_V = mk2V "leve" "levde" ;
|
live_V = mk2V "leve" "levde" ;
|
||||||
long_A = irregADeg "lang" "længer" "længst" ; ----
|
long_A = irregADeg "lang" "længere" "længst" ; ----
|
||||||
lose_V2 = dirV2 (regV "tabe") ;
|
lose_V2 = dirV2 (regV "tabe") ;
|
||||||
love_N = mk2N "kærlighed" "kærligheden" ;
|
love_N = mk2N "kærlighed" "kærligheden" ;
|
||||||
love_V2 = dirV2 (regV "elske") ;
|
love_V2 = dirV2 (regV "elske") ;
|
||||||
man_N = (mkN "mand" "manden" "mænd" "mænden") ; ----
|
man_N = mk3N "mand" "manden" "mænd" ; ----
|
||||||
married_A2 = mkA2 (mk2A "gift" "gift") "med" ;
|
married_A2 = mkA2 (mk2A "gift" "gift") "med" ;
|
||||||
meat_N = mk2N "kød" "kødet" ;
|
meat_N = mk2N "kød" "kødet" ;
|
||||||
milk_N = mk2N "mælk" "mælken" ;
|
milk_N = mk2N "mælk" "mælken" ;
|
||||||
@@ -152,7 +152,7 @@ lin
|
|||||||
rock_N = mk2N "sten" "stenen" ;
|
rock_N = mk2N "sten" "stenen" ;
|
||||||
roof_N = mk2N "tag" "taget" ;
|
roof_N = mk2N "tag" "taget" ;
|
||||||
rubber_N = mk2N "gummi" "gummien" ;
|
rubber_N = mk2N "gummi" "gummien" ;
|
||||||
run_V = regV "løbe" ;
|
run_V = vaereV (regV "løbe") ;
|
||||||
say_VS = mkVS sige_V ;
|
say_VS = mkVS sige_V ;
|
||||||
school_N = mk2N "skole" "skolen" ;
|
school_N = mk2N "skole" "skolen" ;
|
||||||
science_N = mk2N "videnskab" "videnskaben" ;
|
science_N = mk2N "videnskab" "videnskaben" ;
|
||||||
@@ -168,11 +168,11 @@ lin
|
|||||||
shop_N = mk2N "butik" "butiken" ;
|
shop_N = mk2N "butik" "butiken" ;
|
||||||
short_A = regADeg "kort" ;
|
short_A = regADeg "kort" ;
|
||||||
silver_N = mk2N "sølv" "sølvet";
|
silver_N = mk2N "sølv" "sølvet";
|
||||||
sister_N = mkN "søster" "søsteren" "søstrer" "søstrene" ; ----
|
sister_N = mk3N "søster" "søstren" "søstrer" ; ----
|
||||||
sleep_V = irregV "sove" "sov" "sovet" ;
|
sleep_V = sove_V ;
|
||||||
small_A = mkADeg "lille" "lille" "små" "mindre" "mindst" ; ----
|
small_A = mkADeg "lille" "lille" "små" "mindre" "mindst" ; ----
|
||||||
snake_N = mk2N "slange" "slangen" ;
|
snake_N = mk2N "slange" "slangen" ;
|
||||||
sock_N = mk2N "sok" "soken" ;
|
sock_N = mk2N "sok" "sokken" ;
|
||||||
speak_V2 = dirV2 (regV "tale") ; ----
|
speak_V2 = dirV2 (regV "tale") ; ----
|
||||||
star_N = mk2N "stjerne" "stjernen" ;
|
star_N = mk2N "stjerne" "stjernen" ;
|
||||||
steel_N = mk2N "stål" "stålet" ;
|
steel_N = mk2N "stål" "stålet" ;
|
||||||
@@ -188,18 +188,18 @@ lin
|
|||||||
teacher_N = mkN "lærer" "læreren" "lærere" "lærerne" ;
|
teacher_N = mkN "lærer" "læreren" "lærere" "lærerne" ;
|
||||||
teach_V2 = dirV2 (mk2V "undervise" "underviste") ;
|
teach_V2 = dirV2 (mk2V "undervise" "underviste") ;
|
||||||
television_N = mk2N "fjernsyn" "fjernsynet" ;
|
television_N = mk2N "fjernsyn" "fjernsynet" ;
|
||||||
thick_A = mk2ADeg "tyk" "tykt" ;
|
thick_A = mk3ADeg "tyk" "tykt" "tykke" ;
|
||||||
thin_A = mk2ADeg "tynd" "tyndt" ; ----
|
thin_A = mk2ADeg "tynd" "tyndt" ; ----
|
||||||
train_N = mk2N "tog" "toget" ;
|
train_N = mk2N "tog" "toget" ;
|
||||||
travel_V = mk2V "rejse" "rejste" ;
|
travel_V = vaereV (mk2V "rejse" "rejste") ;
|
||||||
tree_N = mkN "træ" "træet" "trær" "træne" ; ----
|
tree_N = mkN "træ" "træet" "træer" "træene" ; ----
|
||||||
---- trousers_N = regGenN "trousers" ; ---- pl t !
|
---- trousers_N = regGenN "trousers" ; ---- pl t !
|
||||||
ugly_A = regADeg "grim" ;
|
ugly_A = mk3ADeg "grim" "grimt" "grimme" ;
|
||||||
understand_V2 = dirV2 (irregV "forstå" "forstod" "forstått") ;
|
understand_V2 = dirV2 (irregV "forstå" "forstod" "forstått") ;
|
||||||
university_N = mk2N "universitet" "universitetet" ;
|
university_N = mk2N "universitet" "universitetet" ;
|
||||||
village_N = mk2N "landsby" "landsbyen" ;
|
village_N = mk2N "landsby" "landsbyen" ;
|
||||||
wait_V2 = mkV2 (regV "vente") "på" ;
|
wait_V2 = mkV2 (regV "vente") "på" ;
|
||||||
walk_V = (irregV "gå" "gikk" "gått") ;
|
walk_V = vaereV gå_V ;
|
||||||
warm_A = regADeg "varm" ;
|
warm_A = regADeg "varm" ;
|
||||||
war_N = mk2N "krig" "krigen" ;
|
war_N = mk2N "krig" "krigen" ;
|
||||||
watch_V2 = mkV2 se_V "på" ;
|
watch_V2 = mkV2 se_V "på" ;
|
||||||
@@ -210,26 +210,26 @@ lin
|
|||||||
win_V2 = dirV2 (irregV "vinde" "vand" "vundet") ;
|
win_V2 = dirV2 (irregV "vinde" "vand" "vundet") ;
|
||||||
woman_N = mk2N "kvinde" "kvinden" ;
|
woman_N = mk2N "kvinde" "kvinden" ;
|
||||||
wonder_VQ = mkVQ (depV (regV "undre")) ;
|
wonder_VQ = mkVQ (depV (regV "undre")) ;
|
||||||
wood_N = mkN "træ" "træet" "trær" "træne" ; ----
|
wood_N = mkN "træ" "træet" "træer" "træene" ; ----
|
||||||
write_V2 = dirV2 (irregV "skrive" "skrev" "skrevet") ;
|
write_V2 = dirV2 (irregV "skrive" "skrev" "skrevet") ;
|
||||||
yellow_A = regADeg "gul" ;
|
yellow_A = regADeg "gul" ;
|
||||||
young_A = irregADeg "ung" "yngre" "yngst" ; ----
|
young_A = irregADeg "ung" "yngre" "yngst" ; ----
|
||||||
|
|
||||||
do_V2 = dirV2 (irregV "gøre" "gjorde" "gjort") ; ----
|
do_V2 = dirV2 gøre_V ;
|
||||||
now_Adv = mkAdv "nu" ;
|
now_Adv = mkAdv "nu" ;
|
||||||
already_Adv = mkAdv "allerede" ;
|
already_Adv = mkAdv "allerede" ;
|
||||||
song_N = mk2N "sang" "sangen" ;
|
song_N = mk2N "sang" "sangen" ;
|
||||||
add_V3 = mkV3 (regV "tilføje") [] "til" ; ----
|
add_V3 = mkV3 (regV "tilføje") [] "til" ; ----
|
||||||
number_N = mk2N "nummer" "nummeret" ; ----
|
number_N = mk2N "nummer" "numret" ; ----
|
||||||
put_V2 = mkV2 (irregV "sætte" "satte" "satt") [] ; ----
|
put_V2 = dirV2 sætte_V ;
|
||||||
stop_V = regV "standse" ;
|
stop_V = vaereV (regV "standse") ;
|
||||||
jump_V = regV "hoppe" ;
|
jump_V = regV "hoppe" ;
|
||||||
|
|
||||||
left_Ord = {s = "venstre" ; isDet = True} ;
|
left_Ord = {s = "venstre" ; isDet = True} ;
|
||||||
right_Ord = {s = "højre" ; isDet = True} ;
|
right_Ord = {s = "højre" ; isDet = True} ;
|
||||||
far_Adv = mkAdv "fjern" ;
|
far_Adv = mkAdv "fjern" ;
|
||||||
correct_A = regA "rigtig" ;
|
correct_A = regA "rigtig" ;
|
||||||
dry_A = mk2A "tør" "tørt" ;
|
dry_A = mk3ADeg "tør" "tørt" "tørre" ;
|
||||||
dull_A = regA "sløv" ;
|
dull_A = regA "sløv" ;
|
||||||
full_A = regA "fuld" ;
|
full_A = regA "fuld" ;
|
||||||
heavy_A = irregADeg "tung" "tyngre" "tyngst" ;
|
heavy_A = irregADeg "tung" "tyngre" "tyngst" ;
|
||||||
@@ -238,7 +238,7 @@ lin
|
|||||||
round_A = regA "rund" ;
|
round_A = regA "rund" ;
|
||||||
sharp_A = regA "skarp" ;
|
sharp_A = regA "skarp" ;
|
||||||
smooth_A = regA "jævn" ;
|
smooth_A = regA "jævn" ;
|
||||||
straight_A = regA "ret" ;
|
straight_A = mk3ADeg "ret" "rett" "rette" ; ----
|
||||||
wet_A = regA "våd" ;
|
wet_A = regA "våd" ;
|
||||||
wide_A = regA "bred" ;
|
wide_A = regA "bred" ;
|
||||||
animal_N = mk2N "dyr" "dyret" ;
|
animal_N = mk2N "dyr" "dyret" ;
|
||||||
@@ -250,12 +250,12 @@ lin
|
|||||||
bone_N = mk2N "ben" "benet" ;
|
bone_N = mk2N "ben" "benet" ;
|
||||||
breast_N = mk2N "bryst" "brystet" ;
|
breast_N = mk2N "bryst" "brystet" ;
|
||||||
cloud_N = mk2N "sky" "skyen" ;
|
cloud_N = mk2N "sky" "skyen" ;
|
||||||
day_N = mk2N "dag" "dagen" ;
|
day_N = mk3N "dag" "dagen" "dage" ;
|
||||||
dust_N = mk2N "støv" "støvet" ;
|
dust_N = mk2N "støv" "støvet" ;
|
||||||
ear_N = mk2N "øre" "øret" ;
|
ear_N = mk2N "øre" "øret" ;
|
||||||
earth_N = mk2N "jord" "jorden" ;
|
earth_N = mk2N "jord" "jorden" ;
|
||||||
egg_N = mk2N "æg" "æget" ;
|
egg_N = mk2N "æg" "æget" ;
|
||||||
eye_N = mkN "øje" "øjet" "øjne" "øjnene" ;
|
eye_N = mk3N "øje" "øjet" "øjne" ;
|
||||||
fat_N = mk2N "fedt" "fedtet" ;
|
fat_N = mk2N "fedt" "fedtet" ;
|
||||||
feather_N = mk2N "fjer" "fjeren" ;
|
feather_N = mk2N "fjer" "fjeren" ;
|
||||||
fingernail_N = mk2N "negl" "neglen" ;
|
fingernail_N = mk2N "negl" "neglen" ;
|
||||||
@@ -277,22 +277,22 @@ lin
|
|||||||
leaf_N = mk2N "løv" "løvet" ;
|
leaf_N = mk2N "løv" "løvet" ;
|
||||||
leg_N = mk2N "ben" "benet" ;
|
leg_N = mk2N "ben" "benet" ;
|
||||||
liver_N = mkN "lever" "leveren" "levrer" "levrene" ; ----
|
liver_N = mkN "lever" "leveren" "levrer" "levrene" ; ----
|
||||||
louse_N = mk2N "lus" "lusen" ;
|
louse_N = mk3N "lus" "lusen" "lus" ;
|
||||||
mouth_N = mk2N "mund" "munden" ;
|
mouth_N = mk2N "mund" "munden" ;
|
||||||
name_N = mk2N "navn" "navnet" ;
|
name_N = mk2N "navn" "navnet" ;
|
||||||
neck_N = mk2N "hals" "halsen" ;
|
neck_N = mk2N "hals" "halsen" ;
|
||||||
night_N = mkN "nat" "natten" "nætter" "nættene" ; ----
|
night_N = mk3N "nat" "natten" "nætter" ; ----
|
||||||
nose_N = mk2N "næse" "næsen" ;
|
nose_N = mk2N "næse" "næsen" ;
|
||||||
person_N = mk2N "person" "personen" ;
|
person_N = mk2N "person" "personen" ;
|
||||||
rain_N = mk2N "regn" "regnet" ;
|
rain_N = mk2N "regn" "regnet" ;
|
||||||
road_N = mk2N "vej" "vejen" ;
|
road_N = mk2N "vej" "vejen" ;
|
||||||
root_N = mkN "rod" "roden" "røder" "rødene" ; ----
|
root_N = mk3N "rod" "roden" "røder" ; ----
|
||||||
rope_N = mk2N "reb" "rebet" ;
|
rope_N = mk2N "reb" "rebet" ;
|
||||||
salt_N = mk2N "salt" "saltet" ;
|
salt_N = mk2N "salt" "saltet" ;
|
||||||
sand_N = mk2N "sand" "sanden" ;
|
sand_N = mk2N "sand" "sanden" ;
|
||||||
seed_N = mk2N "frø" "frøet" ;
|
seed_N = mk2N "frø" "frøet" ;
|
||||||
skin_N = mk2N "skind" "skindet" ;
|
skin_N = mk2N "skind" "skindet" ;
|
||||||
sky_N = mkN "himmel" "himmelen" "himler" "himlene" ; ----
|
sky_N = mk3N "himmel" "himlen" "himler" ; ----
|
||||||
smoke_N = mk2N "røg" "røgen" ;
|
smoke_N = mk2N "røg" "røgen" ;
|
||||||
snow_N = mk2N "snø" "snøen" ;
|
snow_N = mk2N "snø" "snøen" ;
|
||||||
stick_N = mk2N "pind" "pinden" ;
|
stick_N = mk2N "pind" "pinden" ;
|
||||||
@@ -310,12 +310,12 @@ lin
|
|||||||
count_V2 = dirV2 tælle_V ;
|
count_V2 = dirV2 tælle_V ;
|
||||||
cut_V2 = dirV2 (skære_V) ;
|
cut_V2 = dirV2 (skære_V) ;
|
||||||
dig_V = mk2V "grave" "gravde" ;
|
dig_V = mk2V "grave" "gravde" ;
|
||||||
fall_V = falde_V ;
|
fall_V = vaereV falde_V ;
|
||||||
fear_V2 = dirV2 (regV "frygte") ;
|
fear_V2 = dirV2 (regV "frygte") ;
|
||||||
fight_V2 = dirV2 (regV "kæmpe") ;
|
fight_V2 = dirV2 (regV "kæmpe") ;
|
||||||
float_V = flyde_V ;
|
float_V = flyde_V ;
|
||||||
flow_V = regV "strømme" ;
|
flow_V = regV "strømme" ;
|
||||||
fly_V = flyve_V ;
|
fly_V = vaereV flyve_V ;
|
||||||
freeze_V = fryse_V ;
|
freeze_V = fryse_V ;
|
||||||
give_V3 = dirdirV3 give_V ;
|
give_V3 = dirdirV3 give_V ;
|
||||||
hit_V2 = dirV2 (slå_V) ;
|
hit_V2 = dirV2 (slå_V) ;
|
||||||
@@ -337,7 +337,7 @@ lin
|
|||||||
split_V2 = dirV2 (regV "splitte") ; ----
|
split_V2 = dirV2 (regV "splitte") ; ----
|
||||||
squeeze_V2 = dirV2 (regV "presse") ;
|
squeeze_V2 = dirV2 (regV "presse") ;
|
||||||
stab_V2 = dirV2 (stikke_V) ;
|
stab_V2 = dirV2 (stikke_V) ;
|
||||||
stand_V = stå_V ;
|
stand_V = vaereV stå_V ;
|
||||||
suck_V2 = dirV2 (regV "sutte") ; ----
|
suck_V2 = dirV2 (regV "sutte") ; ----
|
||||||
swell_V = regV "svulme" ;
|
swell_V = regV "svulme" ;
|
||||||
swim_V = regV "svømme" ;
|
swim_V = regV "svømme" ;
|
||||||
|
|||||||
@@ -40,9 +40,8 @@ resource ParadigmsDan =
|
|||||||
oper
|
oper
|
||||||
Gender : Type ;
|
Gender : Type ;
|
||||||
|
|
||||||
masculine : Gender ;
|
utrum : Gender ;
|
||||||
feminine : Gender ;
|
neutrum : Gender ;
|
||||||
neutrum : Gender ;
|
|
||||||
|
|
||||||
-- To abstract over number names, we define the following.
|
-- To abstract over number names, we define the following.
|
||||||
|
|
||||||
@@ -71,9 +70,8 @@ oper
|
|||||||
|
|
||||||
-- The regular function takes the singular indefinite form
|
-- The regular function takes the singular indefinite form
|
||||||
-- and computes the other forms and the gender by a heuristic.
|
-- and computes the other forms and the gender by a heuristic.
|
||||||
-- The heuristic is that nouns ending "e" are feminine like "kvinne",
|
-- The heuristic is that all nouns are $utrum$ with the
|
||||||
-- all others are masculine like "bil".
|
-- plural ending "er"/"r".
|
||||||
-- If in doubt, use the $cc$ command to test!
|
|
||||||
|
|
||||||
regN : Str -> N ;
|
regN : Str -> N ;
|
||||||
|
|
||||||
@@ -222,13 +220,20 @@ oper
|
|||||||
irregV : (drikke, drakk, drukket : Str) -> V ;
|
irregV : (drikke, drakk, drukket : Str) -> V ;
|
||||||
|
|
||||||
|
|
||||||
--3 Verbs with a particle.
|
--3 Verbs with "være" as auxiliary
|
||||||
|
--
|
||||||
|
-- By default, the auxiliary is "have". This function changes it to "være".
|
||||||
|
|
||||||
|
vaereV : V -> V ;
|
||||||
|
|
||||||
|
--3 Verbs with a particle
|
||||||
--
|
--
|
||||||
-- The particle, such as in "switch on", is given as a string.
|
-- The particle, such as in "switch on", is given as a string.
|
||||||
|
|
||||||
partV : V -> Str -> V ;
|
partV : V -> Str -> V ;
|
||||||
|
|
||||||
--3 Deponent verbs.
|
|
||||||
|
--3 Deponent verbs
|
||||||
--
|
--
|
||||||
-- Some words are used in passive forms only, e.g. "hoppas", some as
|
-- Some words are used in passive forms only, e.g. "hoppas", some as
|
||||||
-- reflexive e.g. "ångra sig".
|
-- reflexive e.g. "ångra sig".
|
||||||
@@ -236,6 +241,7 @@ oper
|
|||||||
depV : V -> V ;
|
depV : V -> V ;
|
||||||
reflV : V -> V ;
|
reflV : V -> V ;
|
||||||
|
|
||||||
|
|
||||||
--3 Two-place verbs
|
--3 Two-place verbs
|
||||||
--
|
--
|
||||||
-- Two-place verbs need a preposition, except the special case with direct object.
|
-- Two-place verbs need a preposition, except the special case with direct object.
|
||||||
@@ -357,14 +363,16 @@ oper
|
|||||||
|
|
||||||
mkPreposition p = p ;
|
mkPreposition p = p ;
|
||||||
|
|
||||||
mkV a b c d e f = mkVerb6 a b c d e f ** {s1 = [] ; vtype = VAct ; lock_V = <>} ;
|
mkV a b c d e f = mkVerb6 a b c d e f **
|
||||||
|
{part = [] ; vtype = VAct ; lock_V = <> ; isVaere = False} ;
|
||||||
|
|
||||||
regV a = case last a of {
|
regV a = case last a of {
|
||||||
"e" => vHusk (init a) ;
|
"e" => vHusk (init a) ;
|
||||||
_ => vBo a
|
_ => vBo a
|
||||||
} ** {s1 = [] ; vtype = VAct ; lock_V = <>} ;
|
} ** {part = [] ; vtype = VAct ; isVaere = False ; lock_V = <>} ;
|
||||||
|
|
||||||
mk2V a b = regVerb a b ** {s1 = [] ; vtype = VAct ; lock_V = <>} ;
|
mk2V a b = regVerb a b **
|
||||||
|
{part = [] ; vtype = VAct ; isVaere = False ; lock_V = <>} ;
|
||||||
|
|
||||||
irregV =
|
irregV =
|
||||||
\drikke,drakk,drukket ->
|
\drikke,drakk,drukket ->
|
||||||
@@ -380,10 +388,28 @@ oper
|
|||||||
in
|
in
|
||||||
mkV drikke drikker (drikke + "s") drakk drukket drikk ;
|
mkV drikke drikker (drikke + "s") drakk drukket drikk ;
|
||||||
|
|
||||||
|
vaereV v = {
|
||||||
|
s = v.s ;
|
||||||
|
part = [] ;
|
||||||
|
vtype = v.vtype ;
|
||||||
|
isVaere = True ;
|
||||||
|
lock_V = <>
|
||||||
|
} ;
|
||||||
|
|
||||||
partV v p = {s = \\f => v.s ! f ++ p ; vtype = v.vtype ; lock_V = <>} ;
|
partV v p = {
|
||||||
depV v = {s = v.s ; vtype = VPass ; lock_V = <>} ;
|
s = v.s ;
|
||||||
reflV v = {s = v.s ; vtype = VRefl ; lock_V = <>} ;
|
part = p ;
|
||||||
|
vtype = v.vtype ;
|
||||||
|
isVaere = v.isVaere ;
|
||||||
|
lock_V = <>
|
||||||
|
} ;
|
||||||
|
|
||||||
|
depV v = {
|
||||||
|
s = v.s ; part = v.part ; vtype = VPass ; isVaere = False ; lock_V = <>
|
||||||
|
} ;
|
||||||
|
reflV v = {
|
||||||
|
s = v.s ; part = v.part ; vtype = VRefl ; isVaere = False ; lock_V = <>
|
||||||
|
} ;
|
||||||
|
|
||||||
mkV2 v p = v ** {c2 = p ; lock_V2 = <>} ;
|
mkV2 v p = v ** {c2 = p ; lock_V2 = <>} ;
|
||||||
dirV2 v = mkV2 v [] ;
|
dirV2 v = mkV2 v [] ;
|
||||||
|
|||||||
@@ -83,8 +83,8 @@ concrete StructuralDan of Structural = CatDan **
|
|||||||
they_Pron = MorphoDan.mkNP "de" "dem" "deres" "deres" "deres" Plg P1 ;
|
they_Pron = MorphoDan.mkNP "de" "dem" "deres" "deres" "deres" Plg P1 ;
|
||||||
this_Quant =
|
this_Quant =
|
||||||
{s = table {
|
{s = table {
|
||||||
Sg => \\_ => genderForms ["den her"] ["det her"] ;
|
Sg => \\_ => genderForms ["denne"] ["dette"] ;
|
||||||
Pl => \\_,_ => ["de her"]
|
Pl => \\_,_ => ["disse"]
|
||||||
} ;
|
} ;
|
||||||
det = DDef Indef
|
det = DDef Indef
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -17,7 +17,15 @@ instance DiffNor of DiffScand = open CommonScand, Prelude in {
|
|||||||
_ => Plg
|
_ => Plg
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
detDef : Species = Def ;
|
detDef : Species = Indef ;
|
||||||
|
|
||||||
|
Verb : Type = {
|
||||||
|
s : VForm => Str ;
|
||||||
|
part : Str ;
|
||||||
|
vtype : VType
|
||||||
|
} ;
|
||||||
|
|
||||||
|
hasAuxBe _ = False ;
|
||||||
|
|
||||||
-- Strings.
|
-- Strings.
|
||||||
|
|
||||||
@@ -35,11 +43,17 @@ instance DiffNor of DiffScand = open CommonScand, Prelude in {
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
verbHave =
|
verbHave =
|
||||||
mkVerb "ha" "har" "ha" "hadde" "hatt" nonExist nonExist nonExist ;
|
mkVerb "ha" "har" "ha" "hadde" "hatt" nonExist nonExist nonExist
|
||||||
|
** noPart ;
|
||||||
verbBe =
|
verbBe =
|
||||||
mkVerb "være" "er" "var" "var" "vært" "væren" "været" "værne" ;
|
mkVerb "være" "er" "var" "var" "vært" "væren" "været" "værne"
|
||||||
|
** noPart ;
|
||||||
verbBecome =
|
verbBecome =
|
||||||
mkVerb "bli" "blir" "bli" "ble" "blitt" "bliven" "blivet" "blivne" ;
|
mkVerb "bli" "blir" "bli" "ble" "blitt" "bliven" "blivet" "blivne"
|
||||||
|
** noPart ;
|
||||||
|
|
||||||
|
-- auxiliary
|
||||||
|
noPart = {part = []} ;
|
||||||
|
|
||||||
auxFut = "vil" ; -- "skal" in ExtNor
|
auxFut = "vil" ; -- "skal" in ExtNor
|
||||||
auxCond = "ville" ;
|
auxCond = "ville" ;
|
||||||
|
|||||||
@@ -356,14 +356,15 @@ oper
|
|||||||
|
|
||||||
mkPreposition p = p ;
|
mkPreposition p = p ;
|
||||||
|
|
||||||
mkV a b c d e f = mkVerb6 a b c d e f ** {s1 = [] ; vtype = VAct ; lock_V = <>} ;
|
mkV a b c d e f = mkVerb6 a b c d e f **
|
||||||
|
{part = [] ; vtype = VAct ; lock_V = <>} ;
|
||||||
|
|
||||||
regV a = case last a of {
|
regV a = case last a of {
|
||||||
"e" => vHusk (init a) ;
|
"e" => vHusk (init a) ;
|
||||||
_ => vBo a
|
_ => vBo a
|
||||||
} ** {s1 = [] ; vtype = VAct ; lock_V = <>} ;
|
} ** {part = [] ; vtype = VAct ; lock_V = <>} ;
|
||||||
|
|
||||||
mk2V a b = regVerb a b ** {s1 = [] ; vtype = VAct ; lock_V = <>} ;
|
mk2V a b = regVerb a b ** {part = [] ; vtype = VAct ; lock_V = <>} ;
|
||||||
|
|
||||||
irregV =
|
irregV =
|
||||||
\drikke,drakk,drukket ->
|
\drikke,drakk,drukket ->
|
||||||
@@ -380,9 +381,9 @@ oper
|
|||||||
mkV drikke drikker (drikke + "s") drakk drukket drikk ;
|
mkV drikke drikker (drikke + "s") drakk drukket drikk ;
|
||||||
|
|
||||||
|
|
||||||
partV v p = {s = \\f => v.s ! f ++ p ; vtype = v.vtype ; lock_V = <>} ;
|
partV v p = {s = v.s ; part = p ; vtype = v.vtype ; lock_V = <>} ;
|
||||||
depV v = {s = v.s ; vtype = VPass ; lock_V = <>} ;
|
depV v = {s = v.s ; part = v.part ; vtype = VPass ; lock_V = <>} ;
|
||||||
reflV v = {s = v.s ; vtype = VRefl ; lock_V = <>} ;
|
reflV v = {s = v.s ; part = v.part ; vtype = VRefl ; lock_V = <>} ;
|
||||||
|
|
||||||
mkV2 v p = v ** {c2 = p ; lock_V2 = <>} ;
|
mkV2 v p = v ** {c2 = p ; lock_V2 = <>} ;
|
||||||
dirV2 v = mkV2 v [] ;
|
dirV2 v = mkV2 v [] ;
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ concrete StructuralNor of Structural = CatNor **
|
|||||||
Sg => \\_ => genderForms ["den der"] ["det der"] ;
|
Sg => \\_ => genderForms ["den der"] ["det der"] ;
|
||||||
Pl => \\_,_ => ["de der"]
|
Pl => \\_,_ => ["de der"]
|
||||||
} ;
|
} ;
|
||||||
det = DDef Def
|
det = DDef Indef
|
||||||
} ;
|
} ;
|
||||||
that_NP = regNP ["det der"] ["det ders"] SgNeutr ;
|
that_NP = regNP ["det der"] ["det ders"] SgNeutr ;
|
||||||
there_Adv = ss "der" ;
|
there_Adv = ss "der" ;
|
||||||
@@ -86,7 +86,7 @@ concrete StructuralNor of Structural = CatNor **
|
|||||||
Sg => \\_ => genderForms ["den her"] ["det her"] ;
|
Sg => \\_ => genderForms ["den her"] ["det her"] ;
|
||||||
Pl => \\_,_ => ["de her"]
|
Pl => \\_,_ => ["de her"]
|
||||||
} ;
|
} ;
|
||||||
det = DDef Def
|
det = DDef Indef
|
||||||
} ;
|
} ;
|
||||||
this_NP = regNP ["det her"] ["det hers"] SgNeutr ;
|
this_NP = regNP ["det her"] ["det hers"] SgNeutr ;
|
||||||
those_NP = regNP ["de der"] ["de ders"] Plg ;
|
those_NP = regNP ["de der"] ["de ders"] Plg ;
|
||||||
|
|||||||
@@ -214,11 +214,6 @@ oper
|
|||||||
|
|
||||||
-- For $Verb$.
|
-- For $Verb$.
|
||||||
|
|
||||||
Verb : Type = {
|
|
||||||
s : VForm => Str ;
|
|
||||||
vtype : VType
|
|
||||||
} ;
|
|
||||||
|
|
||||||
VP = {
|
VP = {
|
||||||
s : VPForm => {
|
s : VPForm => {
|
||||||
fin : Str ; -- V1 har ---s1
|
fin : Str ; -- V1 har ---s1
|
||||||
|
|||||||
@@ -14,6 +14,12 @@ interface DiffScand = open CommonScand, Prelude in {
|
|||||||
|
|
||||||
detDef : Species ;
|
detDef : Species ;
|
||||||
|
|
||||||
|
-- Danish verbs have a marking for compound-tense auxiliary ("have" or "være").
|
||||||
|
|
||||||
|
Verb : Type ;
|
||||||
|
|
||||||
|
hasAuxBe : Verb -> Bool ;
|
||||||
|
|
||||||
-- Strings.
|
-- Strings.
|
||||||
|
|
||||||
conjThat : Str ;
|
conjThat : Str ;
|
||||||
@@ -25,10 +31,10 @@ interface DiffScand = open CommonScand, Prelude in {
|
|||||||
|
|
||||||
artIndef : Gender => Str ;
|
artIndef : Gender => Str ;
|
||||||
|
|
||||||
verbHave : {s : VForm => Str ; vtype : VType} ;
|
verbHave : Verb ;
|
||||||
verbBe : {s : VForm => Str ; vtype : VType} ;
|
verbBe : Verb ;
|
||||||
|
|
||||||
verbBecome : {s : VForm => Str ; vtype : VType} ;
|
verbBecome : Verb ;
|
||||||
|
|
||||||
auxFut : Str ;
|
auxFut : Str ;
|
||||||
auxCond : Str ;
|
auxCond : Str ;
|
||||||
|
|||||||
@@ -27,11 +27,16 @@ interface ResScand = DiffScand ** open CommonScand, Prelude in {
|
|||||||
vsup = verb.s ! VI (VSupin diath) ; --# notpresent
|
vsup = verb.s ! VI (VSupin diath) ; --# notpresent
|
||||||
vinf = verb.s ! VI (VInfin diath) ;
|
vinf = verb.s ! VI (VInfin diath) ;
|
||||||
|
|
||||||
har : Tense -> Str = \t -> verbHave.s ! vFin t Act ;
|
auxv = case hasAuxBe verb of {
|
||||||
ha : Str = verbHave.s ! VI (VInfin Act) ;
|
True => verbBe.s ;
|
||||||
|
_ => verbHave.s
|
||||||
|
} ;
|
||||||
|
|
||||||
|
har : Tense -> Str = \t -> auxv ! vFin t Act ;
|
||||||
|
ha : Str = auxv ! VI (VInfin Act) ;
|
||||||
|
|
||||||
vf : Str -> Str -> {fin,inf : Str} = \fin,inf -> {
|
vf : Str -> Str -> {fin,inf : Str} = \fin,inf -> {
|
||||||
fin = fin ; inf = inf
|
fin = fin ; inf = inf ++ verb.part
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
in {
|
in {
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ incomplete concrete VerbScand of Verb = CatScand ** open CommonScand, ResScand i
|
|||||||
(\\a => v.s ! VI (VPtPret (agrAdj a.gn DIndef) Nom))
|
(\\a => v.s ! VI (VPtPret (agrAdj a.gn DIndef) Nom))
|
||||||
(predV verbBecome) ;
|
(predV verbBecome) ;
|
||||||
|
|
||||||
UseVS, UseVQ = \vv -> {s = vv.s ; c2 = [] ; vtype = vv.vtype} ;
|
UseVS, UseVQ = \vv ->
|
||||||
|
vv ** {c2 = []} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,15 @@ instance DiffSwe of DiffScand = open CommonScand, Prelude in {
|
|||||||
|
|
||||||
detDef : Species = Def ;
|
detDef : Species = Def ;
|
||||||
|
|
||||||
|
Verb : Type = {
|
||||||
|
s : VForm => Str ;
|
||||||
|
part : Str ;
|
||||||
|
vtype : VType
|
||||||
|
} ;
|
||||||
|
|
||||||
|
hasAuxBe _ = False ;
|
||||||
|
|
||||||
|
|
||||||
-- Strings.
|
-- Strings.
|
||||||
|
|
||||||
conjThat = "att" ;
|
conjThat = "att" ;
|
||||||
@@ -33,11 +42,16 @@ instance DiffSwe of DiffScand = open CommonScand, Prelude in {
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
verbHave =
|
verbHave =
|
||||||
mkVerb "ha" "har" "ha" "hade" "haft" "havd" "havt" "havda" ;
|
mkVerb "ha" "har" "ha" "hade" "haft" "havd" "havt" "havda" ** noPart ;
|
||||||
verbBe =
|
verbBe =
|
||||||
mkVerb "vara" "är" "var" "var" "varit" "varen" "varet" "varna" ;
|
mkVerb "vara" "är" "var" "var" "varit" "varen" "varet" "varna"
|
||||||
|
** noPart ;
|
||||||
verbBecome =
|
verbBecome =
|
||||||
mkVerb "bli" "blir" "bli" "blev" "blivit" "bliven" "blivet" "blivna" ;
|
mkVerb "bli" "blir" "bli" "blev" "blivit" "bliven" "blivet" "blivna"
|
||||||
|
** noPart ;
|
||||||
|
|
||||||
|
-- auxiliary
|
||||||
|
noPart = {part = []} ;
|
||||||
|
|
||||||
auxFut = "ska" ; -- "skall" in ExtSwe
|
auxFut = "ska" ; -- "skall" in ExtSwe
|
||||||
auxCond = "skulle" ;
|
auxCond = "skulle" ;
|
||||||
|
|||||||
@@ -423,7 +423,7 @@ oper
|
|||||||
funna = funn ! Strong Plg ! Nom
|
funna = funn ! Strong Plg ! Nom
|
||||||
in
|
in
|
||||||
mkVerb finna finner finn fann funnit funnen funnet funna **
|
mkVerb finna finner finn fann funnit funnen funnet funna **
|
||||||
{vtype=VAct ; lock_V = <>} ;
|
{part = [] ; vtype=VAct ; lock_V = <>} ;
|
||||||
|
|
||||||
regV leker = case leker of {
|
regV leker = case leker of {
|
||||||
lek + "a" => conj1 leker ; --- bw compat
|
lek + "a" => conj1 leker ; --- bw compat
|
||||||
@@ -480,9 +480,9 @@ oper
|
|||||||
mkV sälja (säljer.s ! VF (VPres Act)) (säljer.s ! (VF (VImper Act))) sålde sålt såld
|
mkV sälja (säljer.s ! VF (VPres Act)) (säljer.s ! (VF (VImper Act))) sålde sålt såld
|
||||||
** {s1 = [] ; lock_V = <>} ;
|
** {s1 = [] ; lock_V = <>} ;
|
||||||
|
|
||||||
partV v p = {s = \\f => v.s ! f ++ p ; vtype = v.vtype ; lock_V = <>} ;
|
partV v p = {s = v.s ; part = p ; vtype = v.vtype ; lock_V = <>} ;
|
||||||
depV v = {s = v.s ; vtype = VPass ; lock_V = <>} ;
|
depV v = {s = v.s ; part = v.part ; vtype = VPass ; lock_V = <>} ;
|
||||||
reflV v = {s = v.s ; vtype = VRefl ; lock_V = <>} ;
|
reflV v = {s = v.s ; part = v.part ; vtype = VRefl ; lock_V = <>} ;
|
||||||
|
|
||||||
mkV2 v p = v ** {c2 = p ; lock_V2 = <>} ;
|
mkV2 v p = v ** {c2 = p ; lock_V2 = <>} ;
|
||||||
dirV2 v = mkV2 v [] ;
|
dirV2 v = mkV2 v [] ;
|
||||||
|
|||||||
Reference in New Issue
Block a user