diff --git a/lib/resource/danish/StructuralDan.gf b/lib/resource/danish/StructuralDan.gf index cfc2b3238..9d65c43f5 100644 --- a/lib/resource/danish/StructuralDan.gf +++ b/lib/resource/danish/StructuralDan.gf @@ -49,8 +49,8 @@ concrete StructuralDan of Structural = ThisDet = mkDeterminerSgGender2 ["den her"] ["det her"] (DefP Indef) ; ThatDet = mkDeterminerSgGender2 ["den der"] ["det der"] (DefP Indef) ; - TheseNumDet = mkDeterminerPlNum ["de her"] (DefP Def) ; - ThoseNumDet = mkDeterminerPlNum ["de der"] (DefP Def) ; + TheseNumDet = mkDeterminerPlNum ["de her"] (DefP Indef) ; + ThoseNumDet = mkDeterminerPlNum ["de der"] (DefP Indef) ; HowIAdv = ss "hvor" ; WhenIAdv = ss "hvornår" ; diff --git a/lib/resource/danish/SyntaxDan.gf b/lib/resource/danish/SyntaxDan.gf index 3bc8db4c4..4c0bf7dbf 100644 --- a/lib/resource/danish/SyntaxDan.gf +++ b/lib/resource/danish/SyntaxDan.gf @@ -82,8 +82,8 @@ instance SyntaxDan of SyntaxScand = TypesDan ** auxHar = "har" ; auxHade = "havde" ; auxHa = "have" ; - auxSka = "skal" ; - auxSkulle = "skulle" ; + auxSka = "val" ; + auxSkulle = "ville" ; infinAtt = "at" ; @@ -101,4 +101,15 @@ instance SyntaxDan of SyntaxScand = TypesDan ** pronVems = "hvis" ; ---- ?? pronVad = "hvad" ; +--- added with Nor + + conjGender : Gender -> Gender -> Gender = \m,n -> + case of { + => Utr ; + _ => Neutr + } ; + + mkDeterminerSgGender3 : Str -> Str -> Str -> SpeciesP -> Determiner = \en,_,ett -> + mkDeterminerSgGender (table {Utr => en ; Neutr => ett}) ; + } \ No newline at end of file diff --git a/lib/resource/danish/TestResourceDan.gf b/lib/resource/danish/TestResourceDan.gf index 971b192b1..4dd59ac00 100644 --- a/lib/resource/danish/TestResourceDan.gf +++ b/lib/resource/danish/TestResourceDan.gf @@ -33,7 +33,7 @@ lin Prefer = extTransVerb (vNopart (vSpis "foretrækk")) [] ** {s3 = "for"} ; Say = vNopart (mkVerb "sige" "siger" "siges" "sagde" "sagt" "sig") ; - Prove = vNopart (vSpis "bevise") ; + Prove = vNopart (vSpis "bevis") ; SwitchOn = mkDirectVerb (vHusk "lukk" ** {s1 = "op"}) ; SwitchOff = mkDirectVerb (vHusk "slukk" ** {s1 = []}) ; diff --git a/lib/resource/danish/TypesDan.gf b/lib/resource/danish/TypesDan.gf index 9bcd9b3ec..afc10cf34 100644 --- a/lib/resource/danish/TypesDan.gf +++ b/lib/resource/danish/TypesDan.gf @@ -10,6 +10,7 @@ instance TypesDan of TypesScand = { param + Gender = Utr | Neutr ; NounGender = NUtr | NNeutr ; oper @@ -17,6 +18,8 @@ oper sexNoun _ = NoMasc ; gen2nounGen = \s -> case s of {Utr => NUtr ; Neutr => NNeutr} ; + utrum = Utr ; neutrum = Neutr ; + param AdjFormPos = Strong GenNum | Weak ; diff --git a/lib/resource/scandinavian/SyntaxScand.gf b/lib/resource/scandinavian/SyntaxScand.gf index 1dac79430..182b07fae 100644 --- a/lib/resource/scandinavian/SyntaxScand.gf +++ b/lib/resource/scandinavian/SyntaxScand.gf @@ -156,7 +156,11 @@ oper mkDeterminerSg (\\g => en ! genNoun g) ; mkDeterminerSgGender2 : Str -> Str -> SpeciesP -> Determiner = \en,ett -> - mkDeterminerSgGender (table {Utr => en ; Neutr => ett}) ; + mkDeterminerSgGender3 en en ett ; + +-- This is only needed in Norwegian. + + mkDeterminerSgGender3 : Str -> Str -> Str -> SpeciesP -> Determiner ; -- Here are some examples. We are in fact doing some ad hoc morphology here, -- instead of importing the lexicon. @@ -281,7 +285,7 @@ oper case n of {Sg => ASg g ; Pl => APl} ; genGN : GenNum -> Gender = \gn -> - case gn of {ASg g => g ; _ => Utr} ; + case gn of {ASg g => g ; _ => utrum} ; numGN : GenNum -> Number = \gn -> case gn of {ASg _ => Sg ; APl => Pl} ; @@ -928,7 +932,7 @@ oper PGen _ => pronVems ; _ => pronVem } ; - g = Utr ; + g = utrum ; n = num } ; @@ -1053,7 +1057,7 @@ oper Imperative = SS1 Number ; imperVerbPhrase : VerbPhrase -> Imperative = \titta -> - {s = \\n => titta.s ! VImperat ++ titta.s2 ++ titta.s3 ! VImperat ! Utr ! n} ; + {s = \\n => titta.s ! VImperat ++ titta.s2 ++ titta.s3 ! VImperat ! utrum ! n} ; imperUtterance : Number -> Imperative -> Utterance = \n,I -> ss (I.s ! n ++ "!") ; @@ -1173,10 +1177,7 @@ oper _ => Pl } ; - conjGender : Gender -> Gender -> Gender = \m,n -> case of { - => Utr ; - _ => Neutr - } ; + conjGender : Gender -> Gender -> Gender ; --2 Subjunction diff --git a/lib/resource/scandinavian/TypesScand.gf b/lib/resource/scandinavian/TypesScand.gf index b14333d54..d83fac137 100644 --- a/lib/resource/scandinavian/TypesScand.gf +++ b/lib/resource/scandinavian/TypesScand.gf @@ -19,7 +19,7 @@ interface TypesScand = { -- Their parameter values are atomic. param - Gender = Utr | Neutr ; + Gender ; Number = Sg | Pl ; Species = Indef | Def ; Case = Nom | Gen ; @@ -46,6 +46,8 @@ param SubstForm = SF Number Species Case ; oper Subst : Type = {s : SubstForm => Str ; h1 : Gender} ; + neutrum, utrum : Gender ; + --3 Adjectives -- -- Adjectives are a very complex class, and the full table has as many as @@ -84,7 +86,7 @@ param oper Adj : Type = {s : AdjForm => Str} ; - adverbForm : AdjFormPos = Strong (ASg Neutr) ; + adverbForm : AdjFormPos = Strong (ASg neutrum) ; --3 Verbs -- diff --git a/lib/resource/swedish/SyntaxSwe.gf b/lib/resource/swedish/SyntaxSwe.gf index 9a5960382..ed63dc4f3 100644 --- a/lib/resource/swedish/SyntaxSwe.gf +++ b/lib/resource/swedish/SyntaxSwe.gf @@ -105,4 +105,15 @@ instance SyntaxSwe of SyntaxScand = TypesSwe ** pronVems = "vems" ; pronVad = "vad" ; +--- added with Nor + + conjGender : Gender -> Gender -> Gender = \m,n -> + case of { + => Utr ; + _ => Neutr + } ; + + mkDeterminerSgGender3 : Str -> Str -> Str -> SpeciesP -> Determiner = \en,_,ett -> + mkDeterminerSgGender (table {Utr => en ; Neutr => ett}) ; + } diff --git a/lib/resource/swedish/TypesSwe.gf b/lib/resource/swedish/TypesSwe.gf index cd9d2f9a2..b46f04422 100644 --- a/lib/resource/swedish/TypesSwe.gf +++ b/lib/resource/swedish/TypesSwe.gf @@ -10,6 +10,7 @@ instance TypesSwe of TypesScand = { param + Gender = Utr | Neutr ; NounGender = NUtr Sex | NNeutr ; oper @@ -17,6 +18,8 @@ oper sexNoun = \s -> case s of {NUtr x => x ; NNeutr => NoMasc} ; gen2nounGen = \s -> case s of {Utr => NUtr NoMasc ; Neutr => NNeutr} ; + utrum = Utr ; neutrum = Neutr ; + param AdjFormPos = Strong GenNum | Weak SexNum ;