1
0
forked from GitHub/gf-core

Norwegian

This commit is contained in:
aarne
2005-01-20 14:03:48 +00:00
parent dac3d508f8
commit 51b45ae690
8 changed files with 46 additions and 15 deletions

View File

@@ -49,8 +49,8 @@ concrete StructuralDan of Structural =
ThisDet = mkDeterminerSgGender2 ["den her"] ["det her"] (DefP Indef) ; ThisDet = mkDeterminerSgGender2 ["den her"] ["det her"] (DefP Indef) ;
ThatDet = mkDeterminerSgGender2 ["den der"] ["det der"] (DefP Indef) ; ThatDet = mkDeterminerSgGender2 ["den der"] ["det der"] (DefP Indef) ;
TheseNumDet = mkDeterminerPlNum ["de her"] (DefP Def) ; TheseNumDet = mkDeterminerPlNum ["de her"] (DefP Indef) ;
ThoseNumDet = mkDeterminerPlNum ["de der"] (DefP Def) ; ThoseNumDet = mkDeterminerPlNum ["de der"] (DefP Indef) ;
HowIAdv = ss "hvor" ; HowIAdv = ss "hvor" ;
WhenIAdv = ss "hvornår" ; WhenIAdv = ss "hvornår" ;

View File

@@ -82,8 +82,8 @@ instance SyntaxDan of SyntaxScand = TypesDan **
auxHar = "har" ; auxHar = "har" ;
auxHade = "havde" ; auxHade = "havde" ;
auxHa = "have" ; auxHa = "have" ;
auxSka = "skal" ; auxSka = "val" ;
auxSkulle = "skulle" ; auxSkulle = "ville" ;
infinAtt = "at" ; infinAtt = "at" ;
@@ -101,4 +101,15 @@ instance SyntaxDan of SyntaxScand = TypesDan **
pronVems = "hvis" ; ---- ?? pronVems = "hvis" ; ---- ??
pronVad = "hvad" ; pronVad = "hvad" ;
--- added with Nor
conjGender : Gender -> Gender -> Gender = \m,n ->
case <m,n> of {
<Utr,Utr> => Utr ;
_ => Neutr
} ;
mkDeterminerSgGender3 : Str -> Str -> Str -> SpeciesP -> Determiner = \en,_,ett ->
mkDeterminerSgGender (table {Utr => en ; Neutr => ett}) ;
} }

View File

@@ -33,7 +33,7 @@ lin
Prefer = extTransVerb (vNopart (vSpis "foretrækk")) [] ** {s3 = "for"} ; Prefer = extTransVerb (vNopart (vSpis "foretrækk")) [] ** {s3 = "for"} ;
Say = vNopart (mkVerb "sige" "siger" "siges" "sagde" "sagt" "sig") ; Say = vNopart (mkVerb "sige" "siger" "siges" "sagde" "sagt" "sig") ;
Prove = vNopart (vSpis "bevise") ; Prove = vNopart (vSpis "bevis") ;
SwitchOn = mkDirectVerb (vHusk "lukk" ** {s1 = "op"}) ; SwitchOn = mkDirectVerb (vHusk "lukk" ** {s1 = "op"}) ;
SwitchOff = mkDirectVerb (vHusk "slukk" ** {s1 = []}) ; SwitchOff = mkDirectVerb (vHusk "slukk" ** {s1 = []}) ;

View File

@@ -10,6 +10,7 @@
instance TypesDan of TypesScand = { instance TypesDan of TypesScand = {
param param
Gender = Utr | Neutr ;
NounGender = NUtr | NNeutr ; NounGender = NUtr | NNeutr ;
oper oper
@@ -17,6 +18,8 @@ oper
sexNoun _ = NoMasc ; sexNoun _ = NoMasc ;
gen2nounGen = \s -> case s of {Utr => NUtr ; Neutr => NNeutr} ; gen2nounGen = \s -> case s of {Utr => NUtr ; Neutr => NNeutr} ;
utrum = Utr ; neutrum = Neutr ;
param param
AdjFormPos = Strong GenNum | Weak ; AdjFormPos = Strong GenNum | Weak ;

View File

@@ -156,7 +156,11 @@ oper
mkDeterminerSg (\\g => en ! genNoun g) ; mkDeterminerSg (\\g => en ! genNoun g) ;
mkDeterminerSgGender2 : Str -> Str -> SpeciesP -> Determiner = \en,ett -> 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, -- Here are some examples. We are in fact doing some ad hoc morphology here,
-- instead of importing the lexicon. -- instead of importing the lexicon.
@@ -281,7 +285,7 @@ oper
case n of {Sg => ASg g ; Pl => APl} ; case n of {Sg => ASg g ; Pl => APl} ;
genGN : GenNum -> Gender = \gn -> genGN : GenNum -> Gender = \gn ->
case gn of {ASg g => g ; _ => Utr} ; case gn of {ASg g => g ; _ => utrum} ;
numGN : GenNum -> Number = \gn -> numGN : GenNum -> Number = \gn ->
case gn of {ASg _ => Sg ; APl => Pl} ; case gn of {ASg _ => Sg ; APl => Pl} ;
@@ -928,7 +932,7 @@ oper
PGen _ => pronVems ; PGen _ => pronVems ;
_ => pronVem _ => pronVem
} ; } ;
g = Utr ; g = utrum ;
n = num n = num
} ; } ;
@@ -1053,7 +1057,7 @@ oper
Imperative = SS1 Number ; Imperative = SS1 Number ;
imperVerbPhrase : VerbPhrase -> Imperative = \titta -> 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 -> imperUtterance : Number -> Imperative -> Utterance = \n,I ->
ss (I.s ! n ++ "!") ; ss (I.s ! n ++ "!") ;
@@ -1173,10 +1177,7 @@ oper
_ => Pl _ => Pl
} ; } ;
conjGender : Gender -> Gender -> Gender = \m,n -> case <m,n> of { conjGender : Gender -> Gender -> Gender ;
<Utr,Utr> => Utr ;
_ => Neutr
} ;
--2 Subjunction --2 Subjunction

View File

@@ -19,7 +19,7 @@ interface TypesScand = {
-- Their parameter values are atomic. -- Their parameter values are atomic.
param param
Gender = Utr | Neutr ; Gender ;
Number = Sg | Pl ; Number = Sg | Pl ;
Species = Indef | Def ; Species = Indef | Def ;
Case = Nom | Gen ; Case = Nom | Gen ;
@@ -46,6 +46,8 @@ param SubstForm = SF Number Species Case ;
oper Subst : Type = {s : SubstForm => Str ; h1 : Gender} ; oper Subst : Type = {s : SubstForm => Str ; h1 : Gender} ;
neutrum, utrum : Gender ;
--3 Adjectives --3 Adjectives
-- --
-- Adjectives are a very complex class, and the full table has as many as -- Adjectives are a very complex class, and the full table has as many as
@@ -84,7 +86,7 @@ param
oper oper
Adj : Type = {s : AdjForm => Str} ; Adj : Type = {s : AdjForm => Str} ;
adverbForm : AdjFormPos = Strong (ASg Neutr) ; adverbForm : AdjFormPos = Strong (ASg neutrum) ;
--3 Verbs --3 Verbs
-- --

View File

@@ -105,4 +105,15 @@ instance SyntaxSwe of SyntaxScand = TypesSwe **
pronVems = "vems" ; pronVems = "vems" ;
pronVad = "vad" ; pronVad = "vad" ;
--- added with Nor
conjGender : Gender -> Gender -> Gender = \m,n ->
case <m,n> of {
<Utr,Utr> => Utr ;
_ => Neutr
} ;
mkDeterminerSgGender3 : Str -> Str -> Str -> SpeciesP -> Determiner = \en,_,ett ->
mkDeterminerSgGender (table {Utr => en ; Neutr => ett}) ;
} }

View File

@@ -10,6 +10,7 @@
instance TypesSwe of TypesScand = { instance TypesSwe of TypesScand = {
param param
Gender = Utr | Neutr ;
NounGender = NUtr Sex | NNeutr ; NounGender = NUtr Sex | NNeutr ;
oper oper
@@ -17,6 +18,8 @@ oper
sexNoun = \s -> case s of {NUtr x => x ; NNeutr => NoMasc} ; sexNoun = \s -> case s of {NUtr x => x ; NNeutr => NoMasc} ;
gen2nounGen = \s -> case s of {Utr => NUtr NoMasc ; Neutr => NNeutr} ; gen2nounGen = \s -> case s of {Utr => NUtr NoMasc ; Neutr => NNeutr} ;
utrum = Utr ; neutrum = Neutr ;
param param
AdjFormPos = Strong GenNum | Weak SexNum ; AdjFormPos = Strong GenNum | Weak SexNum ;