mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 19:42:50 -06:00
fixed Scandinavian bugs in exx-resource
This commit is contained in:
@@ -29,8 +29,8 @@ abstract Structural = Cat ** {
|
|||||||
but_PConj : PConj ;
|
but_PConj : PConj ;
|
||||||
by8agent_Prep : Prep ; -- by (agent)
|
by8agent_Prep : Prep ; -- by (agent)
|
||||||
by8means_Prep : Prep ; -- by (means of)
|
by8means_Prep : Prep ; -- by (means of)
|
||||||
can8know_VV : VV ;
|
can8know_VV : VV ; -- can (capacity)
|
||||||
can_VV : VV ;
|
can_VV : VV ; -- can (possibility)
|
||||||
during_Prep : Prep ;
|
during_Prep : Prep ;
|
||||||
either7or_DConj : Conj ; -- either...or
|
either7or_DConj : Conj ; -- either...or
|
||||||
---b either7or_DConj : DConj ;
|
---b either7or_DConj : DConj ;
|
||||||
|
|||||||
@@ -68,9 +68,9 @@ instance DiffDan of DiffScand = open CommonScand, Prelude in {
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
relPron : GenNum => RCase => Str = \\gn,c => case c of {
|
relPron : GenNum => RCase => Str = \\gn,c => case c of {
|
||||||
RNom => "som" ;
|
RNom | RPrep False => "som" ;
|
||||||
RGen => "hvis" ;
|
RGen => "hvis" ;
|
||||||
RPrep => gennumForms "hvilken" "hvilket" "hvilke" ! gn
|
RPrep _ => gennumForms "hvilken" "hvilket" "hvilke" ! gn
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
pronSuch = gennumForms "sådan" "sådant" "sådanne" ;
|
pronSuch = gennumForms "sådan" "sådant" "sådanne" ;
|
||||||
|
|||||||
@@ -8,13 +8,10 @@ concrete IdiomDan of Idiom = CatDan **
|
|||||||
GenericCl vp = mkClause "man" (agrP3 MorphoDan.utrum Sg) vp ;
|
GenericCl vp = mkClause "man" (agrP3 MorphoDan.utrum Sg) vp ;
|
||||||
|
|
||||||
CleftNP np rs = mkClause "det" (agrP3 MorphoDan.neutrum Sg)
|
CleftNP np rs = mkClause "det" (agrP3 MorphoDan.neutrum Sg)
|
||||||
(insertObj (\\_ => rs.s ! np.a)
|
(insertObj (\\_ => np.s ! rs.c ++ rs.s ! np.a) (predV verbBe)) ;
|
||||||
(insertObj (\\_ => np.s ! rs.c) (predV verbBe))) ;
|
|
||||||
|
|
||||||
CleftAdv ad s = mkClause "det" (agrP3 MorphoDan.neutrum Sg)
|
CleftAdv ad s = mkClause "det" (agrP3 MorphoDan.neutrum Sg)
|
||||||
(insertObj (\\_ => "som" ++ s.s ! Sub)
|
(insertObj (\\_ => ad.s ++ s.s ! Sub) (predV verbBe)) ;
|
||||||
(insertObj (\\_ => ad.s) (predV verbBe))) ;
|
|
||||||
|
|
||||||
|
|
||||||
ExistNP np =
|
ExistNP np =
|
||||||
mkClause "det" (agrP3 MorphoDan.neutrum Sg) (insertObj
|
mkClause "det" (agrP3 MorphoDan.neutrum Sg) (insertObj
|
||||||
|
|||||||
@@ -327,9 +327,9 @@ oper
|
|||||||
|
|
||||||
mk3N x y z = let u = ifTok Str x z "ene" "ne" in mk4N x y z (z + u) ;
|
mk3N x y z = let u = ifTok Str x z "ene" "ne" in mk4N x y z (z + u) ;
|
||||||
|
|
||||||
mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p.s} ;
|
mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = mkComplement p.s} ;
|
||||||
regN2 n g = mkN2 (regGenN n g) (mkPreposition "av") ;
|
regN2 n g = mkN2 (regGenN n g) (mkPreposition "av") ;
|
||||||
mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p.s ; c3 = q.s} ;
|
mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = mkComplement p.s ; c3 = mkComplement q.s} ;
|
||||||
|
|
||||||
mk2PN n g = {s = \\c => mkCase c n ; g = g} ** {lock_PN = <>} ;
|
mk2PN n g = {s = \\c => mkCase c n ; g = g} ** {lock_PN = <>} ;
|
||||||
regPN n = mk2PN n utrum ;
|
regPN n = mk2PN n utrum ;
|
||||||
@@ -347,7 +347,7 @@ oper
|
|||||||
mk2A a b = mk3A a b (a + "e") ;
|
mk2A a b = mk3A a b (a + "e") ;
|
||||||
regA a = (regADeg a) ** {lock_A = <>} ;
|
regA a = (regADeg a) ** {lock_A = <>} ;
|
||||||
|
|
||||||
mkA2 a p = a ** {c2 = p.s ; lock_A2 = <>} ;
|
mkA2 a p = a ** {c2 = mkComplement p.s ; lock_A2 = <>} ;
|
||||||
|
|
||||||
mkADeg a b c d e = mkAdject a b c d e ** {isComp = False ; lock_A = <>} ;
|
mkADeg a b c d e = mkAdject a b c d e ** {isComp = False ; lock_A = <>} ;
|
||||||
|
|
||||||
@@ -419,18 +419,18 @@ oper
|
|||||||
s = v.s ; part = v.part ; vtype = VRefl ; isVaere = False ; lock_V = <>
|
s = v.s ; part = v.part ; vtype = VRefl ; isVaere = False ; lock_V = <>
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mk2V2 v p = v ** {c2 = p.s ; lock_V2 = <>} ;
|
mk2V2 v p = v ** {c2 = mkComplement p.s ; lock_V2 = <>} ;
|
||||||
dirV2 v = mk2V2 v (mkPrep []) ;
|
dirV2 v = mk2V2 v (mkPrep []) ;
|
||||||
|
|
||||||
mkV3 v p q = v ** {c2 = p.s ; c3 = q.s ; lock_V3 = <>} ;
|
mkV3 v p q = v ** {c2 = mkComplement p.s ; c3 = mkComplement q.s ; lock_V3 = <>} ;
|
||||||
dirV3 v p = mkV3 v noPrep p ;
|
dirV3 v p = mkV3 v noPrep p ;
|
||||||
dirdirV3 v = dirV3 v noPrep ;
|
dirdirV3 v = dirV3 v noPrep ;
|
||||||
|
|
||||||
mkV0 v = v ** {lock_V0 = <>} ;
|
mkV0 v = v ** {lock_V0 = <>} ;
|
||||||
mkVS v = v ** {lock_VS = <>} ;
|
mkVS v = v ** {lock_VS = <>} ;
|
||||||
mkV2S v p = mk2V2 v p ** {lock_V2S = <>} ;
|
mkV2S v p = mk2V2 v p ** {lock_V2S = <>} ;
|
||||||
mkVV v = v ** {c2 = "å" ; lock_VV = <>} ;
|
mkVV v = v ** {c2 = mkComplement "at" ; lock_VV = <>} ;
|
||||||
mkV2V v p t = mk2V2 v p ** {c3 = "att" ; lock_V2V = <>} ;
|
mkV2V v p t = mk2V2 v p ** {c3 = mkComplement "at" ; lock_V2V = <>} ;
|
||||||
mkVA v = v ** {lock_VA = <>} ;
|
mkVA v = v ** {lock_VA = <>} ;
|
||||||
mkV2A v p = mk2V2 v p ** {lock_V2A = <>} ;
|
mkV2A v p = mk2V2 v p ** {lock_V2A = <>} ;
|
||||||
mkVQ v = v ** {lock_VQ = <>} ;
|
mkVQ v = v ** {lock_VQ = <>} ;
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ concrete StructuralDan of Structural = CatDan **
|
|||||||
by8means_Prep = ss "med" ;
|
by8means_Prep = ss "med" ;
|
||||||
can8know_VV, can_VV =
|
can8know_VV, can_VV =
|
||||||
mkV "kunne" "kan" "kan" "kunne" "kunnet" "kan" **
|
mkV "kunne" "kan" "kan" "kunne" "kunnet" "kan" **
|
||||||
{c2 = [] ; lock_VV = <>} ;
|
{c2 = mkComplement [] ; lock_VV = <>} ;
|
||||||
during_Prep = ss "under" ;
|
during_Prep = ss "under" ;
|
||||||
either7or_DConj = sd2 "enten" "eller" ** {n = Sg} ;
|
either7or_DConj = sd2 "enten" "eller" ** {n = Sg} ;
|
||||||
everybody_NP = regNP "alle" "alles" Plg ;
|
everybody_NP = regNP "alle" "alles" Plg ;
|
||||||
@@ -50,7 +50,8 @@ concrete StructuralDan of Structural = CatDan **
|
|||||||
most_Predet = {s = gennumForms ["den meste"] ["det meste"] ["de fleste"]} ;
|
most_Predet = {s = gennumForms ["den meste"] ["det meste"] ["de fleste"]} ;
|
||||||
much_Det = {s = \\_,_ => "meget" ; n = Pl ; det = DDef Indef} ;
|
much_Det = {s = \\_,_ => "meget" ; n = Pl ; det = DDef Indef} ;
|
||||||
must_VV =
|
must_VV =
|
||||||
mkV "måtte" "må" "må" "måtte" "måttet" "mått" ** {c2 = [] ; lock_VV = <>} ;
|
mkV "måtte" "må" "må" "måtte" "måttet" "mått" **
|
||||||
|
{c2 = mkComplement [] ; lock_VV = <>} ;
|
||||||
no_Utt = ss ["nej"] ;
|
no_Utt = ss ["nej"] ;
|
||||||
on_Prep = ss "på" ;
|
on_Prep = ss "på" ;
|
||||||
--- one_Quant = {s = \\_ => genderForms ["en"] ["et"] ; n = Sg ; det = DIndef} ; --- ei
|
--- one_Quant = {s = \\_ => genderForms ["en"] ["et"] ; n = Sg ; det = DIndef} ; --- ei
|
||||||
@@ -94,7 +95,7 @@ concrete StructuralDan of Structural = CatDan **
|
|||||||
very_AdA = ss "meget" ;
|
very_AdA = ss "meget" ;
|
||||||
want_VV =
|
want_VV =
|
||||||
mkV "ville" "vil" "vil" "ville" "villet" "villed" **
|
mkV "ville" "vil" "vil" "ville" "villet" "villed" **
|
||||||
{c2 = [] ; lock_VV = <>} ;
|
{c2 = mkComplement [] ; lock_VV = <>} ;
|
||||||
we_Pron = MorphoDan.mkNP "vi" "os" "vores" "vores" "vores" Plg P1 ;
|
we_Pron = MorphoDan.mkNP "vi" "os" "vores" "vores" "vores" Plg P1 ;
|
||||||
whatSg_IP = {s = \\_ => "hvad" ; gn = SgUtr} ; ---- infl
|
whatSg_IP = {s = \\_ => "hvad" ; gn = SgUtr} ; ---- infl
|
||||||
whatPl_IP = {s = \\_ => "hvilke" ; gn = Plg} ; ---- infl
|
whatPl_IP = {s = \\_ => "hvilke" ; gn = Plg} ; ---- infl
|
||||||
|
|||||||
@@ -83,8 +83,8 @@ AdjCN (PositA big_A) (UseN house_N)
|
|||||||
RelCN (UseN house_N) (UseRCl TPast ASimul PPos (RelSlash IdRP (SlashVP (UsePN john_PN) (SlashV2a buy_V2))))
|
RelCN (UseN house_N) (UseRCl TPast ASimul PPos (RelSlash IdRP (SlashVP (UsePN john_PN) (SlashV2a buy_V2))))
|
||||||
AdvCN (UseN house_N) (PrepNP on_Prep (DetArtSg DefArt (UseN hill_N)))
|
AdvCN (UseN house_N) (PrepNP on_Prep (DetArtSg DefArt (UseN hill_N)))
|
||||||
SentCN (UseN question_N) (EmbedQS (UseQCl TPres ASimul PPos (QuestIAdv where_IAdv (PredVP (UsePron she_Pron) (UseV sleep_V)))))
|
SentCN (UseN question_N) (EmbedQS (UseQCl TPres ASimul PPos (QuestIAdv where_IAdv (PredVP (UsePron she_Pron) (UseV sleep_V)))))
|
||||||
ApposCN (UseN city_N) (UsePN paris_PN)
|
DetArtSg DefArt (ApposCN (UseN city_N) (UsePN paris_PN))
|
||||||
|
DetCN (DetQuant (PossPron i_Pron) NumSg) (ApposCN (UseN friend_N) (UsePN john_PN))
|
||||||
|
|
||||||
-- Numeral
|
-- Numeral
|
||||||
|
|
||||||
|
|||||||
@@ -72,9 +72,9 @@ instance DiffNor of DiffScand = open CommonScand, Prelude in {
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
relPron : GenNum => RCase => Str = \\gn,c => case c of {
|
relPron : GenNum => RCase => Str = \\gn,c => case c of {
|
||||||
RNom => "som" ;
|
RNom | RPrep False => "som" ;
|
||||||
RGen => "hvis" ;
|
RGen => "hvis" ;
|
||||||
RPrep => gennumForms "hvilken" "hvilket" "hvilke" ! gn
|
RPrep _ => gennumForms "hvilken" "hvilket" "hvilke" ! gn
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
pronSuch = gennumForms "sådan" "sådant" "sådanne" ;
|
pronSuch = gennumForms "sådan" "sådant" "sådanne" ;
|
||||||
|
|||||||
@@ -9,12 +9,10 @@ concrete IdiomNor of Idiom = CatNor **
|
|||||||
GenericCl vp = mkClause "man" (agrP3 utrum Sg) vp ;
|
GenericCl vp = mkClause "man" (agrP3 utrum Sg) vp ;
|
||||||
|
|
||||||
CleftNP np rs = mkClause "det" (agrP3 ParadigmsNor.neutrum Sg)
|
CleftNP np rs = mkClause "det" (agrP3 ParadigmsNor.neutrum Sg)
|
||||||
(insertObj (\\_ => rs.s ! np.a)
|
(insertObj (\\_ => np.s ! rs.c ++ rs.s ! np.a) (predV verbBe)) ;
|
||||||
(insertObj (\\_ => np.s ! rs.c) (predV verbBe))) ;
|
|
||||||
|
|
||||||
CleftAdv ad s = mkClause "det" (agrP3 ParadigmsNor.neutrum Sg)
|
CleftAdv ad s = mkClause "det" (agrP3 ParadigmsNor.neutrum Sg)
|
||||||
(insertObj (\\_ => "som" ++ s.s ! Sub)
|
(insertObj (\\_ => ad.s ++ s.s ! Sub) (predV verbBe)) ;
|
||||||
(insertObj (\\_ => ad.s) (predV verbBe))) ;
|
|
||||||
|
|
||||||
ExistNP np =
|
ExistNP np =
|
||||||
mkClause "det" (agrP3 ParadigmsNor.neutrum Sg) (insertObj
|
mkClause "det" (agrP3 ParadigmsNor.neutrum Sg) (insertObj
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ lin
|
|||||||
important_A = regADeg "viktig" ;
|
important_A = regADeg "viktig" ;
|
||||||
industry_N = mk2N "industri" "industrien" ;
|
industry_N = mk2N "industri" "industrien" ;
|
||||||
iron_N = regGenN "jern" neutrum ;
|
iron_N = regGenN "jern" neutrum ;
|
||||||
john_PN = mkPN "John" utrum ;
|
john_PN = mkPN "John" masculine ;
|
||||||
king_N = regGenN "konge" masculine ;
|
king_N = regGenN "konge" masculine ;
|
||||||
know_V2 = dirV2 IrregNor.vite_V ;
|
know_V2 = dirV2 IrregNor.vite_V ;
|
||||||
lake_N = regGenN "vann" neutrum ;
|
lake_N = regGenN "vann" neutrum ;
|
||||||
|
|||||||
@@ -312,9 +312,9 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p.s} ;
|
mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = mkComplement p.s} ;
|
||||||
regN2 n g = mkN2 (regGenN n g) (mkPrep "av") ;
|
regN2 n g = mkN2 (regGenN n g) (mkPrep "av") ;
|
||||||
mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p.s ; c3 = q.s} ;
|
mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = mkComplement p.s ; c3 = mkComplement q.s} ;
|
||||||
|
|
||||||
regGenPN n g = {s = \\c => mkCase c n ; g = g} ** {lock_PN = <>} ;
|
regGenPN n g = {s = \\c => mkCase c n ; g = g} ** {lock_PN = <>} ;
|
||||||
regPN n = regGenPN n utrum ;
|
regPN n = regGenPN n utrum ;
|
||||||
@@ -332,7 +332,7 @@ oper
|
|||||||
mk2A a b = mk3A a b (a + "e") ;
|
mk2A a b = mk3A a b (a + "e") ;
|
||||||
regA a = (regADeg a) ** {isComp = False ; lock_A = <>} ;
|
regA a = (regADeg a) ** {isComp = False ; lock_A = <>} ;
|
||||||
|
|
||||||
mkA2 a p = a ** {c2 = p.s ; lock_A2 = <>} ;
|
mkA2 a p = a ** {c2 = mkComplement p.s ; lock_A2 = <>} ;
|
||||||
|
|
||||||
mkADeg a b c d e = mkAdject a b c d e ** {isComp = False ; lock_A = <>} ;
|
mkADeg a b c d e = mkAdject a b c d e ** {isComp = False ; lock_A = <>} ;
|
||||||
regADeg a = case Predef.dp 2 a of {
|
regADeg a = case Predef.dp 2 a of {
|
||||||
@@ -404,18 +404,18 @@ oper
|
|||||||
depV v = {s = v.s ; part = v.part ; vtype = VPass ; isVaere = False ; 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 = <>} ;
|
reflV v = {s = v.s ; part = v.part ; vtype = VRefl ; isVaere = False ; lock_V = <>} ;
|
||||||
|
|
||||||
mk2V2 v p = v ** {c2 = p.s ; lock_V2 = <>} ;
|
mk2V2 v p = v ** {c2 = mkComplement p.s ; lock_V2 = <>} ;
|
||||||
dirV2 v = mk2V2 v noPrep ;
|
dirV2 v = mk2V2 v noPrep ;
|
||||||
|
|
||||||
mkV3 v p q = v ** {c2 = p.s ; c3 = q.s ; lock_V3 = <>} ;
|
mkV3 v p q = v ** {c2 = mkComplement p.s ; c3 = mkComplement q.s ; lock_V3 = <>} ;
|
||||||
dirV3 v p = mkV3 v noPrep p ;
|
dirV3 v p = mkV3 v noPrep p ;
|
||||||
dirdirV3 v = dirV3 v noPrep ;
|
dirdirV3 v = dirV3 v noPrep ;
|
||||||
|
|
||||||
mkV0 v = v ** {lock_V0 = <>} ;
|
mkV0 v = v ** {lock_V0 = <>} ;
|
||||||
mkVS v = v ** {lock_VS = <>} ;
|
mkVS v = v ** {lock_VS = <>} ;
|
||||||
mkV2S v p = mk2V2 v p ** {lock_V2S = <>} ;
|
mkV2S v p = mk2V2 v p ** {lock_V2S = <>} ;
|
||||||
mkVV v = v ** {c2 = "å" ; lock_VV = <>} ;
|
mkVV v = v ** {c2 = mkComplement "å" ; lock_VV = <>} ;
|
||||||
mkV2V v p t = mk2V2 v p ** {c3 = "att" ; lock_V2V = <>} ;
|
mkV2V v p t = mk2V2 v p ** {c3 = mkComplement "att" ; lock_V2V = <>} ;
|
||||||
mkVA v = v ** {lock_VA = <>} ;
|
mkVA v = v ** {lock_VA = <>} ;
|
||||||
mkV2A v p = mk2V2 v p ** {lock_V2A = <>} ;
|
mkV2A v p = mk2V2 v p ** {lock_V2A = <>} ;
|
||||||
mkVQ v = v ** {lock_VQ = <>} ;
|
mkVQ v = v ** {lock_VQ = <>} ;
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ concrete StructuralNor of Structural = CatNor **
|
|||||||
by8means_Prep = ss "med" ;
|
by8means_Prep = ss "med" ;
|
||||||
can8know_VV, can_VV =
|
can8know_VV, can_VV =
|
||||||
mkV "kunne" "kan" "kunn" "kunne" "kunnet" "kunnen" **
|
mkV "kunne" "kan" "kunn" "kunne" "kunnet" "kunnen" **
|
||||||
{c2 = [] ; lock_VV = <>} ;
|
{c2 = mkComplement [] ; lock_VV = <>} ;
|
||||||
during_Prep = ss "under" ;
|
during_Prep = ss "under" ;
|
||||||
either7or_DConj = sd2 "enten" "eller" ** {n = Sg} ;
|
either7or_DConj = sd2 "enten" "eller" ** {n = Sg} ;
|
||||||
everybody_NP = regNP "alle" "alles" Plg ;
|
everybody_NP = regNP "alle" "alles" Plg ;
|
||||||
@@ -50,7 +50,8 @@ concrete StructuralNor of Structural = CatNor **
|
|||||||
most_Predet = {s = gennumForms ["den meste"] ["det meste"] ["de fleste"]} ;
|
most_Predet = {s = gennumForms ["den meste"] ["det meste"] ["de fleste"]} ;
|
||||||
much_Det = {s = \\_,_ => "mye" ; n = Pl ; det = DDef Indef} ;
|
much_Det = {s = \\_,_ => "mye" ; n = Pl ; det = DDef Indef} ;
|
||||||
must_VV =
|
must_VV =
|
||||||
mkV "måtte" "må" "må" "måtte" "måttet" "mått" ** {c2 = [] ; lock_VV = <>} ;
|
mkV "måtte" "må" "må" "måtte" "måttet" "mått" **
|
||||||
|
{c2 = mkComplement [] ; lock_VV = <>} ;
|
||||||
no_Utt = ss ["nei"] ;
|
no_Utt = ss ["nei"] ;
|
||||||
on_Prep = ss "på" ;
|
on_Prep = ss "på" ;
|
||||||
--- one_Quant = {s = \\_ => genderForms ["en"] ["et"] ; n = Sg ; det = DIndef} ; DEPREC
|
--- one_Quant = {s = \\_ => genderForms ["en"] ["et"] ; n = Sg ; det = DIndef} ; DEPREC
|
||||||
@@ -94,7 +95,7 @@ concrete StructuralNor of Structural = CatNor **
|
|||||||
very_AdA = ss "mye" ;
|
very_AdA = ss "mye" ;
|
||||||
want_VV =
|
want_VV =
|
||||||
mkV "ville" "vil" "vill" "ville" "villet" "villed" **
|
mkV "ville" "vil" "vill" "ville" "villet" "villed" **
|
||||||
{c2 = [] ; lock_VV = <>} ;
|
{c2 = mkComplement [] ; lock_VV = <>} ;
|
||||||
we_Pron = MorphoNor.mkNP "vi" "oss" "vår" "vårt" "våre" Plg P1 ;
|
we_Pron = MorphoNor.mkNP "vi" "oss" "vår" "vårt" "våre" Plg P1 ;
|
||||||
whatSg_IP = {s = \\_ => "hva" ; gn = SgUtr} ; ---- infl
|
whatSg_IP = {s = \\_ => "hva" ; gn = SgUtr} ; ---- infl
|
||||||
whatPl_IP = {s = \\_ => "hva" ; gn = Plg} ; ---- infl
|
whatPl_IP = {s = \\_ => "hva" ; gn = Plg} ; ---- infl
|
||||||
|
|||||||
@@ -19,12 +19,12 @@ incomplete concrete AdjectiveScand of Adjective =
|
|||||||
-- $SuperlA$ belongs to determiner syntax in $Noun$.
|
-- $SuperlA$ belongs to determiner syntax in $Noun$.
|
||||||
|
|
||||||
ComplA2 a np = {
|
ComplA2 a np = {
|
||||||
s = \\ap => a.s ! AF (APosit ap) Nom ++ a.c2 ++ np.s ! accusative ;
|
s = \\ap => a.s ! AF (APosit ap) Nom ++ a.c2.s ++ np.s ! accusative ;
|
||||||
isPre = False
|
isPre = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ReflA2 a = {
|
ReflA2 a = {
|
||||||
s = \\ap => a.s ! AF (APosit ap) Nom ++ a.c2 ++
|
s = \\ap => a.s ! AF (APosit ap) Nom ++ a.c2.s ++
|
||||||
reflPron (agrP3 utrum Sg) ; ----
|
reflPron (agrP3 utrum Sg) ; ----
|
||||||
isPre = False
|
isPre = False
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -10,12 +10,15 @@ incomplete concrete CatScand of Cat =
|
|||||||
S = {s : Order => Str} ;
|
S = {s : Order => Str} ;
|
||||||
QS = {s : QForm => Str} ;
|
QS = {s : QForm => Str} ;
|
||||||
RS = {s : Agr => Str ; c : NPForm} ;
|
RS = {s : Agr => Str ; c : NPForm} ;
|
||||||
SSlash = {s : Order => Str} ** {c2 : Str} ;
|
SSlash = {s : Order => Str} ** {c2 : Complement} ;
|
||||||
|
|
||||||
-- Sentence
|
-- Sentence
|
||||||
|
|
||||||
Cl = {s : R.Tense => Anteriority => Polarity => Order => Str} ;
|
Cl = {s : R.Tense => Anteriority => Polarity => Order => Str} ;
|
||||||
ClSlash = {s : R.Tense => Anteriority => Polarity => Order => Str} ** {c2 : Str} ;
|
ClSlash = {
|
||||||
|
s : R.Tense => Anteriority => Polarity => Order => Str ;
|
||||||
|
c2 : Complement
|
||||||
|
} ;
|
||||||
Imp = {s : Polarity => Number => Str} ;
|
Imp = {s : Polarity => Number => Str} ;
|
||||||
|
|
||||||
-- Question
|
-- Question
|
||||||
@@ -44,7 +47,7 @@ incomplete concrete CatScand of Cat =
|
|||||||
ext : Str ; -- S-Ext att hon går ---s7
|
ext : Str ; -- S-Ext att hon går ---s7
|
||||||
en2,ea2,eext : Bool -- indicate if the field exists
|
en2,ea2,eext : Bool -- indicate if the field exists
|
||||||
} ;
|
} ;
|
||||||
VPSlash = CommonScand.VP ** {c2 : Str} ;
|
VPSlash = CommonScand.VP ** {c2 : Complement} ;
|
||||||
Comp = {s : AFormPos => Str} ;
|
Comp = {s : AFormPos => Str} ;
|
||||||
|
|
||||||
|
|
||||||
@@ -63,7 +66,7 @@ incomplete concrete CatScand of Cat =
|
|||||||
NP,Pron = {s : NPForm => Str ; a : Agr} ;
|
NP,Pron = {s : NPForm => Str ; a : Agr} ;
|
||||||
Det = {s : Bool => Gender => Str ; n : Number ; det : DetSpecies} ;
|
Det = {s : Bool => Gender => Str ; n : Number ; det : DetSpecies} ;
|
||||||
Quant = {s : Number => Bool => Gender => Str ; det : DetSpecies} ;
|
Quant = {s : Number => Bool => Gender => Str ; det : DetSpecies} ;
|
||||||
Art = {s : Number => Bool => Gender => Str ; det : DetSpecies} ;
|
Art = {s : Number => Bool => Bool => Gender => Str ; det : DetSpecies} ;
|
||||||
Predet = {s : GenNum => Str} ;
|
Predet = {s : GenNum => Str} ;
|
||||||
Num = {s : Gender => Str ; isDet : Bool ; n : Number} ;
|
Num = {s : Gender => Str ; isDet : Bool ; n : Number} ;
|
||||||
Card = {s : Gender => Str ; n : Number} ;
|
Card = {s : Gender => Str ; n : Number} ;
|
||||||
@@ -83,17 +86,17 @@ incomplete concrete CatScand of Cat =
|
|||||||
-- Open lexical classes, e.g. Lexicon
|
-- Open lexical classes, e.g. Lexicon
|
||||||
|
|
||||||
V, VS, VQ, VA = Verb ;
|
V, VS, VQ, VA = Verb ;
|
||||||
V2, VV, V2Q, V2S, V2A = Verb ** {c2 : Str} ;
|
V2, VV, V2Q, V2S, V2A = Verb ** {c2 : Complement} ;
|
||||||
V3, V2V = Verb ** {c2,c3 : Str} ;
|
V3, V2V = Verb ** {c2,c3 : Complement} ;
|
||||||
|
|
||||||
A = Adjective ** {isComp : Bool} ;
|
A = Adjective ** {isComp : Bool} ;
|
||||||
-- {s : AForm => Str} ;
|
-- {s : AForm => Str} ;
|
||||||
A2 = Adjective ** {isComp : Bool ; c2 : Str} ;
|
A2 = Adjective ** {isComp : Bool ; c2 : Complement} ;
|
||||||
|
|
||||||
N = Noun ;
|
N = Noun ;
|
||||||
-- {s : Number => Species => Case => Str ; g : Gender} ;
|
-- {s : Number => Species => Case => Str ; g : Gender} ;
|
||||||
N2 = Noun ** {c2 : Str} ;
|
N2 = Noun ** {c2 : Complement} ;
|
||||||
N3 = Noun ** {c2,c3 : Str} ;
|
N3 = Noun ** {c2,c3 : Complement} ;
|
||||||
PN = {s : Case => Str ; g : Gender} ;
|
PN = {s : Case => Str ; g : Gender} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,11 +59,13 @@ param
|
|||||||
--- AdjPronForm = APron GenNum Case ;
|
--- AdjPronForm = APron GenNum Case ;
|
||||||
--- AuxVerbForm = AuxInf | AuxPres | AuxPret | AuxSup ;
|
--- AuxVerbForm = AuxInf | AuxPres | AuxPret | AuxSup ;
|
||||||
|
|
||||||
RCase = RNom | RGen | RPrep ;
|
RCase = RNom | RGen | RPrep Bool ;
|
||||||
|
|
||||||
RAgr = RNoAg | RAg {gn : GenNum ; p : Person} ;
|
RAgr = RNoAg | RAg {gn : GenNum ; p : Person} ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
|
Complement : Type = {s : Str ; hasPrep : Bool} ;
|
||||||
|
|
||||||
Agr : PType = {gn : GenNum ; p : Person} ;
|
Agr : PType = {gn : GenNum ; p : Person} ;
|
||||||
|
|
||||||
nominative : NPForm = NPNom ;
|
nominative : NPForm = NPNom ;
|
||||||
@@ -79,6 +81,13 @@ oper
|
|||||||
_ => Indef
|
_ => Indef
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
mkComplement : Str -> Complement = \s -> {
|
||||||
|
s = s ;
|
||||||
|
hasPrep = case s of {
|
||||||
|
"" => False ;
|
||||||
|
_ => True
|
||||||
|
}
|
||||||
|
} ;
|
||||||
-- Used in $Noun.AdjCN$.
|
-- Used in $Noun.AdjCN$.
|
||||||
|
|
||||||
----- agrAdj : GenNum -> DetSpecies -> AFormPos = \gn,d -> Strong gn ; --- debug
|
----- agrAdj : GenNum -> DetSpecies -> AFormPos = \gn,d -> Strong gn ; --- debug
|
||||||
|
|||||||
@@ -69,14 +69,14 @@ incomplete concrete NounScand of Noun =
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
DetArtOrd quant num ord = {
|
DetArtOrd quant num ord = {
|
||||||
s = \\b,g => quant.s ! num.n ! (orB b num.isDet) ! g ++
|
s = \\b,g => quant.s ! num.n ! b ! num.isDet ! g ++
|
||||||
num.s ! g ++ ord.s ;
|
num.s ! g ++ ord.s ;
|
||||||
n = num.n ;
|
n = num.n ;
|
||||||
det = quant.det
|
det = quant.det
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
DetArtCard quant num = {
|
DetArtCard quant num = {
|
||||||
s = \\b,g => quant.s ! num.n ! b ! g ++ num.s ! g ;
|
s = \\b,g => quant.s ! num.n ! b ! True ! g ++ num.s ! g ;
|
||||||
n = num.n ;
|
n = num.n ;
|
||||||
det = quant.det
|
det = quant.det
|
||||||
} ;
|
} ;
|
||||||
@@ -91,7 +91,7 @@ incomplete concrete NounScand of Noun =
|
|||||||
<d,_,_> => d
|
<d,_,_> => d
|
||||||
}
|
}
|
||||||
in {
|
in {
|
||||||
s = \\c => det.s ! n ! cn.isMod ! cn.g ++
|
s = \\c => det.s ! n ! cn.isMod ! False ! cn.g ++
|
||||||
cn.s ! n ! dd ! caseNP c ;
|
cn.s ! n ! dd ! caseNP c ;
|
||||||
a = agrP3 g n
|
a = agrP3 g n
|
||||||
} ;
|
} ;
|
||||||
@@ -106,7 +106,7 @@ incomplete concrete NounScand of Noun =
|
|||||||
<d,_,_> => d
|
<d,_,_> => d
|
||||||
}
|
}
|
||||||
in {
|
in {
|
||||||
s = \\c => det.s ! n ! cn.isMod ! cn.g ++
|
s = \\c => det.s ! n ! cn.isMod ! False !cn.g ++
|
||||||
cn.s ! n ! dd ! caseNP c ;
|
cn.s ! n ! dd ! caseNP c ;
|
||||||
a = agrP3 g n
|
a = agrP3 g n
|
||||||
} ;
|
} ;
|
||||||
@@ -139,14 +139,14 @@ incomplete concrete NounScand of Noun =
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
DefArt = {
|
DefArt = {
|
||||||
s = \\n,b,g => if_then_Str b (artDef (gennum g n)) [] ;
|
s = \\n,bm,bn,g => if_then_Str (orB bm bn) (artDef (gennum g n)) [] ;
|
||||||
det = DDef Def
|
det = DDef Def
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
IndefArt = {
|
IndefArt = {
|
||||||
s = table {
|
s = table {
|
||||||
Sg => \\_ => artIndef ;
|
Sg => \\_,bn,g => if_then_Str bn [] (artIndef ! g) ;
|
||||||
Pl => \\_,_ => []
|
Pl => \\_,bn,_ => []
|
||||||
} ;
|
} ;
|
||||||
det = DIndef
|
det = DIndef
|
||||||
} ;
|
} ;
|
||||||
@@ -180,12 +180,12 @@ incomplete concrete NounScand of Noun =
|
|||||||
-- The genitive of this $NP$ is not correct: "sonen till mig" (not "migs").
|
-- The genitive of this $NP$ is not correct: "sonen till mig" (not "migs").
|
||||||
|
|
||||||
ComplN2 f x = {
|
ComplN2 f x = {
|
||||||
s = \\n,d,c => f.s ! n ! specDet d ! Nom ++ f.c2 ++ x.s ! accusative ;
|
s = \\n,d,c => f.s ! n ! specDet d ! Nom ++ f.c2.s ++ x.s ! accusative ;
|
||||||
g = f.g ;
|
g = f.g ;
|
||||||
isMod = False
|
isMod = False
|
||||||
} ;
|
} ;
|
||||||
ComplN3 f x = {
|
ComplN3 f x = {
|
||||||
s = \\n,d,c => f.s ! n ! d ! Nom ++ f.c2 ++ x.s ! accusative ;
|
s = \\n,d,c => f.s ! n ! d ! Nom ++ f.c2.s ++ x.s ! accusative ;
|
||||||
g = f.g ;
|
g = f.g ;
|
||||||
c2 = f.c3 ;
|
c2 = f.c3 ;
|
||||||
isMod = False
|
isMod = False
|
||||||
@@ -207,7 +207,7 @@ incomplete concrete NounScand of Noun =
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
RelNP np rs = {
|
RelNP np rs = {
|
||||||
s = \\c => np.s ! c ++ rs.s ! np.a ;
|
s = \\c => np.s ! c ++ "," ++ rs.s ! np.a ;
|
||||||
a = np.a ;
|
a = np.a ;
|
||||||
isMod = np.isMod
|
isMod = np.isMod
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ incomplete concrete QuestionScand of Question =
|
|||||||
s = \\t,a,p =>
|
s = \\t,a,p =>
|
||||||
let
|
let
|
||||||
cls = slash.s ! t ! a ! p ;
|
cls = slash.s ! t ! a ! p ;
|
||||||
who = slash.c2 ++ ip.s ! accusative --- stranding in ExtScand
|
who = slash.c2.s ++ ip.s ! accusative --- stranding in ExtScand
|
||||||
in table {
|
in table {
|
||||||
QDir => who ++ cls ! Inv ;
|
QDir => who ++ cls ! Inv ;
|
||||||
QIndir => who ++ cls ! Sub
|
QIndir => who ++ cls ! Sub
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
incomplete concrete RelativeScand of Relative =
|
incomplete concrete RelativeScand of Relative =
|
||||||
CatScand ** open CommonScand, ResScand in {
|
CatScand ** open CommonScand, ResScand, Prelude in {
|
||||||
|
|
||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
@@ -29,14 +29,15 @@ incomplete concrete RelativeScand of Relative =
|
|||||||
|
|
||||||
RelSlash rp slash = {
|
RelSlash rp slash = {
|
||||||
s = \\t,a,p,ag =>
|
s = \\t,a,p,ag =>
|
||||||
slash.c2 ++ rp.s ! ag.gn ! RPrep ++ slash.s ! t ! a ! p ! Sub ;
|
slash.c2.s ++ rp.s ! ag.gn ! RPrep slash.c2.hasPrep ++
|
||||||
|
slash.s ! t ! a ! p ! Sub ;
|
||||||
c = NPAcc
|
c = NPAcc
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
--- The case here could be genitive.
|
--- The case here could be genitive.
|
||||||
|
|
||||||
FunRP p np rp = {
|
FunRP p np rp = {
|
||||||
s = \\gn,c => np.s ! nominative ++ p.s ++ rp.s ! gn ! RPrep ;
|
s = \\gn,c => np.s ! nominative ++ p.s ++ rp.s ! gn ! RPrep True ;
|
||||||
a = RAg np.a
|
a = RAg np.a
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
incomplete concrete SentenceScand of Sentence =
|
incomplete concrete SentenceScand of Sentence =
|
||||||
CatScand ** open CommonScand, ResScand in {
|
CatScand ** open CommonScand, ResScand, Prelude in {
|
||||||
|
|
||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
@@ -28,7 +28,7 @@ incomplete concrete SentenceScand of Sentence =
|
|||||||
c2 = slash.c2
|
c2 = slash.c2
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
SlashPrep cl prep = cl ** {c2 = prep.s} ;
|
SlashPrep cl prep = cl ** {c2 = {s = prep.s ; hasPrep = True}} ;
|
||||||
|
|
||||||
SlashVS np vs slash =
|
SlashVS np vs slash =
|
||||||
mkClause
|
mkClause
|
||||||
|
|||||||
@@ -8,17 +8,17 @@ incomplete concrete VerbScand of Verb = CatScand ** open CommonScand, ResScand i
|
|||||||
SlashV2a v = predV v ** {c2 = v.c2} ;
|
SlashV2a v = predV v ** {c2 = v.c2} ;
|
||||||
|
|
||||||
Slash2V3 v np =
|
Slash2V3 v np =
|
||||||
insertObj (\\_ => v.c2 ++ np.s ! accusative) (predV v) ** {c2 = v.c3} ;
|
insertObj (\\_ => v.c2.s ++ np.s ! accusative) (predV v) ** {c2 = v.c3} ;
|
||||||
Slash3V3 v np =
|
Slash3V3 v np =
|
||||||
insertObj (\\_ => v.c3 ++ np.s ! accusative) (predV v) ** {c2 = v.c2} ;
|
insertObj (\\_ => v.c3.s ++ np.s ! accusative) (predV v) ** {c2 = v.c2} ;
|
||||||
|
|
||||||
ComplVV v vp = insertObj (\\a => v.c2 ++ infVP vp a) (predV v) ;
|
ComplVV v vp = insertObj (\\a => v.c2.s ++ infVP vp a) (predV v) ;
|
||||||
ComplVS v s = insertObj (\\_ => conjThat ++ s.s ! Sub) (predV v) ;
|
ComplVS v s = insertObj (\\_ => conjThat ++ s.s ! Sub) (predV v) ;
|
||||||
ComplVQ v q = insertObj (\\_ => q.s ! QIndir) (predV v) ;
|
ComplVQ v q = insertObj (\\_ => q.s ! QIndir) (predV v) ;
|
||||||
ComplVA v ap = insertObj (\\a => ap.s ! agrAdj a.gn DIndef) (predV v) ;
|
ComplVA v ap = insertObj (\\a => ap.s ! agrAdj a.gn DIndef) (predV v) ;
|
||||||
|
|
||||||
SlashV2V v vp =
|
SlashV2V v vp =
|
||||||
insertObj (\\a => v.c3 ++ infVP vp a) (predV v) ** {c2 = v.c2} ;
|
insertObj (\\a => v.c3.s ++ infVP vp a) (predV v) ** {c2 = v.c2} ;
|
||||||
SlashV2S v s =
|
SlashV2S v s =
|
||||||
insertObj (\\_ => conjThat ++ s.s ! Sub) (predV v) ** {c2 = v.c2} ;
|
insertObj (\\_ => conjThat ++ s.s ! Sub) (predV v) ** {c2 = v.c2} ;
|
||||||
SlashV2Q v q =
|
SlashV2Q v q =
|
||||||
@@ -27,13 +27,13 @@ incomplete concrete VerbScand of Verb = CatScand ** open CommonScand, ResScand i
|
|||||||
insertObj
|
insertObj
|
||||||
(\\a => ap.s ! agrAdj a.gn DIndef) (predV v) ** {c2 = v.c2} ; ---- agr to obj
|
(\\a => ap.s ! agrAdj a.gn DIndef) (predV v) ** {c2 = v.c2} ; ---- agr to obj
|
||||||
|
|
||||||
ComplSlash vp np = insertObj (\\_ => vp.c2 ++ np.s ! accusative) vp ;
|
ComplSlash vp np = insertObj (\\_ => vp.c2.s ++ np.s ! accusative) vp ;
|
||||||
|
|
||||||
SlashVV v vp =
|
SlashVV v vp =
|
||||||
insertObj (\\a => v.c2 ++ infVP vp a) (predV v) ** {c2 = vp.c2} ;
|
insertObj (\\a => v.c2.s ++ infVP vp a) (predV v) ** {c2 = vp.c2} ;
|
||||||
SlashV2VNP v np vp =
|
SlashV2VNP v np vp =
|
||||||
insertObj
|
insertObj
|
||||||
(\\a => v.c2 ++ np.s ! accusative ++ v.c3 ++ infVP vp a) (predV v)
|
(\\a => v.c2.s ++ np.s ! accusative ++ v.c3.s ++ infVP vp a) (predV v)
|
||||||
** {c2 = v.c2} ;
|
** {c2 = v.c2} ;
|
||||||
|
|
||||||
UseComp comp = insertObj (\\a => comp.s ! agrAdj a.gn DIndef) (predV verbBe) ;
|
UseComp comp = insertObj (\\a => comp.s ! agrAdj a.gn DIndef) (predV verbBe) ;
|
||||||
@@ -46,7 +46,7 @@ incomplete concrete VerbScand of Verb = CatScand ** open CommonScand, ResScand i
|
|||||||
AdVVP adv vp = insertAdV adv.s vp ;
|
AdVVP adv vp = insertAdV adv.s vp ;
|
||||||
|
|
||||||
|
|
||||||
ReflVP vp = insertObj (\\a => vp.c2 ++ reflPron a) vp ;
|
ReflVP vp = insertObj (\\a => vp.c2.s ++ reflPron a) vp ;
|
||||||
|
|
||||||
PassV2 v =
|
PassV2 v =
|
||||||
insertObj
|
insertObj
|
||||||
|
|||||||
@@ -80,9 +80,9 @@ instance DiffSwe of DiffScand = open CommonScand, Prelude in {
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
relPron : GenNum => RCase => Str = \\gn,c => case c of {
|
relPron : GenNum => RCase => Str = \\gn,c => case c of {
|
||||||
RNom => "som" ;
|
RNom | RPrep False => "som" ;
|
||||||
RGen => "vars" ;
|
RGen => "vars" ;
|
||||||
RPrep => gennumForms "vilken" "vilket" "vilka" ! gn
|
RPrep True => gennumForms "vilken" "vilket" "vilka" ! gn
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
pronSuch = gennumForms "sådan" "sådant" "sådana" ;
|
pronSuch = gennumForms "sådan" "sådant" "sådana" ;
|
||||||
|
|||||||
@@ -12,13 +12,10 @@ concrete IdiomSwe of Idiom = CatSwe **
|
|||||||
GenericCl vp = mkClause "man" (agrP3 utr Sg) vp ;
|
GenericCl vp = mkClause "man" (agrP3 utr Sg) vp ;
|
||||||
|
|
||||||
CleftNP np rs = mkClause "det" (agrP3 neutr Sg)
|
CleftNP np rs = mkClause "det" (agrP3 neutr Sg)
|
||||||
(insertObj (\\_ => rs.s ! np.a)
|
(insertObj (\\_ => np.s ! rs.c ++ rs.s ! np.a) (predV verbBe)) ;
|
||||||
(insertObj (\\_ => np.s ! rs.c) (predV verbBe))) ;
|
|
||||||
|
|
||||||
CleftAdv ad s = mkClause "det" (agrP3 neutr Sg)
|
CleftAdv ad s = mkClause "det" (agrP3 neutr Sg)
|
||||||
(insertObj (\\_ => "som" ++ s.s ! Sub)
|
(insertObj (\\_ => ad.s ++ s.s ! Sub) (predV verbBe)) ;
|
||||||
(insertObj (\\_ => ad.s) (predV verbBe))) ;
|
|
||||||
|
|
||||||
|
|
||||||
ExistNP np =
|
ExistNP np =
|
||||||
mkClause "det" (agrP3 neutr Sg) (insertObj
|
mkClause "det" (agrP3 neutr Sg) (insertObj
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ lin
|
|||||||
say_VS = mkVS (mkV "säga" "säger" "säg" "sade" "sagt" "sagd") ;
|
say_VS = mkVS (mkV "säga" "säger" "säg" "sade" "sagt" "sagd") ;
|
||||||
school_N = regGenN "skola" utrum;
|
school_N = regGenN "skola" utrum;
|
||||||
science_N = mk2N "vetenskap" "vetenskaper" ;
|
science_N = mk2N "vetenskap" "vetenskaper" ;
|
||||||
sea_N = mkN "sjö" "sjön" "sjöar" "sjöarna" ;
|
sea_N = mkN "hav" "hav" ;
|
||||||
seek_V2 = dirV2 (mk2V "söka" "sökte") ;
|
seek_V2 = dirV2 (mk2V "söka" "sökte") ;
|
||||||
see_V2 = dirV2 (mkV "se" "ser" "se" "såg" "sett" "sedd") ;
|
see_V2 = dirV2 (mkV "se" "ser" "se" "såg" "sett" "sedd") ;
|
||||||
sell_V3 = dirV3 (irregV "sälja" "sålde" "sålt") (mkPrep "till") ;
|
sell_V3 = dirV3 (irregV "sälja" "sålde" "sålt") (mkPrep "till") ;
|
||||||
|
|||||||
@@ -415,9 +415,10 @@ oper
|
|||||||
regN2 : Str -> Gender -> N2 ;
|
regN2 : Str -> Gender -> N2 ;
|
||||||
|
|
||||||
|
|
||||||
mmkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p.s} ;
|
mmkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = mkComplement p.s} ;
|
||||||
regN2 n g = mmkN2 (regGenN n g) (mkPrep "av") ;
|
regN2 n g = mmkN2 (regGenN n g) (mkPrep "av") ;
|
||||||
mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p.s ; c3 = q.s} ;
|
mkN3 = \n,p,q -> n **
|
||||||
|
{lock_N3 = <> ; c2 = mkComplement p.s ; c3 = mkComplement q.s} ;
|
||||||
|
|
||||||
mkPN = overload {
|
mkPN = overload {
|
||||||
mkPN : Str -> PN = regPN ;
|
mkPN : Str -> PN = regPN ;
|
||||||
@@ -474,7 +475,7 @@ oper
|
|||||||
|
|
||||||
compoundA adj = {s = adj.s ; isComp = True ; lock_A = <>} ;
|
compoundA adj = {s = adj.s ; isComp = True ; lock_A = <>} ;
|
||||||
|
|
||||||
mkA2 a p = a ** {c2 = p.s ; lock_A2 = <>} ;
|
mkA2 a p = a ** {c2 = mkComplement p.s ; lock_A2 = <>} ;
|
||||||
|
|
||||||
mkAdv x = ss x ** {lock_Adv = <>} ;
|
mkAdv x = ss x ** {lock_Adv = <>} ;
|
||||||
mkAdV x = ss x ** {lock_AdV = <>} ;
|
mkAdV x = ss x ** {lock_AdV = <>} ;
|
||||||
@@ -566,7 +567,7 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
mmkV2 v p = v ** {c2 = p.s ; lock_V2 = <>} ;
|
mmkV2 v p = v ** {c2 = mkComplement p.s ; lock_V2 = <>} ;
|
||||||
dirV2 v = mmkV2 v noPrep ;
|
dirV2 v = mmkV2 v noPrep ;
|
||||||
|
|
||||||
mkV3 = overload {
|
mkV3 = overload {
|
||||||
@@ -581,13 +582,13 @@ oper
|
|||||||
dirdirV3 : V -> V3 ; -- ge, (dat), (acc)
|
dirdirV3 : V -> V3 ; -- ge, (dat), (acc)
|
||||||
|
|
||||||
|
|
||||||
mmkV3 v p q = v ** {c2 = p.s ; c3 = q.s ; lock_V3 = <>} ;
|
mmkV3 v p q = v ** {c2 = mkComplement p.s ; c3 = mkComplement q.s ; lock_V3 = <>} ;
|
||||||
dirV3 v p = mmkV3 v noPrep p ;
|
dirV3 v p = mmkV3 v noPrep p ;
|
||||||
dirdirV3 v = dirV3 v noPrep ;
|
dirdirV3 v = dirV3 v noPrep ;
|
||||||
|
|
||||||
mkV0 v = v ** {lock_V0 = <>} ;
|
mkV0 v = v ** {lock_V0 = <>} ;
|
||||||
mkVS v = v ** {lock_VS = <>} ;
|
mkVS v = v ** {lock_VS = <>} ;
|
||||||
mkVV v = v ** {c2 = "att" ; lock_VV = <>} ;
|
mkVV v = v ** {c2 = mkComplement "att" ; lock_VV = <>} ;
|
||||||
mkVQ v = v ** {lock_VQ = <>} ;
|
mkVQ v = v ** {lock_VQ = <>} ;
|
||||||
|
|
||||||
mkVA v = v ** {lock_VA = <>} ;
|
mkVA v = v ** {lock_VA = <>} ;
|
||||||
@@ -599,7 +600,7 @@ oper
|
|||||||
A2V : Type = A2 ;
|
A2V : Type = A2 ;
|
||||||
|
|
||||||
mkV2S v p = mmkV2 v p ** {lock_V2S = <>} ;
|
mkV2S v p = mmkV2 v p ** {lock_V2S = <>} ;
|
||||||
mkV2V v p t = mmkV2 v p ** {c3 = "att" ; lock_V2V = <>} ;
|
mkV2V v p t = mmkV2 v p ** {c3 = mkComplement "att" ; lock_V2V = <>} ;
|
||||||
mkV2Q v p = mmkV2 v p ** {lock_V2Q = <>} ;
|
mkV2Q v p = mmkV2 v p ** {lock_V2Q = <>} ;
|
||||||
|
|
||||||
mkAS v = v ** {lock_A = <>} ;
|
mkAS v = v ** {lock_A = <>} ;
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ concrete StructuralSwe of Structural = CatSwe **
|
|||||||
by8means_Prep = ss "med" ;
|
by8means_Prep = ss "med" ;
|
||||||
can8know_VV, can_VV =
|
can8know_VV, can_VV =
|
||||||
mkV "kunna" "kan" "kunn" "kunde" "kunnat" "kunnen" **
|
mkV "kunna" "kan" "kunn" "kunde" "kunnat" "kunnen" **
|
||||||
{c2 = [] ; lock_VV = <>} ;
|
{c2 = mkComplement [] ; lock_VV = <>} ;
|
||||||
during_Prep = ss "under" ;
|
during_Prep = ss "under" ;
|
||||||
either7or_DConj = sd2 "antingen" "eller" ** {n = Sg} ;
|
either7or_DConj = sd2 "antingen" "eller" ** {n = Sg} ;
|
||||||
everybody_NP = regNP "alla" "allas" Plg ;
|
everybody_NP = regNP "alla" "allas" Plg ;
|
||||||
@@ -49,7 +49,8 @@ concrete StructuralSwe of Structural = CatSwe **
|
|||||||
most_Predet = {s = gennumForms ["den mesta"] ["det mesta"] ["de flesta"]} ;
|
most_Predet = {s = gennumForms ["den mesta"] ["det mesta"] ["de flesta"]} ;
|
||||||
much_Det = {s = \\_,_ => "mycket" ; n = Pl ; det = DDef Indef} ;
|
much_Det = {s = \\_,_ => "mycket" ; n = Pl ; det = DDef Indef} ;
|
||||||
must_VV =
|
must_VV =
|
||||||
mkV "få" "måste" "få" "fick" "måst" "måst" ** {c2 = [] ; lock_VV = <>} ;
|
mkV "få" "måste" "få" "fick" "måst" "måst" **
|
||||||
|
{c2 = mkComplement [] ; lock_VV = <>} ;
|
||||||
no_Utt = ss ["nej"] ;
|
no_Utt = ss ["nej"] ;
|
||||||
on_Prep = ss "på" ;
|
on_Prep = ss "på" ;
|
||||||
--- one_Quant = {s = \\_ => genderForms ["en"] ["ett"] ; n = Sg ; det = DIndef} ;
|
--- one_Quant = {s = \\_ => genderForms ["en"] ["ett"] ; n = Sg ; det = DIndef} ;
|
||||||
@@ -93,7 +94,7 @@ concrete StructuralSwe of Structural = CatSwe **
|
|||||||
very_AdA = ss "mycket" ;
|
very_AdA = ss "mycket" ;
|
||||||
want_VV =
|
want_VV =
|
||||||
mkV "vilja" "vill" "vilj" "ville" "velat" "velad" **
|
mkV "vilja" "vill" "vilj" "ville" "velat" "velad" **
|
||||||
{c2 = [] ; lock_VV = <>} ;
|
{c2 = mkComplement [] ; lock_VV = <>} ;
|
||||||
we_Pron = MorphoSwe.mkNP "vi" "oss" "vår" "vårt" "våra" Plg P1 ;
|
we_Pron = MorphoSwe.mkNP "vi" "oss" "vår" "vårt" "våra" Plg P1 ;
|
||||||
whatSg_IP = {s = \\_ => "vad" ; gn = SgUtr} ; ---- infl
|
whatSg_IP = {s = \\_ => "vad" ; gn = SgUtr} ; ---- infl
|
||||||
whatPl_IP = {s = \\_ => "vad" ; gn = Plg} ; ---- infl
|
whatPl_IP = {s = \\_ => "vad" ; gn = Plg} ; ---- infl
|
||||||
|
|||||||
Reference in New Issue
Block a user