diff --git a/lib/resource-1.0/danish/DiffDan.gf b/lib/resource-1.0/danish/DiffDan.gf index dca74a13d..60c14b4dd 100644 --- a/lib/resource-1.0/danish/DiffDan.gf +++ b/lib/resource-1.0/danish/DiffDan.gf @@ -18,6 +18,15 @@ instance DiffDan of DiffScand = open CommonScand, Prelude in { detDef : Species = Indef ; + Verb : Type = { + s : VForm => Str ; + part : Str ; + vtype : VType ; + isVaere : Bool + } ; + + hasAuxBe v = v.isVaere ; + -- Strings. conjThat = "at" ; @@ -33,11 +42,15 @@ instance DiffDan of DiffScand = open CommonScand, Prelude in { } ; verbHave = - mkVerb "have" "har" "hav" "havde" "haft" nonExist nonExist nonExist ; + mkVerb "have" "har" "hav" "havde" "haft" nonExist nonExist nonExist ** + {part = [] ; isVaere = False} ; 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 = - 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 auxCond = "ville" ; diff --git a/lib/resource-1.0/danish/LexiconDan.gf b/lib/resource-1.0/danish/LexiconDan.gf index e932ad491..cc7549f79 100644 --- a/lib/resource-1.0/danish/LexiconDan.gf +++ b/lib/resource-1.0/danish/LexiconDan.gf @@ -55,12 +55,12 @@ lin close_V2 = dirV2 (mk2V "lukke" "lukkede") ; coat_N = mk2N "frakke" "frakken" ; cold_A = regADeg "kold" ; - come_V = komme_V ; + come_V = vaereV komme_V ; computer_N = mk2N "datamaskine" "datamaskinen" ; country_N = mk2N "land" "landet" ; cousin_N = mk3N "fætter" "fættren" "fættre" ; ---- cow_N = mk2N "ku" "kuen" ; ---- - die_V = dø_V ; + die_V = vaereV dø_V ; dirty_A = regADeg "smudsig" ; ---- distance_N3 = mkN3 (regGenN "afstand" utrum) "fra" "til" ; doctor_N = mk2N "læge" "lægen" ; @@ -87,7 +87,7 @@ lin glove_N = mk2N "handske" "handsken" ; gold_N = mk2N "guld" "guldet" ; 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" ; harbour_N = mk2N "havn" "havnen" ; hate_V2 = dirV2 (regV "hade") ; @@ -107,16 +107,16 @@ lin lake_N = mk2N "sø" "søen" ; lamp_N = mk2N "lampe" "lampen" ; 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 ; like_V2 = mkV2 holde_V "af" ; listen_V2 = dirV2 (regV "lytte") ; 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") ; love_N = mk2N "kærlighed" "kærligheden" ; 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" ; meat_N = mk2N "kød" "kødet" ; milk_N = mk2N "mælk" "mælken" ; @@ -152,7 +152,7 @@ lin rock_N = mk2N "sten" "stenen" ; roof_N = mk2N "tag" "taget" ; rubber_N = mk2N "gummi" "gummien" ; - run_V = regV "løbe" ; + run_V = vaereV (regV "løbe") ; say_VS = mkVS sige_V ; school_N = mk2N "skole" "skolen" ; science_N = mk2N "videnskab" "videnskaben" ; @@ -168,11 +168,11 @@ lin shop_N = mk2N "butik" "butiken" ; short_A = regADeg "kort" ; silver_N = mk2N "sølv" "sølvet"; - sister_N = mkN "søster" "søsteren" "søstrer" "søstrene" ; ---- - sleep_V = irregV "sove" "sov" "sovet" ; + sister_N = mk3N "søster" "søstren" "søstrer" ; ---- + sleep_V = sove_V ; small_A = mkADeg "lille" "lille" "små" "mindre" "mindst" ; ---- snake_N = mk2N "slange" "slangen" ; - sock_N = mk2N "sok" "soken" ; + sock_N = mk2N "sok" "sokken" ; speak_V2 = dirV2 (regV "tale") ; ---- star_N = mk2N "stjerne" "stjernen" ; steel_N = mk2N "stål" "stålet" ; @@ -188,18 +188,18 @@ lin teacher_N = mkN "lærer" "læreren" "lærere" "lærerne" ; teach_V2 = dirV2 (mk2V "undervise" "underviste") ; television_N = mk2N "fjernsyn" "fjernsynet" ; - thick_A = mk2ADeg "tyk" "tykt" ; + thick_A = mk3ADeg "tyk" "tykt" "tykke" ; thin_A = mk2ADeg "tynd" "tyndt" ; ---- train_N = mk2N "tog" "toget" ; - travel_V = mk2V "rejse" "rejste" ; - tree_N = mkN "træ" "træet" "trær" "træne" ; ---- + travel_V = vaereV (mk2V "rejse" "rejste") ; + tree_N = mkN "træ" "træet" "træer" "træene" ; ---- ---- trousers_N = regGenN "trousers" ; ---- pl t ! - ugly_A = regADeg "grim" ; + ugly_A = mk3ADeg "grim" "grimt" "grimme" ; understand_V2 = dirV2 (irregV "forstå" "forstod" "forstått") ; university_N = mk2N "universitet" "universitetet" ; village_N = mk2N "landsby" "landsbyen" ; wait_V2 = mkV2 (regV "vente") "på" ; - walk_V = (irregV "gå" "gikk" "gått") ; + walk_V = vaereV gå_V ; warm_A = regADeg "varm" ; war_N = mk2N "krig" "krigen" ; watch_V2 = mkV2 se_V "på" ; @@ -210,26 +210,26 @@ lin win_V2 = dirV2 (irregV "vinde" "vand" "vundet") ; woman_N = mk2N "kvinde" "kvinden" ; 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") ; yellow_A = regADeg "gul" ; young_A = irregADeg "ung" "yngre" "yngst" ; ---- - do_V2 = dirV2 (irregV "gøre" "gjorde" "gjort") ; ---- + do_V2 = dirV2 gøre_V ; now_Adv = mkAdv "nu" ; already_Adv = mkAdv "allerede" ; song_N = mk2N "sang" "sangen" ; add_V3 = mkV3 (regV "tilføje") [] "til" ; ---- - number_N = mk2N "nummer" "nummeret" ; ---- - put_V2 = mkV2 (irregV "sætte" "satte" "satt") [] ; ---- - stop_V = regV "standse" ; + number_N = mk2N "nummer" "numret" ; ---- + put_V2 = dirV2 sætte_V ; + stop_V = vaereV (regV "standse") ; jump_V = regV "hoppe" ; left_Ord = {s = "venstre" ; isDet = True} ; right_Ord = {s = "højre" ; isDet = True} ; far_Adv = mkAdv "fjern" ; 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" ; full_A = regA "fuld" ; heavy_A = irregADeg "tung" "tyngre" "tyngst" ; @@ -238,7 +238,7 @@ lin round_A = regA "rund" ; sharp_A = regA "skarp" ; smooth_A = regA "jævn" ; - straight_A = regA "ret" ; + straight_A = mk3ADeg "ret" "rett" "rette" ; ---- wet_A = regA "våd" ; wide_A = regA "bred" ; animal_N = mk2N "dyr" "dyret" ; @@ -250,12 +250,12 @@ lin bone_N = mk2N "ben" "benet" ; breast_N = mk2N "bryst" "brystet" ; cloud_N = mk2N "sky" "skyen" ; - day_N = mk2N "dag" "dagen" ; + day_N = mk3N "dag" "dagen" "dage" ; dust_N = mk2N "støv" "støvet" ; ear_N = mk2N "øre" "øret" ; earth_N = mk2N "jord" "jorden" ; egg_N = mk2N "æg" "æget" ; - eye_N = mkN "øje" "øjet" "øjne" "øjnene" ; + eye_N = mk3N "øje" "øjet" "øjne" ; fat_N = mk2N "fedt" "fedtet" ; feather_N = mk2N "fjer" "fjeren" ; fingernail_N = mk2N "negl" "neglen" ; @@ -277,22 +277,22 @@ lin leaf_N = mk2N "løv" "løvet" ; leg_N = mk2N "ben" "benet" ; liver_N = mkN "lever" "leveren" "levrer" "levrene" ; ---- - louse_N = mk2N "lus" "lusen" ; + louse_N = mk3N "lus" "lusen" "lus" ; mouth_N = mk2N "mund" "munden" ; name_N = mk2N "navn" "navnet" ; 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" ; person_N = mk2N "person" "personen" ; rain_N = mk2N "regn" "regnet" ; 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" ; salt_N = mk2N "salt" "saltet" ; sand_N = mk2N "sand" "sanden" ; seed_N = mk2N "frø" "frøet" ; 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" ; snow_N = mk2N "snø" "snøen" ; stick_N = mk2N "pind" "pinden" ; @@ -310,12 +310,12 @@ lin count_V2 = dirV2 tælle_V ; cut_V2 = dirV2 (skære_V) ; dig_V = mk2V "grave" "gravde" ; - fall_V = falde_V ; + fall_V = vaereV falde_V ; fear_V2 = dirV2 (regV "frygte") ; fight_V2 = dirV2 (regV "kæmpe") ; float_V = flyde_V ; flow_V = regV "strømme" ; - fly_V = flyve_V ; + fly_V = vaereV flyve_V ; freeze_V = fryse_V ; give_V3 = dirdirV3 give_V ; hit_V2 = dirV2 (slå_V) ; @@ -337,7 +337,7 @@ lin split_V2 = dirV2 (regV "splitte") ; ---- squeeze_V2 = dirV2 (regV "presse") ; stab_V2 = dirV2 (stikke_V) ; - stand_V = stå_V ; + stand_V = vaereV stå_V ; suck_V2 = dirV2 (regV "sutte") ; ---- swell_V = regV "svulme" ; swim_V = regV "svømme" ; diff --git a/lib/resource-1.0/danish/ParadigmsDan.gf b/lib/resource-1.0/danish/ParadigmsDan.gf index e82295391..2edce0064 100644 --- a/lib/resource-1.0/danish/ParadigmsDan.gf +++ b/lib/resource-1.0/danish/ParadigmsDan.gf @@ -40,9 +40,8 @@ resource ParadigmsDan = oper Gender : Type ; - masculine : Gender ; - feminine : Gender ; - neutrum : Gender ; + utrum : Gender ; + neutrum : Gender ; -- To abstract over number names, we define the following. @@ -71,9 +70,8 @@ oper -- The regular function takes the singular indefinite form -- and computes the other forms and the gender by a heuristic. --- The heuristic is that nouns ending "e" are feminine like "kvinne", --- all others are masculine like "bil". --- If in doubt, use the $cc$ command to test! +-- The heuristic is that all nouns are $utrum$ with the +-- plural ending "er"/"r". regN : Str -> N ; @@ -222,13 +220,20 @@ oper 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. partV : V -> Str -> V ; ---3 Deponent verbs. + +--3 Deponent verbs -- -- Some words are used in passive forms only, e.g. "hoppas", some as -- reflexive e.g. "ångra sig". @@ -236,6 +241,7 @@ oper depV : V -> V ; reflV : V -> V ; + --3 Two-place verbs -- -- Two-place verbs need a preposition, except the special case with direct object. @@ -357,14 +363,16 @@ oper 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 { "e" => vHusk (init 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 = \drikke,drakk,drukket -> @@ -380,10 +388,28 @@ oper in 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 = <>} ; - depV v = {s = v.s ; vtype = VPass ; lock_V = <>} ; - reflV v = {s = v.s ; vtype = VRefl ; lock_V = <>} ; + partV v p = { + s = v.s ; + 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 = <>} ; dirV2 v = mkV2 v [] ; diff --git a/lib/resource-1.0/danish/StructuralDan.gf b/lib/resource-1.0/danish/StructuralDan.gf index 1b034ecdd..9451b1c8e 100644 --- a/lib/resource-1.0/danish/StructuralDan.gf +++ b/lib/resource-1.0/danish/StructuralDan.gf @@ -83,8 +83,8 @@ concrete StructuralDan of Structural = CatDan ** they_Pron = MorphoDan.mkNP "de" "dem" "deres" "deres" "deres" Plg P1 ; this_Quant = {s = table { - Sg => \\_ => genderForms ["den her"] ["det her"] ; - Pl => \\_,_ => ["de her"] + Sg => \\_ => genderForms ["denne"] ["dette"] ; + Pl => \\_,_ => ["disse"] } ; det = DDef Indef } ; diff --git a/lib/resource-1.0/norwegian/DiffNor.gf b/lib/resource-1.0/norwegian/DiffNor.gf index a8bb84fb4..0c431fe6b 100644 --- a/lib/resource-1.0/norwegian/DiffNor.gf +++ b/lib/resource-1.0/norwegian/DiffNor.gf @@ -17,7 +17,15 @@ instance DiffNor of DiffScand = open CommonScand, Prelude in { _ => Plg } ; - detDef : Species = Def ; + detDef : Species = Indef ; + + Verb : Type = { + s : VForm => Str ; + part : Str ; + vtype : VType + } ; + + hasAuxBe _ = False ; -- Strings. @@ -35,11 +43,17 @@ instance DiffNor of DiffScand = open CommonScand, Prelude in { } ; verbHave = - mkVerb "ha" "har" "ha" "hadde" "hatt" nonExist nonExist nonExist ; + mkVerb "ha" "har" "ha" "hadde" "hatt" nonExist nonExist nonExist + ** noPart ; 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 = - 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 auxCond = "ville" ; diff --git a/lib/resource-1.0/norwegian/ParadigmsNor.gf b/lib/resource-1.0/norwegian/ParadigmsNor.gf index 3dcf57085..a99ff6dcf 100644 --- a/lib/resource-1.0/norwegian/ParadigmsNor.gf +++ b/lib/resource-1.0/norwegian/ParadigmsNor.gf @@ -356,14 +356,15 @@ oper 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 { "e" => vHusk (init 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 = \drikke,drakk,drukket -> @@ -380,9 +381,9 @@ oper mkV drikke drikker (drikke + "s") drakk drukket drikk ; - partV v p = {s = \\f => v.s ! f ++ p ; vtype = v.vtype ; lock_V = <>} ; - depV v = {s = v.s ; vtype = VPass ; lock_V = <>} ; - reflV v = {s = v.s ; vtype = VRefl ; lock_V = <>} ; + partV v p = {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 = <>} ; mkV2 v p = v ** {c2 = p ; lock_V2 = <>} ; dirV2 v = mkV2 v [] ; diff --git a/lib/resource-1.0/norwegian/StructuralNor.gf b/lib/resource-1.0/norwegian/StructuralNor.gf index 9dff1e19b..81a122841 100644 --- a/lib/resource-1.0/norwegian/StructuralNor.gf +++ b/lib/resource-1.0/norwegian/StructuralNor.gf @@ -72,7 +72,7 @@ concrete StructuralNor of Structural = CatNor ** Sg => \\_ => genderForms ["den der"] ["det der"] ; Pl => \\_,_ => ["de der"] } ; - det = DDef Def + det = DDef Indef } ; that_NP = regNP ["det der"] ["det ders"] SgNeutr ; there_Adv = ss "der" ; @@ -86,7 +86,7 @@ concrete StructuralNor of Structural = CatNor ** Sg => \\_ => genderForms ["den her"] ["det her"] ; Pl => \\_,_ => ["de her"] } ; - det = DDef Def + det = DDef Indef } ; this_NP = regNP ["det her"] ["det hers"] SgNeutr ; those_NP = regNP ["de der"] ["de ders"] Plg ; diff --git a/lib/resource-1.0/scandinavian/CommonScand.gf b/lib/resource-1.0/scandinavian/CommonScand.gf index ed3bea5cf..7b4c32dce 100644 --- a/lib/resource-1.0/scandinavian/CommonScand.gf +++ b/lib/resource-1.0/scandinavian/CommonScand.gf @@ -214,11 +214,6 @@ oper -- For $Verb$. - Verb : Type = { - s : VForm => Str ; - vtype : VType - } ; - VP = { s : VPForm => { fin : Str ; -- V1 har ---s1 diff --git a/lib/resource-1.0/scandinavian/DiffScand.gf b/lib/resource-1.0/scandinavian/DiffScand.gf index edbee7074..3aec97a25 100644 --- a/lib/resource-1.0/scandinavian/DiffScand.gf +++ b/lib/resource-1.0/scandinavian/DiffScand.gf @@ -14,6 +14,12 @@ interface DiffScand = open CommonScand, Prelude in { detDef : Species ; +-- Danish verbs have a marking for compound-tense auxiliary ("have" or "være"). + + Verb : Type ; + + hasAuxBe : Verb -> Bool ; + -- Strings. conjThat : Str ; @@ -25,10 +31,10 @@ interface DiffScand = open CommonScand, Prelude in { artIndef : Gender => Str ; - verbHave : {s : VForm => Str ; vtype : VType} ; - verbBe : {s : VForm => Str ; vtype : VType} ; + verbHave : Verb ; + verbBe : Verb ; - verbBecome : {s : VForm => Str ; vtype : VType} ; + verbBecome : Verb ; auxFut : Str ; auxCond : Str ; diff --git a/lib/resource-1.0/scandinavian/ResScand.gf b/lib/resource-1.0/scandinavian/ResScand.gf index 4fd2e9be8..e32933d08 100644 --- a/lib/resource-1.0/scandinavian/ResScand.gf +++ b/lib/resource-1.0/scandinavian/ResScand.gf @@ -27,11 +27,16 @@ interface ResScand = DiffScand ** open CommonScand, Prelude in { vsup = verb.s ! VI (VSupin diath) ; --# notpresent vinf = verb.s ! VI (VInfin diath) ; - har : Tense -> Str = \t -> verbHave.s ! vFin t Act ; - ha : Str = verbHave.s ! VI (VInfin Act) ; + auxv = case hasAuxBe verb of { + 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 -> { - fin = fin ; inf = inf + fin = fin ; inf = inf ++ verb.part } ; in { diff --git a/lib/resource-1.0/scandinavian/VerbScand.gf b/lib/resource-1.0/scandinavian/VerbScand.gf index 9a94b2b5f..c88c650a8 100644 --- a/lib/resource-1.0/scandinavian/VerbScand.gf +++ b/lib/resource-1.0/scandinavian/VerbScand.gf @@ -38,6 +38,7 @@ incomplete concrete VerbScand of Verb = CatScand ** open CommonScand, ResScand i (\\a => v.s ! VI (VPtPret (agrAdj a.gn DIndef) Nom)) (predV verbBecome) ; - UseVS, UseVQ = \vv -> {s = vv.s ; c2 = [] ; vtype = vv.vtype} ; + UseVS, UseVQ = \vv -> + vv ** {c2 = []} ; } diff --git a/lib/resource-1.0/swedish/DiffSwe.gf b/lib/resource-1.0/swedish/DiffSwe.gf index a79654b1b..3d6ea6a09 100644 --- a/lib/resource-1.0/swedish/DiffSwe.gf +++ b/lib/resource-1.0/swedish/DiffSwe.gf @@ -18,6 +18,15 @@ instance DiffSwe of DiffScand = open CommonScand, Prelude in { detDef : Species = Def ; + Verb : Type = { + s : VForm => Str ; + part : Str ; + vtype : VType + } ; + + hasAuxBe _ = False ; + + -- Strings. conjThat = "att" ; @@ -33,11 +42,16 @@ instance DiffSwe of DiffScand = open CommonScand, Prelude in { } ; verbHave = - mkVerb "ha" "har" "ha" "hade" "haft" "havd" "havt" "havda" ; + mkVerb "ha" "har" "ha" "hade" "haft" "havd" "havt" "havda" ** noPart ; verbBe = - mkVerb "vara" "är" "var" "var" "varit" "varen" "varet" "varna" ; + mkVerb "vara" "är" "var" "var" "varit" "varen" "varet" "varna" + ** noPart ; 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 auxCond = "skulle" ; diff --git a/lib/resource-1.0/swedish/ParadigmsSwe.gf b/lib/resource-1.0/swedish/ParadigmsSwe.gf index 3557524dc..bcf5e924e 100644 --- a/lib/resource-1.0/swedish/ParadigmsSwe.gf +++ b/lib/resource-1.0/swedish/ParadigmsSwe.gf @@ -423,7 +423,7 @@ oper funna = funn ! Strong Plg ! Nom in mkVerb finna finner finn fann funnit funnen funnet funna ** - {vtype=VAct ; lock_V = <>} ; + {part = [] ; vtype=VAct ; lock_V = <>} ; regV leker = case leker of { 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 ** {s1 = [] ; lock_V = <>} ; - partV v p = {s = \\f => v.s ! f ++ p ; vtype = v.vtype ; lock_V = <>} ; - depV v = {s = v.s ; vtype = VPass ; lock_V = <>} ; - reflV v = {s = v.s ; vtype = VRefl ; lock_V = <>} ; + partV v p = {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 = <>} ; mkV2 v p = v ** {c2 = p ; lock_V2 = <>} ; dirV2 v = mkV2 v [] ;