summaryrefslogtreecommitdiff
path: root/next-lib/src/scandinavian
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2008-12-02 08:22:32 +0000
committeraarne <aarne@cs.chalmers.se>2008-12-02 08:22:32 +0000
commitd0a129dabc82a23336052255890aba894b8ec7ad (patch)
treec980d769f678a3ea22f317cb22cd93efb1fe4928 /next-lib/src/scandinavian
parent947d22129f49e654e373cc5d9b2b156a114f1c54 (diff)
sibstantival det forms in scandinavian
Diffstat (limited to 'next-lib/src/scandinavian')
-rw-r--r--next-lib/src/scandinavian/CatScand.gf4
-rw-r--r--next-lib/src/scandinavian/DiffScand.gf1
-rw-r--r--next-lib/src/scandinavian/NounScand.gf16
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
} ;