diff options
| author | aarne <aarne@cs.chalmers.se> | 2008-12-02 08:22:32 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2008-12-02 08:22:32 +0000 |
| commit | d0a129dabc82a23336052255890aba894b8ec7ad (patch) | |
| tree | c980d769f678a3ea22f317cb22cd93efb1fe4928 /next-lib/src/scandinavian | |
| parent | 947d22129f49e654e373cc5d9b2b156a114f1c54 (diff) | |
sibstantival det forms in scandinavian
Diffstat (limited to 'next-lib/src/scandinavian')
| -rw-r--r-- | next-lib/src/scandinavian/CatScand.gf | 4 | ||||
| -rw-r--r-- | next-lib/src/scandinavian/DiffScand.gf | 1 | ||||
| -rw-r--r-- | next-lib/src/scandinavian/NounScand.gf | 16 |
3 files changed, 16 insertions, 5 deletions
diff --git a/next-lib/src/scandinavian/CatScand.gf b/next-lib/src/scandinavian/CatScand.gf index 3b55f755f..6b9b34b47 100644 --- a/next-lib/src/scandinavian/CatScand.gf +++ b/next-lib/src/scandinavian/CatScand.gf @@ -68,8 +68,8 @@ incomplete concrete CatScand of Cat = CN = {s : Number => DetSpecies => Case => Str ; g : Gender ; isMod : Bool} ; NP,Pron = {s : NPForm => Str ; a : Agr} ; - Det = {s : Bool => Gender => Str ; n : Number ; det : DetSpecies} ; - Quant = {s : Number => Bool => Bool => Gender => Str ; det : DetSpecies} ; + Det = {s,sp : Bool => Gender => Str ; n : Number ; det : DetSpecies} ; + Quant = {s,sp : Number => Bool => Bool => Gender => Str ; det : DetSpecies} ; Predet = {s : GenNum => Str} ; Num = {s : Gender => Str ; isDet : Bool ; n : Number} ; Card = {s : Gender => Str ; n : Number} ; diff --git a/next-lib/src/scandinavian/DiffScand.gf b/next-lib/src/scandinavian/DiffScand.gf index e288be677..7b1e6b319 100644 --- a/next-lib/src/scandinavian/DiffScand.gf +++ b/next-lib/src/scandinavian/DiffScand.gf @@ -34,6 +34,7 @@ interface DiffScand = open CommonScand, Prelude in { subjIf : Str ; artIndef : Gender => Str ; + detIndefPl : Str ; verbHave : Verb ; verbBe : Verb ; diff --git a/next-lib/src/scandinavian/NounScand.gf b/next-lib/src/scandinavian/NounScand.gf index 06a34be57..bbb1f3a0c 100644 --- a/next-lib/src/scandinavian/NounScand.gf +++ b/next-lib/src/scandinavian/NounScand.gf @@ -48,6 +48,8 @@ incomplete concrete NounScand of Noun = DetQuantOrd quant num ord = { s = \\b,g => quant.s ! num.n ! b ! (orB b num.isDet) ! g ++ num.s ! g ++ ord.s ; + sp = \\b,g => quant.s ! num.n ! b ! (orB b num.isDet) ! g ++ + num.s ! g ++ ord.s ; n = num.n ; det = quant.det } ; @@ -56,11 +58,14 @@ incomplete concrete NounScand of Noun = let md : Bool -> Bool = \b -> case quant.det of { DDef _ => orB b num.isDet ; + DIndef => num.isDet ; _ => False } in { s = \\b,g => quant.s ! num.n ! b ! md b ! g ++ num.s ! g ; + sp = \\b,g => quant.sp ! num.n ! b ! md b ! g ++ + num.s ! g ; n = num.n ; det = quant.det } ; @@ -70,12 +75,12 @@ incomplete concrete NounScand of Noun = g = Neutr ; ---- m = True ; ---- is this needed for other than Art? in { - s = \\c => det.s ! m ! g ; + s = \\c => det.sp ! m ! g ; a = agrP3 g det.n } ; PossPron p = { - s = \\n,_,_,g => p.s ! NPPoss (gennum g n) ; + s,sp = \\n,_,_,g => p.s ! NPPoss (gennum g n) ; det = DDef Indef } ; @@ -101,7 +106,8 @@ incomplete concrete NounScand of Noun = } ; DefArt = { - s = \\n,bm,bn,g => if_then_Str (orB bm bn) (artDef (gennum g n)) [] ; + s = \\n,bm,bn,g => if_then_Str (orB bm bn) (artDef (gennum g n)) [] ; + sp = \\n,bm,bn,g => artDef (gennum g n) ; det = DDef Def } ; @@ -110,6 +116,10 @@ incomplete concrete NounScand of Noun = Sg => \\_,bn,g => if_then_Str bn [] (artIndef ! g) ; Pl => \\_,bn,_ => [] } ; + sp = table { + Sg => \\_,bn,g => artIndef ! g ; + Pl => \\_,bn,_ => detIndefPl + } ; det = DIndef } ; |
