--# -path=.:../scandinavian:../../prelude instance SyntaxDan of SyntaxScand = TypesDan ** open Prelude, (CO = Coordination), MorphoDan in { flags optimize=all ; oper ------ mkAdjForm -- When common nouns are extracted from lexicon, the composite noun form is ignored. npDet : NounPhrase = nameNounPhrase (mkProperName "det" NNeutr) ; mkAdjForm : Species -> Number -> NounGender -> AdjFormPos = \b,n,g -> case of { => Strong (ASg (genNoun g)) ; => Strong APl ; => Weak } ; verbFinnas : Verb = deponentVerb (mkVerb "finde" "finder" "findes" "fandt" "fundet" "find" ** {s1 = []}) ; verbVara = mkVerb "være" "er" nonExist "var" "været" "vær" ** {s1 = []} ; verbHava = mkVerb "have" "har" "haves" "havde" "haft" "hav" ** {s1 = []} ; relPronForms : RelCase => GenNum => Str = table { RNom => \\_ => "som" ; RAcc => \\_ => variants {"som" ; []} ; RGen => \\_ => "hvis" ; RPrep => pronVilken } ; pronVilken = table { ASg Utr => "hvilken" ; ASg Neutr => "hvilket" ; APl => "hvilke" } ; pronSådan = table { ASg Utr => "sådan" ; ASg Neutr => "sådant" ; APl => "sådanne" } ; pronNågon = table { ASg Utr => "nogen" ; ASg Neutr => "noget" ; APl => "nogle" } ; specDefPhrase : Bool -> Species = \b -> if_then_else Species b Indef Def ; superlSpecies = Indef ; artIndef = table {Utr => "en" ; Neutr => "et"} ; artDef : Bool => GenNum => Str = table { True => table { ASg Utr => "den" ; ASg Neutr => "det" ; -- det gamla huset APl => variants {"de"} } ; False => table {_ => []} -- huset } ; auxHar = "har" ; auxHade = "havde" ; auxHa = "have" ; auxSka = "vil" ; auxSkulle = "ville" ; infinAtt, subordAtt = "at" ; varjeDet : Determiner = mkDeterminerSg (detSgInvar "hver") IndefP ; allaDet : Determiner = mkDeterminerPl "alle" IndefP ; flestaDet : Determiner = mkDeterminerPl ["de fleste"] IndefP ; prepÄn = "end" ; negInte = "ikke" ; conjOm = "hvis" ; pronVars = "hvis" ; pronVem = "hvem" ; 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}) ; reflPron : Number -> Person -> Str = \n,p -> case of { => "mig" ; => "dig" ; => "os" ; => "seg" ; --- ? dere ? _ => "seg" } ; progressiveVerbPhrase : VerbPhrase -> VerbGroup = complVerbVerb {s = verbVara.s ; s1 = "ved" ; isAux = False} ; progressiveClause : NounPhrase -> VerbPhrase -> Clause = \np,vp -> predVerbGroupClause np (complVerbVerb {s = verbVara.s ; s1 = "ved" ; isAux = False} vp) ; conjEt = "og" ; }