summaryrefslogtreecommitdiff
path: root/deprecated/old-lib/resource/swedish
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2009-12-09 09:47:16 +0000
committeraarne <aarne@chalmers.se>2009-12-09 09:47:16 +0000
commitc8ceed08efcc0bdc1fcbd89bce643d9f52f0991b (patch)
tree5f0b314341c129eba1bc67b8b887fb8a4486fad8 /deprecated/old-lib/resource/swedish
parent101df06f6c8380328d4266adadac3ab6d1bac0b3 (diff)
moving a few things to deprecated
Diffstat (limited to 'deprecated/old-lib/resource/swedish')
-rw-r--r--deprecated/old-lib/resource/swedish/AdjectiveSwe.gf2
-rw-r--r--deprecated/old-lib/resource/swedish/AdverbSwe.gf2
-rw-r--r--deprecated/old-lib/resource/swedish/AllSwe.gf7
-rw-r--r--deprecated/old-lib/resource/swedish/AllSweAbs.gf5
-rw-r--r--deprecated/old-lib/resource/swedish/CatSwe.gf2
-rw-r--r--deprecated/old-lib/resource/swedish/CompatibilitySwe.gf11
-rw-r--r--deprecated/old-lib/resource/swedish/ConjunctionSwe.gf2
-rw-r--r--deprecated/old-lib/resource/swedish/DiffSwe.gf98
-rw-r--r--deprecated/old-lib/resource/swedish/ExtraScandSwe.gf2
-rw-r--r--deprecated/old-lib/resource/swedish/ExtraSwe.gf3
-rw-r--r--deprecated/old-lib/resource/swedish/ExtraSweAbs.gf7
-rw-r--r--deprecated/old-lib/resource/swedish/GrammarSwe.gf21
-rw-r--r--deprecated/old-lib/resource/swedish/IdiomSwe.gf44
-rw-r--r--deprecated/old-lib/resource/swedish/IrregSwe.gf185
-rw-r--r--deprecated/old-lib/resource/swedish/IrregSweAbs.gf179
-rw-r--r--deprecated/old-lib/resource/swedish/LangSwe.gf10
-rw-r--r--deprecated/old-lib/resource/swedish/LexiconSwe.gf366
-rw-r--r--deprecated/old-lib/resource/swedish/MorphoSwe.gf73
-rw-r--r--deprecated/old-lib/resource/swedish/NounSwe.gf2
-rw-r--r--deprecated/old-lib/resource/swedish/NumeralSwe.gf83
-rw-r--r--deprecated/old-lib/resource/swedish/ParadigmsSwe.gf654
-rw-r--r--deprecated/old-lib/resource/swedish/PhraseSwe.gf2
-rw-r--r--deprecated/old-lib/resource/swedish/QuestionSwe.gf2
-rw-r--r--deprecated/old-lib/resource/swedish/RelativeSwe.gf2
-rw-r--r--deprecated/old-lib/resource/swedish/ResSwe.gf3
-rw-r--r--deprecated/old-lib/resource/swedish/SentenceSwe.gf2
-rw-r--r--deprecated/old-lib/resource/swedish/StructuralSwe.gf127
-rw-r--r--deprecated/old-lib/resource/swedish/VerbSwe.gf2
28 files changed, 1898 insertions, 0 deletions
diff --git a/deprecated/old-lib/resource/swedish/AdjectiveSwe.gf b/deprecated/old-lib/resource/swedish/AdjectiveSwe.gf
new file mode 100644
index 000000000..00603805b
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/AdjectiveSwe.gf
@@ -0,0 +1,2 @@
+concrete AdjectiveSwe of Adjective = CatSwe ** AdjectiveScand with
+ (ResScand = ResSwe) ;
diff --git a/deprecated/old-lib/resource/swedish/AdverbSwe.gf b/deprecated/old-lib/resource/swedish/AdverbSwe.gf
new file mode 100644
index 000000000..4ecd8aff4
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/AdverbSwe.gf
@@ -0,0 +1,2 @@
+concrete AdverbSwe of Adverb = CatSwe ** AdverbScand with
+ (ResScand = ResSwe) ;
diff --git a/deprecated/old-lib/resource/swedish/AllSwe.gf b/deprecated/old-lib/resource/swedish/AllSwe.gf
new file mode 100644
index 000000000..c63bd9424
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/AllSwe.gf
@@ -0,0 +1,7 @@
+--# -path=.:../scandinavian:../abstract:../common:prelude
+
+concrete AllSwe of AllSweAbs =
+ LangSwe,
+ IrregSwe,
+ ExtraSwe
+ ** {} ;
diff --git a/deprecated/old-lib/resource/swedish/AllSweAbs.gf b/deprecated/old-lib/resource/swedish/AllSweAbs.gf
new file mode 100644
index 000000000..33ea20ec1
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/AllSweAbs.gf
@@ -0,0 +1,5 @@
+abstract AllSweAbs =
+ Lang,
+ IrregSweAbs,
+ ExtraSweAbs
+ ** {} ;
diff --git a/deprecated/old-lib/resource/swedish/CatSwe.gf b/deprecated/old-lib/resource/swedish/CatSwe.gf
new file mode 100644
index 000000000..c35924036
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/CatSwe.gf
@@ -0,0 +1,2 @@
+concrete CatSwe of Cat = CommonX ** CatScand with
+ (ResScand = ResSwe) ;
diff --git a/deprecated/old-lib/resource/swedish/CompatibilitySwe.gf b/deprecated/old-lib/resource/swedish/CompatibilitySwe.gf
new file mode 100644
index 000000000..84ab961b3
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/CompatibilitySwe.gf
@@ -0,0 +1,11 @@
+--# -path=.:../scandinavian:../abstract:../common
+
+concrete CompatibilitySwe of Compatibility = CatSwe ** open Prelude, CommonScand in {
+
+-- from Noun 19/4/2008
+
+lin
+ NumInt n = {s = \\_ => n.s ; isDet = True ; n = Pl} ;
+ OrdInt n = {s = n.s ++ ":e" ; isDet = True} ;
+
+}
diff --git a/deprecated/old-lib/resource/swedish/ConjunctionSwe.gf b/deprecated/old-lib/resource/swedish/ConjunctionSwe.gf
new file mode 100644
index 000000000..dca410032
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/ConjunctionSwe.gf
@@ -0,0 +1,2 @@
+concrete ConjunctionSwe of Conjunction = CatSwe ** ConjunctionScand with
+ (ResScand = ResSwe) ;
diff --git a/deprecated/old-lib/resource/swedish/DiffSwe.gf b/deprecated/old-lib/resource/swedish/DiffSwe.gf
new file mode 100644
index 000000000..97d9fa9cd
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/DiffSwe.gf
@@ -0,0 +1,98 @@
+instance DiffSwe of DiffScand = open CommonScand, Prelude in {
+
+-- Parameters.
+
+ param
+ Gender = Utr | Neutr ;
+
+ oper
+ utrum = Utr ;
+ neutrum = Neutr ;
+
+ gennumN : Gender -> Number -> GenNum = \g,n -> Plg ; -----
+ gennum : Gender -> Number -> GenNum = \g,n ->
+{-
+--- debugging Compute 9/11/2007
+ case n of {
+ Sg => case g of {
+ Utr => SgUtr ;
+ Neutr => SgNeutr
+ } ;
+ _ => Plg
+ } ;
+-}
+ case <<g,n> : Gender * Number> of {
+ <Utr,Sg> => SgUtr ;
+ <Neutr,Sg> => SgNeutr ;
+ _ => Plg
+ } ;
+
+ detDef : Species = Def ;
+
+ Verb : Type = {
+ s : VForm => Str ;
+ part : Str ;
+ vtype : VType
+ } ;
+
+ hasAuxBe _ = False ;
+
+
+-- Strings.
+
+ conjThat = "att" ;
+ conjThan = "än" ;
+ conjAnd = "och" ;
+ infMark = "att" ;
+ compMore = "mera" ;
+
+ subjIf = "om" ;
+
+ artIndef : Gender => Str = table {
+ Utr => "en" ;
+ Neutr => "ett"
+ } ;
+
+ verbHave =
+ mkVerb "ha" "har" "ha" "hade" "haft" "havd" "havt" "havda" ** noPart ;
+ verbBe =
+ mkVerb "vara" "är" "var" "var" "varit" "varen" "varet" "varna"
+ ** noPart ;
+ verbBecome =
+ mkVerb "bli" "blir" "bli" "blev" "blivit" "bliven" "blivet" "blivna"
+ ** noPart ;
+
+ -- auxiliary
+ noPart = {part = []} ;
+
+ auxFut = "ska" ; -- "skall" in ExtSwe
+ auxCond = "skulle" ;
+
+ negation : Polarity => Str = table {
+ Pos => [] ;
+ Neg => "inte"
+ } ;
+
+ genderForms : (x1,x2 : Str) -> Gender => Str = \all,allt ->
+ table {
+ Utr => all ;
+ Neutr => allt
+ } ;
+
+ relPron : GenNum => RCase => Str = \\gn,c => case c of {
+ RNom | RPrep False => "som" ;
+ RGen => "vars" ;
+ RPrep True => gennumForms "vilken" "vilket" "vilka" ! gn
+ } ;
+
+ pronSuch = gennumForms "sådan" "sådant" "sådana" ;
+
+ reflPron : Agr -> Str = \a -> case a of {
+ {gn = Plg ; p = P1} => "oss" ;
+ {gn = Plg ; p = P2} => "er" ;
+ {p = P1} => "mig" ;
+ {p = P2} => "dig" ;
+ {p = P3} => "sig"
+ } ;
+
+}
diff --git a/deprecated/old-lib/resource/swedish/ExtraScandSwe.gf b/deprecated/old-lib/resource/swedish/ExtraScandSwe.gf
new file mode 100644
index 000000000..ba62a8f1e
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/ExtraScandSwe.gf
@@ -0,0 +1,2 @@
+concrete ExtraScandSwe of ExtraScandAbs = CatSwe ** ExtraScand with
+ (ResScand = ResSwe) ;
diff --git a/deprecated/old-lib/resource/swedish/ExtraSwe.gf b/deprecated/old-lib/resource/swedish/ExtraSwe.gf
new file mode 100644
index 000000000..ca533be6b
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/ExtraSwe.gf
@@ -0,0 +1,3 @@
+concrete ExtraSwe of ExtraSweAbs = ExtraScandSwe ** {
+
+}
diff --git a/deprecated/old-lib/resource/swedish/ExtraSweAbs.gf b/deprecated/old-lib/resource/swedish/ExtraSweAbs.gf
new file mode 100644
index 000000000..9371b3e11
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/ExtraSweAbs.gf
@@ -0,0 +1,7 @@
+-- Structures special for Swedish. These are not implemented in other
+-- Scandinavian languages.
+
+abstract ExtraSweAbs = ExtraScandAbs ** {
+
+
+} \ No newline at end of file
diff --git a/deprecated/old-lib/resource/swedish/GrammarSwe.gf b/deprecated/old-lib/resource/swedish/GrammarSwe.gf
new file mode 100644
index 000000000..109669dfb
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/GrammarSwe.gf
@@ -0,0 +1,21 @@
+--# -path=.:../scandinavian:../abstract:../common:prelude
+
+concrete GrammarSwe of Grammar =
+ NounSwe,
+ VerbSwe,
+ AdjectiveSwe,
+ AdverbSwe,
+ NumeralSwe,
+ SentenceSwe,
+ QuestionSwe,
+ RelativeSwe,
+ ConjunctionSwe,
+ PhraseSwe,
+ TextX,
+ IdiomSwe,
+ StructuralSwe
+ ** {
+
+flags startcat = Phr ; unlexer = text ; lexer = text ;
+
+} ;
diff --git a/deprecated/old-lib/resource/swedish/IdiomSwe.gf b/deprecated/old-lib/resource/swedish/IdiomSwe.gf
new file mode 100644
index 000000000..65ebf9b30
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/IdiomSwe.gf
@@ -0,0 +1,44 @@
+concrete IdiomSwe of Idiom = CatSwe **
+ open MorphoSwe, ParadigmsSwe, IrregSwe, Prelude in {
+
+ flags optimize=all_subs ;
+
+ oper
+ utr = ParadigmsSwe.utrum ;
+ neutr = ParadigmsSwe.neutrum ;
+
+ lin
+ ImpersCl vp = mkClause "det" (agrP3 neutr Sg) vp ;
+ GenericCl vp = mkClause "man" (agrP3 utr Sg) vp ;
+
+ CleftNP np rs = mkClause "det" (agrP3 neutr Sg)
+ (insertObj (\\_ => np.s ! rs.c ++ rs.s ! np.a) (predV verbBe)) ;
+
+ CleftAdv ad s = mkClause "det" (agrP3 neutr Sg)
+ (insertObj (\\_ => ad.s ++ s.s ! Sub) (predV verbBe)) ;
+
+ ExistNP np =
+ mkClause "det" (agrP3 neutr Sg) (insertObj
+ (\\_ => np.s ! accusative) (predV (depV finna_V))) ;
+
+ ExistIP ip = {
+ s = \\t,a,p =>
+ let
+ cls =
+ (mkClause "det" (agrP3 neutr Sg) (predV (depV finna_V))).s ! t ! a ! p ;
+ who = ip.s ! accusative
+ in table {
+ QDir => who ++ cls ! Inv ;
+ QIndir => who ++ cls ! Sub
+ }
+ } ;
+
+
+ ProgrVP vp =
+ insertObj (\\a => "att" ++ infVP vp a) (predV (partV hålla_V "på")) ;
+
+ ImpPl1 vp = {s = ["låt oss"] ++ infVP vp {gn = Plg ; p = P1}} ;
+
+
+}
+
diff --git a/deprecated/old-lib/resource/swedish/IrregSwe.gf b/deprecated/old-lib/resource/swedish/IrregSwe.gf
new file mode 100644
index 000000000..a31fd7241
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/IrregSwe.gf
@@ -0,0 +1,185 @@
+--# -path=.:../scandinavian:../common:../abstract:../../prelude
+
+concrete IrregSwe of IrregSweAbs = CatSwe ** open ParadigmsSwe in {
+
+ flags optimize=values ;
+
+ lin
+ anfalla_V = irregV "anfalla" "anföll" "anfallit" ;
+ angiva_V = irregV "angiva" "angav" "angivit" ;
+ angripa_V = irregV "angripa" "angrep" "angripit" ;
+ anhålla_V = irregV "anhålla" "anhäll" "anhållit" ;
+ antaga_V = irregV "antaga" "antog" "antagit" ;
+ äta_V = irregV "äta" "åt" "ätit" ;
+ återfinna_V = irregV "återfinna" "återfann" "återfunnit" ;
+ avbryta_V = irregV "avbryta" "avbröt" "avbrutit" ;
+ avfalla_V = irregV "avfalla" "avföll" "avfallit" ;
+ avhugga_V = irregV "avhugga" "avhögg" "avhuggit" ;
+ avlida_V = irregV "avlida" "avled" "avlidit" ;
+ avnjuta_V = irregV "avnjuta" "avnjöt" "avnjutit" ;
+ avsitta_V = irregV "avsitta" "avsatt" "avsuttit" ;
+ avskriva_V = irregV "avskriva" "avskrev" "avskrivit" ;
+ avstiga_V = irregV "avstiga" "avsteg" "avstigit" ;
+ bära_V = irregV "bära" "bar" "burit" ;
+ bedraga_V = irregV "bedraga" "bedrog" "bedragit" ;
+ bedriva_V = irregV "bedriva" "bedrev" "bedrivit" ;
+ befinna_V = irregV "befinna" "befann" "befunnit" ;
+ begrava_V = irregV "begrava" "begrov" "begravit" ;
+ behålla_V = irregV "behålla" "behöll" "behållit" ;
+ beljuga_V = irregV "beljuga" "beljög" "beljugit" ;
+ berida_V = irregV "berida" "bered" "beridit" ;
+ besitta_V = irregV "besitta" "besatt" "besuttit" ;
+ beskriva_V = irregV "beskriva" "beskrev" "beskrivit" ;
+ besluta_V = irregV "besluta" "beslöt" "beslutit" ;
+ bestiga_V = irregV "bestiga" "besteg" "bestigit" ;
+ bestrida_V = irregV "bestrida" "bestred" "bestridit" ;
+ bidraga_V = irregV "bidraga" "bidrog" "bidragit" ;
+ bifalla_V = irregV "bifalla" "biföll" "bifallit" ;
+ binda_V = irregV "binda" "band" "bundit" ;
+ bita_V = irregV "bita" "bet" "bitit" ;
+ bjuda_V = irregV "bjuda" "bjöd" "bjudit" ;
+ bliva_V = irregV "bli" "blev" "blivit" ;
+ borttaga_V = irregV "borttaga" "borttog" "borttagit" ;
+ brinna_V = irregV "brinna" "brann" "brunnit" ;
+ brista_V = irregV "brista" "brast" "brustit" ;
+ bryta_V = irregV "bryta" "bröt" "brutit" ;
+ dö_V = irregV "dö" "dog" "dött" ;
+ draga_V = mkV (variants { "dra"; "draga"}) (variants { "drar" ;
+ "drager"}) (variants { "dra" ; "drag" }) "drog" "dragit" "dragen" ;
+ dricka_V = irregV "dricka" "drack" "druckit" ;
+ driva_V = irregV "driva" "drev" "drivit" ;
+ drypa_V = irregV "drypa" "dröp" "drupit" ;
+ duga_V = irregV "duga" "dög" "dugit" ;
+ dyka_V = irregV "dyka" "dök" "dukit" ;
+ erbjuda_V = irregV "erbjuda" "erbjöd" "erbjudit" ;
+ erfara_V = irregV "erfara" "erfor" "erfarit" ;
+ erhålla_V = irregV "erhålla" "erhöll" "erhållit" ;
+ falla_V = irregV "falla" "föll" "fallit" ;
+ fånga_V = irregV "fånga" "fäng" "fångit" ;
+ fara_V = irregV "fara" "for" "farit" ;
+ finna_V = irregV "finna" "fann" "funnit" ;
+ flyga_V = irregV "flyga" "flög" "flugit" ;
+ flyta_V = irregV "flyta" "flöt" "flutit" ;
+ förbehålla_V = irregV "förbehålla" "förbehöll" "förbehållit" ;
+ förbinda_V = irregV "förbinda" "förband" "förbundit" ;
+ förbjuda_V = irregV "förbjuda" "förbjöd" "förbjudit" ;
+ fördriva_V = irregV "fördriva" "fördrev" "fördrivit" ;
+ föreskriva_V = irregV "föreskriva" "föreskrev" "föreskrivit" ;
+ företaga_V = irregV "företaga" "företog" "företagit" ;
+ förfrysa_V = irregV "förfrysa" "förfrös" "förfrusit" ;
+ förlåta_V = irregV "förlåta" "förlät" "förlåtit" ;
+ förnimma_V = irregV "förnimma" "förnamm" "förnummit" ;
+ försitta_V = irregV "försitta" "försatt" "försuttit" ;
+ försvinna_V = irregV "försvinna" "försvann" "försvunnit" ;
+ förtiga_V = irregV "förtiga" "förteg" "förtigit" ;
+ frysa_V = irregV "frysa" "frös" "frusit" ;
+ gå_V = irregV "gå" "gick" "gått" ;
+ göra_V = mkV "göra" "gör" "gör" "gjorde" "gjort" "gjord" ;
+ genomdriva_V = irregV "genomdriva" "genomdrev" "genomdrivit" ;
+ gilla_V = irregV "gilla" "gall" "gillit" ;
+ giva_V = irregV "ge" "gav" "givit" ;
+ gjuta_V = irregV "gjuta" "gjöt" "gjutit" ;
+ glida_V = irregV "glida" "gled" "glidit" ;
+ gnida_V = irregV "gnida" "gned" "gnidit" ;
+ gråta_V = irregV "gråta" "grät" "gråtit" ;
+ gripa_V = irregV "gripa" "grep" "gripit" ;
+ hålla_V = irregV "hålla" "höll" "hållit" ;
+ hinna_V = irregV "hinna" "hann" "hunnit" ;
+ hugga_V = irregV "hugga" "högg" "huggit" ;
+ iakttaga_V = irregV "iakttaga" "iakttog" "iakttagit" ;
+ inbegripa_V = irregV "inbegripa" "inbegrep" "inbegripit" ;
+ inbjuda_V = irregV "inbjuda" "inbjöd" "inbjudit" ;
+ indraga_V = irregV "indraga" "indrog" "indragit" ;
+ innesluta_V = irregV "innesluta" "inneslöt" "inneslutit" ;
+ inskriva_V = irregV "inskriva" "inskrev" "inskrivit" ;
+ intaga_V = irregV "intaga" "intog" "intagit" ;
+ känna_V = irregV "känna" "kände" "känt" ;
+ klämma_V = regV "klämmer" ;
+ kliva_V = irregV "kliva" "klev" "klivit" ;
+ klyva_V = irregV "klyva" "klöv" "kluvit" ;
+ knipa_V = irregV "knipa" "knep" "knipit" ;
+ knyta_V = irregV "knyta" "knöt" "knutit" ;
+ komma_V = irregV "komma" "kom" "kommit" ;
+ krypa_V = irregV "krypa" "kröp" "krupit" ;
+ kunna_V = mkV "kunna" "kan" "kan" "kunde" "kunnat" "känd" ;
+ kvida_V = irregV "kvida" "kved" "kvidit" ;
+ låta_V = irregV "låta" "lät" "låtit" ;
+ leva_V = irregV "leva" "levde" "levt" ;
+ ligga_V = irregV "ligga" "låg" "legat" ;
+ ljuda_V = irregV "ljuda" "ljöd" "ljudit" ;
+ ljuga_V = irregV "ljuga" "ljög" "ljugit" ;
+ ljuta_V = irregV "ljuta" "ljöt" "ljutit" ;
+ lägga_V = irregV "lägga" "lade" "lagt" ;
+ mottaga_V = irregV "mottaga" "mottog" "mottagit" ;
+ nerstiga_V = irregV "nerstiga" "nersteg" "nerstigit" ;
+ niga_V = irregV "niga" "neg" "nigit" ;
+ njuta_V = irregV "njuta" "njöt" "njutit" ;
+ omgiva_V = irregV "omgiva" "omgav" "omgivit" ;
+ överfalla_V = irregV "överfalla" "överföll" "överfallit" ;
+ övergiva_V = irregV "övergiva" "övergav" "övergivit" ;
+ pipa_V = irregV "pipa" "pep" "pipit" ;
+ rida_V = irregV "rida" "red" "ridit" ;
+ rinna_V = irregV "rinna" "rann" "runnit" ;
+ riva_V = irregV "riva" "rev" "rivit" ;
+ ryta_V = irregV "ryta" "röt" "rutit" ;
+ säga_V = irregV "säga" "sade" "sagt" ;
+ se_V = irregV "se" "såg" "sett" ;
+ sitta_V = irregV "sitta" "satt" "suttit" ;
+ sjuda_V = irregV "sjuda" "sjöd" "sjudit" ;
+ sjunga_V = irregV "sjunga" "sjöng" "sjungit" ;
+ sjunka_V = irregV "sjunka" "sjönk" "sjunkit" ;
+ skära_V = mkV "skära" "skär" "skär" "skar" "skurit" "skuren" ;
+ skina_V = irregV "skina" "sken" "skinit" ;
+ skita_V = irregV "skita" "sket" "skitit" ;
+ skjuta_V = irregV "skjuta" "skjöt" "skjutit" ;
+ skrida_V = irregV "skrida" "skred" "skridit" ;
+ skrika_V = irregV "skrika" "skrek" "skrikit" ;
+ skriva_V = irregV "skriva" "skrev" "skrivit" ;
+ skryta_V = irregV "skryta" "skröt" "skrutit" ;
+ slå_V = irregV "slå" "slog" "slagit" ;
+ slinka_V = irregV "slinka" "slank" "slunkit" ;
+ slippa_V = irregV "slippa" "slapp" "sluppit" ;
+ slita_V = irregV "slita" "slet" "slitit" ;
+ sluta_V = irregV "sluta" "slöt" "slutit" ;
+ smörja_V = irregV "smörja" "smorjde" "smort" ;
+ smita_V = irregV "smita" "smet" "smitit" ;
+ snyta_V = irregV "snyta" "snöt" "snutit" ;
+ sova_V = irregV "sova" "sov" "sovit" ;
+ spinna_V = irregV "spinna" "spann" "spunnit" ;
+ spricka_V = irregV "spricka" "sprack" "spruckit" ;
+ sprida_V = irregV "sprida" "spred" "spridit" ;
+ springa_V = irregV "springa" "sprang" "sprungit" ;
+ stå_V = irregV "stå" "stod" "stått" ;
+ sticka_V = irregV "sticka" "stack" "stuckit" ;
+ stiga_V = irregV "stiga" "steg" "stigit" ;
+ stinka_V = irregV "stinka" "stank" "stunkit" ;
+ strida_V = irregV "strida" "stred" "stridit" ;
+ strypa_V = irregV "strypa" "ströp" "strupit" ;
+ suga_V = irregV "suga" "sög" "sugit" ;
+ supa_V = irregV "supa" "söp" "supit" ;
+ svälla_V = irregV "svälla" "svällde" "svällt" ;
+ svida_V = irregV "svida" "sved" "svidit" ;
+ svika_V = irregV "svika" "svek" "svikit" ;
+ sy_V = irregV "sy" "sydde" "sytt" ;
+ taga_V = irregV "taga" "tog" "tagit" ;
+ tiga_V = irregV "tiga" "teg" "tigit" ;
+ tillåta_V = irregV "tillåta" "tillät" "tillåtit" ;
+ tillsluta_V = irregV "tillsluta" "tillslöt" "tillslutit" ;
+ tjuta_V = irregV "tjuta" "tjöt" "tjutit" ;
+ tryta_V = irregV "tryta" "tröt" "trutit" ;
+ tvinga_V = irregV "tvinga" "tvang" "tvungit" ;
+ uppfinna_V = irregV "uppfinna" "uppfann" "uppfunnit" ;
+ uppgiva_V = irregV "uppgiva" "uppgav" "uppgivit" ;
+ upplåta_V = irregV "upplåta" "upplät" "upplåtit" ;
+ uppstiga_V = irregV "uppstiga" "uppsteg" "uppstigit" ;
+ upptaga_V = irregV "upptaga" "upptog" "upptagit" ;
+ utbjuda_V = irregV "utbjuda" "utbjöd" "utbjudit" ;
+ utbrista_V = irregV "utbrista" "utbrast" "utbrustit" ;
+ utesluta_V = irregV "utesluta" "uteslöt" "uteslutit" ;
+ utskriva_V = irregV "utskriva" "utskrev" "utskrivit" ;
+ veta_V = mk6V "veta" "vet" "vet" "visste" "vetat" (variants {}) ;
+ vända_V = irregV "vända" "vände" "vänt" ;
+ vina_V = irregV "vina" "ven" "vinit" ;
+ vinna_V = irregV "vinna" "vann" "vunnit" ;
+ vrida_V = irregV "vrida" "vred" "vridit" ;
+} \ No newline at end of file
diff --git a/deprecated/old-lib/resource/swedish/IrregSweAbs.gf b/deprecated/old-lib/resource/swedish/IrregSweAbs.gf
new file mode 100644
index 000000000..b4da1aaa7
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/IrregSweAbs.gf
@@ -0,0 +1,179 @@
+abstract IrregSweAbs = Cat ** {
+ fun
+ anfalla_V : V ;
+ angiva_V : V ;
+ angripa_V : V ;
+ anhålla_V : V ;
+ antaga_V : V ;
+ äta_V : V ;
+ återfinna_V : V ;
+ avbryta_V : V ;
+ avfalla_V : V ;
+ avhugga_V : V ;
+ avlida_V : V ;
+ avnjuta_V : V ;
+ avsitta_V : V ;
+ avskriva_V : V ;
+ avstiga_V : V ;
+ bära_V : V ;
+ bedraga_V : V ;
+ bedriva_V : V ;
+ befinna_V : V ;
+ begrava_V : V ;
+ behålla_V : V ;
+ beljuga_V : V ;
+ berida_V : V ;
+ besitta_V : V ;
+ beskriva_V : V ;
+ besluta_V : V ;
+ bestiga_V : V ;
+ bestrida_V : V ;
+ bidraga_V : V ;
+ bifalla_V : V ;
+ binda_V : V ;
+ bita_V : V ;
+ bjuda_V : V ;
+ bliva_V : V ;
+ borttaga_V : V ;
+ brinna_V : V ;
+ brista_V : V ;
+ bryta_V : V ;
+ dö_V : V ;
+ draga_V : V ;
+ dricka_V : V ;
+ driva_V : V ;
+ drypa_V : V ;
+ duga_V : V ;
+ dyka_V : V ;
+ erbjuda_V : V ;
+ erfara_V : V ;
+ erhålla_V : V ;
+ falla_V : V ;
+ fånga_V : V ;
+ fara_V : V ;
+ finna_V : V ;
+ flyga_V : V ;
+ flyta_V : V ;
+ förbehålla_V : V ;
+ förbinda_V : V ;
+ förbjuda_V : V ;
+ fördriva_V : V ;
+ föreskriva_V : V ;
+ företaga_V : V ;
+ förfrysa_V : V ;
+ förlåta_V : V ;
+ förnimma_V : V ;
+ försitta_V : V ;
+ försvinna_V : V ;
+ förtiga_V : V ;
+ frysa_V : V ;
+ gå_V : V ;
+ göra_V : V ;
+ genomdriva_V : V ;
+ gilla_V : V ;
+ giva_V : V ;
+ gjuta_V : V ;
+ glida_V : V ;
+ gnida_V : V ;
+ gråta_V : V ;
+ gripa_V : V ;
+ hålla_V : V ;
+ hinna_V : V ;
+ hugga_V : V ;
+ iakttaga_V : V ;
+ inbegripa_V : V ;
+ inbjuda_V : V ;
+ indraga_V : V ;
+ innesluta_V : V ;
+ inskriva_V : V ;
+ intaga_V : V ;
+ känna_V : V ;
+ klämma_V : V ;
+ kliva_V : V ;
+ klyva_V : V ;
+ knipa_V : V ;
+ knyta_V : V ;
+ komma_V : V ;
+ krypa_V : V ;
+ kunna_V : V ;
+ kvida_V : V ;
+ låta_V : V ;
+ leva_V : V ;
+ ligga_V : V ;
+ ljuda_V : V ;
+ ljuga_V : V ;
+ ljuta_V : V ;
+ lägga_V : V ;
+ mottaga_V : V ;
+ nerstiga_V : V ;
+ niga_V : V ;
+ njuta_V : V ;
+ omgiva_V : V ;
+ överfalla_V : V ;
+ övergiva_V : V ;
+ pipa_V : V ;
+ rida_V : V ;
+ rinna_V : V ;
+ riva_V : V ;
+ ryta_V : V ;
+ säga_V : V ;
+ se_V : V ;
+ sitta_V : V ;
+ sjuda_V : V ;
+ sjunga_V : V ;
+ sjunka_V : V ;
+ skära_V : V ;
+ skina_V : V ;
+ skita_V : V ;
+ skjuta_V : V ;
+ skrida_V : V ;
+ skrika_V : V ;
+ skriva_V : V ;
+ skryta_V : V ;
+ slå_V : V ;
+ slinka_V : V ;
+ slippa_V : V ;
+ slita_V : V ;
+ sluta_V : V ;
+ smörja_V : V ;
+ smita_V : V ;
+ snyta_V : V ;
+ sova_V : V ;
+ spinna_V : V ;
+ spricka_V : V ;
+ sprida_V : V ;
+ springa_V : V ;
+ stå_V : V ;
+ sticka_V : V ;
+ stiga_V : V ;
+ stinka_V : V ;
+ strida_V : V ;
+ strypa_V : V ;
+ suga_V : V ;
+ supa_V : V ;
+ svälla_V : V ;
+ svida_V : V ;
+ svika_V : V ;
+ sy_V : V ;
+ taga_V : V ;
+ tiga_V : V ;
+ tillåta_V : V ;
+ tillsluta_V : V ;
+ tjuta_V : V ;
+ tryta_V : V ;
+ tvinga_V : V ;
+ uppfinna_V : V ;
+ uppgiva_V : V ;
+ upplåta_V : V ;
+ uppstiga_V : V ;
+ upptaga_V : V ;
+ utbjuda_V : V ;
+ utbrista_V : V ;
+ utesluta_V : V ;
+ utskriva_V : V ;
+ vända_V : V ;
+ veta_V : V ;
+ vina_V : V ;
+ vinna_V : V ;
+ vrida_V : V ;
+}
diff --git a/deprecated/old-lib/resource/swedish/LangSwe.gf b/deprecated/old-lib/resource/swedish/LangSwe.gf
new file mode 100644
index 000000000..a321acd1f
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/LangSwe.gf
@@ -0,0 +1,10 @@
+--# -path=.:../scandinavian:../abstract:../common:prelude
+
+concrete LangSwe of Lang =
+ GrammarSwe,
+ LexiconSwe
+ ** {
+
+flags startcat = Phr ; unlexer = text ; lexer = text ;
+
+} ;
diff --git a/deprecated/old-lib/resource/swedish/LexiconSwe.gf b/deprecated/old-lib/resource/swedish/LexiconSwe.gf
new file mode 100644
index 000000000..3bca3ec0f
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/LexiconSwe.gf
@@ -0,0 +1,366 @@
+--# -path=.:../scandinavian:../common:../abstract:../../prelude
+
+concrete LexiconSwe of Lexicon = CatSwe **
+ open Prelude, ParadigmsSwe, IrregSwe in {
+
+flags
+ optimize=values ;
+
+lin
+ airplane_N = regGenN "flygplan" neutrum ;
+ answer_V2S = mkV2S (regV "svarar") (mkPrep "till") ;
+ apartment_N = mk2N "lägenhet" "lägenheter" ;
+ apple_N = regGenN "äpple" neutrum ;
+ art_N = mk2N "konst" "konster" ;
+ ask_V2Q = mkV2Q (regV "frågar") noPrep ;
+ baby_N = regGenN "bebis" utrum ;
+ bad_A = irregA "dålig" "sämre" "sämst";
+ bank_N = mk2N "bank" "banker" ;
+ beautiful_A = mk3A "vacker" "vackert" "vackra" ;
+ become_VA = mkVA (mkV "bli" "blir""bli" "blev" "blivit" "bliven") ;
+ beer_N = regGenN "öl" neutrum ;
+ beg_V2V = mkV2V (mkV "be" "ber""be" "bad" "bett" "bedd") noPrep (mkPrep "att") ;
+ big_A = irregA "stor" "större" "störst";
+ bike_N = mk2N "cykel" "cyklar" ;
+ bird_N = mk2N "fågel" "fåglar" ;
+ black_A = mk2A "svart" "svart" ;
+ blue_A = mk2A "blå" "blått";
+ boat_N = regGenN "båt" utrum ;
+ book_N = mkN "bok" "boken" "böcker" "böckerna" ;
+ boot_N = mk2N "stövel" "stövlar" ;
+ boss_N = mk2N "chef" "chefer" ;
+ boy_N = regGenN "pojke" utrum ;
+ bread_N = regGenN "bröd" neutrum ;
+ break_V2 = dirV2 (partV (mkV "slå" "slår" "slå" "slog" "slagit" "slagen") "sönder") ;
+ broad_A = mk2A "bred" "brett" ;
+ brother_N2 = mkN2 ((mkN "bror" "brodern" "bröder" "bröderna")) (mkPrep "till") ;
+ brown_A = regA "brun" ;
+ butter_N = regGenN "smör" neutrum ;
+ buy_V2 = dirV2 (mk2V "köpa" "köpte") ;
+ camera_N = regGenN "kamera" utrum ;
+ cap_N = regGenN "mössa" utrum ;
+ car_N = regGenN "bil" utrum ;
+ carpet_N = regGenN "matta" utrum ;
+ cat_N = mk2N "katt" "katter" ;
+ ceiling_N = regGenN "tak" neutrum ;
+ chair_N = regGenN "stol" utrum ;
+ cheese_N = regGenN "ost" utrum ;
+ child_N = regGenN "barn" neutrum ;
+ church_N = regGenN "kyrka" utrum ;
+ city_N = mkN "stad" "staden" "städer" "städerna" ;
+ clean_A = regA "ren" ;
+ clever_A = regA "klok" ;
+ close_V2 = dirV2 (mk2V "stänga" "stängde") ;
+ coat_N = regGenN "rock" utrum ;
+ cold_A = regA "kall" ;
+ come_V = komma_V ;
+ computer_N = mk2N "dator" "datorer" ;
+ country_N = mkN "land" "landet" "länder" "länderna" ;
+ cousin_N = mk2N "kusin" "kusiner" ;
+ cow_N = mk2N "ko" "kor" ;
+ die_V = (mkV "dö" "dör" "dö" "dog" "dött" "dödd") ; ----
+ distance_N3 = mkN3 (mk2N "avstånd" "avstånd") (mkPrep "från") (mkPrep "till") ;
+ dirty_A = regA "smutsig" ;
+ doctor_N = mk2N "läkare" "läkare" ;
+ dog_N = regGenN "hund" utrum ;
+ door_N = regGenN "dörr" utrum ;
+ drink_V2 = dirV2 (irregV "dricka" "drack" "druckit") ;
+ easy_A2V = mkA2V (mk2A "lätt" "lätt") (mkPrep "för") ;
+ eat_V2 = dirV2 (irregV "äta" "åt" "ätit") ;
+ empty_A = mkA "tom" "tomt" "tomma" "tomma" "tommare" "tommast" "tommaste" ;
+ enemy_N = regGenN "fiende" neutrum ;
+ factory_N = mk2N "fabrik" "fabriker" ;
+ father_N2 = mkN2 ((mkN "far" "fadern" "fäder" "fäderna")) (mkPrep "till") ;
+ fear_VS = mkVS (regV "fruktar") ;
+ find_V2 = dirV2 (irregV "finna" "fann" "funnit") ;
+ fish_N = mk2N "fisk" "fiskar" ;
+ floor_N = regGenN "golv" neutrum ;
+ forget_V2 = dirV2 (mkV "glömma" "glömmer" "glöm" "glömde" "glömt" "glömd") ;
+ fridge_N = regGenN "kylskåp" neutrum ;
+ friend_N = mkN "vän" "vännen" "vänner" "vännerna" ;
+ fruit_N = mk2N "frukt" "frukter" ;
+ fun_AV = mkAV (regA "rolig") ;
+ garden_N = regGenN "trädgård" utrum ;
+ girl_N = regGenN "flicka" utrum ;
+ glove_N = regGenN "handske" utrum ;
+ gold_N = regGenN "guld" neutrum ;
+ good_A = mkA "god" "gott" "goda" "goda" "bättre" "bäst" "bästa" ;
+ go_V = (mkV "gå" "går" "gå" "gick" "gått" "gången") ;
+ green_A = regA "grön" ;
+ harbour_N = regGenN "hamn" utrum;
+ hate_V2 = dirV2 (regV "hatar") ;
+ hat_N = regGenN "hatt" utrum ;
+ have_V2 = dirV2 (mkV "ha" "har" "ha" "hade" "haft" "haft") ; ---- pp
+ hear_V2 = dirV2 (mkV "höra" "hör" "hör" "hörde" "hört" "hörd") ;
+ hill_N = regGenN "kulle" utrum ;
+-- hope_VS = mkVS ((regV "önskar")) ;
+ hope_VS = mkVS (depV (regV "hoppar")) ;
+ horse_N = regGenN "häst" utrum ;
+ hot_A = regA "het" ;
+ house_N = regGenN "hus" neutrum ;
+ important_A = regA "viktig" ;
+ industry_N = mk2N "industri" "industrier" ; ---- "ien" ??
+ iron_N = regGenN "järn" neutrum ;
+ king_N = (regGenN "kung" utrum) ;
+ know_V2 = dirV2 (mkV "veta" "vet" "vet" "visste" "vetat" "visst") ;
+ lake_N = mkN "sjö" "sjön" "sjöar" "sjöarna" ;
+ lamp_N = regGenN "lampa" utrum;
+ learn_V2 = dirV2 (reflV (mkV "lära" "lär" "lär" "lärde" "lärt" "lärd")) ;
+ leather_N = mkN "läder" "lädret" "läder" "lädren" ;
+ leave_V2 = dirV2 (regV "lämnar") ;
+ like_V2 = mkV2 (mk2V "tycka" "tyckte") (mkPrep "om") ;
+ listen_V2 = mkV2 (regV "lyssnar") (mkPrep "på") ;
+ live_V = (irregV "leva" "levde" "levt") ; ---- ?
+ long_A = irregA "lång" "längre" "längst" ;
+ lose_V2 = dirV2 (regV "förlora") ;
+ love_N = regGenN "kärlek" utrum ;
+ love_V2 = dirV2 (regV "älska") ;
+ man_N = (mkN "man" "mannen" "män" "männen") ;
+ married_A2 = mkA2 (mk2A "gift" "gift") (mkPrep "med") ;
+ meat_N = regGenN "kött" neutrum ;
+ milk_N = regGenN "mjölk" utrum ; ---- -ar?
+ moon_N = regGenN "måne" utrum ;
+ mother_N2 = mkN2 (mkN "mor" "modern" "mödrar" "mödrarna") (mkPrep "till") ;
+ mountain_N = regGenN "berg" neutrum ;
+ music_N = mk2N "musik" "musiker" ; ---- er ?
+ narrow_A = regA "smal" ;
+ new_A = mkA "ny" "nytt" "nya" "nya" "nyare" "nyast" "nyaste" ;
+ newspaper_N = regGenN "tidning" utrum ;
+ oil_N = regGenN "olja" utrum ;
+ old_A = mkA "gammal" "gammalt" "gamla" "gamla" "äldre" "äldst" "äldsta" ;
+ open_V2 = dirV2 (regV "öppna") ;
+ paint_V2A = mkV2A (regV "måla") noPrep ;
+ paper_N = mkN "papper" "pappret" "papper" "pappren" ;
+ paris_PN = regGenPN "Paris" neutrum ;
+ peace_N = regGenN "fred" utrum ; ---- ar?
+ pen_N = regGenN "penna" utrum ;
+ planet_N = mk2N "planet" "planeter" ;
+ plastic_N = mk2N "plast" "plaster" ;
+ play_V2 = dirV2 (regV "spela") ;
+ policeman_N = mk2N "polis" "poliser" ;
+ priest_N = mk2N "präst" "präster" ;
+ probable_AS = mkAS (regA "sannolik") ;
+ queen_N = regGenN "drottning" utrum ;
+ radio_N = mkN "radio" "radion" "radioapparater" "radioapparaterna" ; -- SAOL
+ rain_V0 = mkV0 (regV "regna") ;
+ read_V2 = dirV2 (mk2V "läsa" "läste") ;
+ red_A = mk2A "röd" "rött" ;
+ religion_N = mk2N "religion" "religioner" ;
+ restaurant_N = mk2N "restaurang" "restauranger" ;
+ river_N = mkN "å" "ån" "åar" "åarna" ;
+ rock_N = mkN "sten" "stenen" "stenar" "stenarna" ;
+ roof_N = regGenN "tak" neutrum ;
+ rubber_N = mkN "gummi" "gummit" "gummin" "gummina" ;
+ run_V = (irregV "springa" "sprang" "sprungit") ;
+ say_VS = mkVS (mkV "säga" "säger" "säg" "sade" "sagt" "sagd") ;
+ school_N = regGenN "skola" utrum;
+ science_N = mk2N "vetenskap" "vetenskaper" ;
+ sea_N = mkN "hav" "hav" ;
+ seek_V2 = dirV2 (mk2V "söka" "sökte") ;
+ see_V2 = dirV2 (mkV "se" "ser" "se" "såg" "sett" "sedd") ;
+ sell_V3 = dirV3 (irregV "sälja" "sålde" "sålt") (mkPrep "till") ;
+ send_V3 = dirV3 (regV "skicka") (mkPrep "till") ;
+ sheep_N = mk2N "får" "får" ;
+ ship_N = regGenN "skepp" neutrum ;
+ shirt_N = regGenN "skjorta" utrum ;
+ shoe_N = mk2N "sko" "skor" ;
+ shop_N = mk2N "affär" "affären" ;
+ short_A = regA "kort" ;
+ silver_N = mkN "silver" "silvret" "silver" "silvren" ;
+ sister_N = mk2N "syster" "systrar" ;
+ sleep_V = (irregV "sova" "sov" "sovit") ;
+ small_A = mkA "liten" "litet" "lilla" "små" "mindre" "minst" "minsta" ;
+ snake_N = regGenN "orm" utrum ;
+ sock_N = regGenN "strumpa" utrum ;
+ speak_V2 = dirV2 (regV "tala") ;
+ star_N = regGenN "stjärna" utrum ;
+ steel_N = regGenN "stål" utrum ;
+ stone_N = mkN "sten" "stenen" "stenar" "stenarna" ;
+ stove_N = regGenN "spis" utrum ;
+ student_N = mk2N "student" "studenter" ;
+ stupid_A = mk3A "dum" "dumt" "dumma" ;
+ sun_N = regGenN "sol" utrum ;
+ switch8off_V2 = dirV2 (partV (irregV "stänga" "stängde" "stängt") "av") ;
+ switch8on_V2 = dirV2 (partV (irregV "slå" "slog" "slagit") "på") ;
+ table_N = regGenN "bord" neutrum ;
+ talk_V3 = mkV3 (regV "prata") (mkPrep "till") (mkPrep "om") ;
+ teacher_N = mk2N "lärare" "lärare" ;
+ teach_V2 = dirV2 (regV "undervisa") ;
+ television_N = mk2N "television" "televisioner" ;
+ thick_A = regA "tjock" ;
+ thin_A = mk2A "tunn" "tunt" ;
+ train_N = regGenN "tåg" neutrum ;
+ travel_V = mk2V "resa" "reste" ;
+ tree_N = regGenN "träd" neutrum ;
+ ---- trousers_N = regGenN "trousers" ; ---- pl t !
+ ugly_A = regA "ful" ;
+ understand_V2 = dirV2 (mkV "förstå" "förstår" "förstå" "förstod" "förstått" "förstådd") ;
+ university_N = regGenN "universitet" neutrum ;
+ village_N = mkN "by" "byn" "byar" "byarna" ;
+ wait_V2 = mkV2 (regV "vänta") (mkPrep "på") ;
+ walk_V = (mkV "gå" "går" "gå" "gick" "gått" "gången") ;
+ warm_A = regA "varm" ;
+ war_N = regGenN "krig" neutrum ;
+ watch_V2 = mkV2 (regV "titta") (mkPrep "på") ;
+ water_N = mkN "vatten" "vattnet" "vatten" "vattnen" ;
+ white_A = regA "vit" ;
+ window_N = mkN "fönster" "fönstret" "fönster" "fönstren" ;
+ wine_N = mkN "vin" "vinet" "viner" "vinerna" ; ----
+ win_V2 = dirV2 (irregV "vinna" "vann" "vunnit") ;
+ woman_N = regGenN "kvinna" utrum ;
+ wonder_VQ = mkVQ (regV "undra") ;
+ wood_N = mkN "trä" "träet" "träen" "träena" ; ---- ?
+ write_V2 = dirV2 (irregV "skriva" "skrev" "skrivit") ;
+ yellow_A = regA "gul" ;
+ young_A = irregA "ung" "yngre" "yngst" ;
+
+ do_V2 = dirV2 göra_V ;
+ now_Adv = mkAdv "nu" ;
+ already_Adv = mkAdv "redan" ;
+ song_N = mk2N "sång" "sånger" ;
+ add_V3 = mkV3 (partV (irregV "lägga" "lade" "lagt") "till") noPrep (mkPrep "till") ;
+ number_N = mkN "nummer" "numret" "numren" "numren" ;
+ put_V2 = mkV2 (mkV "sätta" "sätter" "sätt" "satte" "satt" "satt") noPrep ;
+ stop_V = regV "stanna" ;
+ jump_V = regV "hoppa" ;
+
+ left_Ord = {s = "vänstra" ; isDet = True} ;
+ right_Ord = {s = "högra" ; isDet = True} ;
+ far_Adv = mkAdv "långt" ;
+ correct_A = regA "riktig" ;
+ dry_A = regA "torr" ;
+ dull_A = mk2A "slö" "slött";
+ full_A = regA "full" ;
+ heavy_A = irregA "tung" "tyngre" "tyngst" ;
+ near_A = mkA "nära" "nära" "nära" "nära" "närmare" "närmast" "närmaste" ;
+ rotten_A = mk3A "rutten" "ruttet" "ruttna" ;
+ round_A = regA "rund" ;
+ sharp_A = regA "vass" ;
+ smooth_A = regA "slät" ;
+ straight_A = regA "rak" ;
+ wet_A = regA "våt" ;
+ wide_A = mk2A "bred" "brett" ;
+ animal_N = mk2N "djur" "djur" ;
+ ashes_N = mk2N "aska" "askor" ;
+ back_N = mk2N "rygg" "ryggar" ;
+ bark_N = mk2N "bark" "barkar" ;
+ belly_N = mk2N "mage" "magar" ;
+ blood_N = mk2N "blod" "blod" ;
+ bone_N = mk2N "ben" "ben" ;
+ breast_N = mk2N "bröst" "bröst" ;
+ cloud_N = mk2N "moln" "moln" ;
+ day_N = mk2N "dag" "dagar" ;
+ dust_N = mk2N "damm" "damm" ;
+ ear_N = mkN "öra" "örat" "öron" "öronen" ;
+ earth_N = mk2N "jord" "jordar" ;
+ egg_N = mk2N "ägg" "ägg" ;
+ eye_N = mkN "öga" "ögat" "ögon" "ögonen" ;
+ fat_N = mk2N "fett" "fett" ;
+ feather_N = mk2N "fjäder" "fjädrar" ;
+ fingernail_N = mkN "nagel" "nageln" "naglar" "naglarna";
+ fire_N = mk2N "eld" "eldar" ;
+ flower_N = mk2N "blomma" "blommor" ;
+ fog_N = mk2N "dimma" "dimmor" ;
+ foot_N = mk2N "fot" "fötter" ;
+ forest_N = mk2N "skog" "skogar" ;
+ grass_N = mk2N "gräs" "gräs" ;
+ guts_N = mk2N "inälva" "inälvor" ;
+ hair_N = mk2N "hår" "hår" ;
+ hand_N = mk2N "hand" "händer" ;
+ head_N = mkN "huvud" "huvudet" "huvuden" "huvudena" ;
+ heart_N = mkN "hjärta" "hjärtat" "hjärtan" "hjärtana" ;
+ horn_N = mk2N "horn" "horn" ;
+ husband_N = (mk2N "make" "makar") ;
+ ice_N = mk2N "is" "isar" ;
+ knee_N = mkN "knä" "knäet" "knän" "knäna" ;
+ leaf_N = mk2N "löv" "löv" ;
+ leg_N = mk2N "ben" "ben" ;
+ liver_N = mkN "lever" "levern" "levrar" "levrarna";
+ louse_N = mkN "lus" "lusen" "löss" "lössen" ;
+ mouth_N = mkN "mun" "munnen" "munnar" "munnarna" ;
+ name_N = mk2N "namn" "namn" ;
+ neck_N = mk2N "nacke" "nackar" ;
+ night_N = mk2N "natt" "nätter" ;
+ nose_N = mk2N "näsa" "näsor" ;
+ person_N = mk2N "person" "personer" ;
+ rain_N = mk2N "regn" "regn" ;
+ road_N = mk2N "väg" "vägar" ;
+ root_N = mk2N "rot" "rötter" ;
+ rope_N = mk2N "rep" "rep" ;
+ salt_N = mkN "salt" "saltet" "salter" "salterna";
+ sand_N = mk2N "sand" "sander" ;
+ seed_N = mkN "frö" "fröet" "frön" "fröna" ;
+ skin_N = mk2N "skinn" "skinn" ;
+ sky_N = mk2N "himmel" "himlar" ;
+ smoke_N = mk2N "rök" "rökar" ;
+ snow_N = mkN "snö" "snön" "snöer" "snöerna" ;
+ stick_N = mk2N "pinne" "pinnar" ;
+ tail_N = mk2N "svans" "svansar" ;
+ tongue_N = mk2N "tunga" "tungor" ;
+ tooth_N = mk2N "tand" "tänder" ;
+ wife_N = mk2N "fru" "fruar" ;
+ wind_N = mk2N "vind" "vindar" ;
+ wing_N = mk2N "vinge" "vingar" ;
+ worm_N = mk2N "mask" "maskar" ;
+ year_N = mk2N "år" "år" ;
+ bite_V2 = dirV2 (bita_V) ;
+ blow_V = mk2V "blåsa" "blåste" ;
+ burn_V = brinna_V ; -- FIXME: bränna?
+ count_V2 = dirV2 (regV "räkna") ;
+ cut_V2 = dirV2 (skära_V) ;
+ dig_V = mk2V "gräva" "grävde" ;
+ fall_V = falla_V ;
+ fear_V2 = dirV2 (regV "frukta") ;
+ float_V = flyta_V ;
+ flow_V = rinna_V ;
+ fly_V = flyga_V ;
+ freeze_V = frysa_V ;
+ give_V3 = dirV3 giva_V (mkPrep "till");
+ hit_V2 = dirV2 (slå_V) ;
+ hold_V2 = dirV2 (hålla_V) ;
+ hunt_V2 = dirV2 (regV "jaga") ;
+ kill_V2 = dirV2 (regV "döda") ;
+ laugh_V = regV "skratta" ;
+ lie_V = ligga_V ;
+ play_V = mk2V "leka" "lekte" ;
+ pull_V2 = dirV2 (draga_V) ;
+ push_V2 = dirV2 (mk2V "trycka" "tryckte") ;
+ rub_V2 = dirV2 (gnida_V) ;
+ scratch_V2 = dirV2 (regV "klia") ;
+ sew_V = sy_V ;
+ sing_V = sjunga_V ;
+ sit_V = sitta_V ;
+ smell_V = regV "lukta" ;
+ spit_V = regV "spotta" ;
+ split_V2 = dirV2 (klyva_V) ;
+ squeeze_V2 = dirV2 (klämma_V) ;
+ stab_V2 = dirV2 (sticka_V) ;
+ stand_V = stå_V ;
+ suck_V2 = dirV2 (suga_V) ;
+ swell_V = svälla_V ;
+ swim_V = regV "simma" ;
+ think_V = mk2V "tänka" "tänkte" ;
+ throw_V2 = dirV2 (regV "kasta") ;
+ tie_V2 = dirV2 (knyta_V) ;
+ turn_V = vända_V ;
+ vomit_V = mk2V "spy" "spydde" ;
+ wash_V2 = dirV2 (regV "tvätta") ;
+ wipe_V2 = dirV2 (regV "torka") ;
+
+ breathe_V = depV (regV "anda") ;
+ fight_V2 =
+ mkV2 (mkV "slåss" "slåss" "slåss" "slogs" "slagits" "slagen") (mkPrep "med") ;
+
+ grammar_N = mk1N "grammatikerna" ;
+ language_N = mk2N "språk" "språk" ;
+ rule_N = mkN "regel" "regeln" "regler" "reglerna" ;
+
+ john_PN = regPN "Johan" ;
+ question_N = regN "fråga" ;
+ ready_A = regA "färdig" ;
+ reason_N = regN "anledning" ;
+ today_Adv = mkAdv "idag" ;
+ uncertain_A = mk3A "osäker" "osäkert" "osäkra" ;
+
+
+} ;
diff --git a/deprecated/old-lib/resource/swedish/MorphoSwe.gf b/deprecated/old-lib/resource/swedish/MorphoSwe.gf
new file mode 100644
index 000000000..48180b781
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/MorphoSwe.gf
@@ -0,0 +1,73 @@
+--# -path=.:../scandinavian:../common:../../prelude
+
+--1 A Simple Swedish Resource Morphology
+--
+-- Aarne Ranta 2002 -- 2005
+--
+-- This resource morphology contains definitions needed in the resource
+-- syntax. To build a lexicon, it is better to use $ParadigmsSwe$, which
+-- gives a higher-level access to this module.
+
+resource MorphoSwe = CommonScand, ResSwe ** open Prelude, (Predef=Predef) in {
+
+
+-- Verbs
+
+-- Heuristic to infer all participle forms from one.
+
+oper
+ ptPretAll : Str -> Str * Str = \funnen ->
+ case funnen of {
+ ko +"mmen" => <ko +"mmet", ko + "mna"> ;
+ vun +"nen" => <vun +"net", vun + "na"> ;
+ bjud + "en" => <bjud + "et", bjud + "na"> ;
+ se + "dd" => <se + "tt", se +"dda"> ;
+ tal + "ad" => <tal + "at", tal +"ade"> ;
+ kaen + "d" => <kaen + "t", kaen + "da"> ;
+ lekt => <lekt, lekt + "a">
+ } ;
+
+ ptPretForms : Str -> AFormPos => Case => Str = \funnen -> \\a,c =>
+ let
+ funfun = ptPretAll funnen
+ in
+ mkCase c (case a of {
+ (Strong (SgUtr)) => funnen ;
+ (Strong (SgNeutr)) => funfun.p1 ;
+ _ => funfun.p2
+ }
+ ) ;
+
+-- For $Numeral$.
+
+param DForm = ental | ton | tiotal ;
+
+oper
+ LinDigit = {s : DForm => CardOrd => Str} ;
+
+ cardOrd : Str -> Str -> CardOrd => Str = \tre,tredje ->
+ table {
+ NCard _ => tre ;
+ NOrd a => tredje ---- a
+ } ;
+
+ cardReg : Str -> CardOrd => Str = \tio ->
+ cardOrd tio (tio + "nde") ;
+
+ mkTal : (x1,_,_,_,x5 : Str) -> LinDigit =
+ \två, tolv, tjugo, andra, tolfte ->
+ {s = table {
+ ental => cardOrd två andra ;
+ ton => cardOrd tolv tolfte ;
+ tiotal => cardReg tjugo
+ }
+ } ;
+
+ numPl : (CardOrd => Str) -> {s : CardOrd => Str ; n : Number} = \n ->
+ {s = n ; n = Pl} ;
+
+ invNum : CardOrd = NCard Neutr ;
+
+
+} ;
+
diff --git a/deprecated/old-lib/resource/swedish/NounSwe.gf b/deprecated/old-lib/resource/swedish/NounSwe.gf
new file mode 100644
index 000000000..d866558a4
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/NounSwe.gf
@@ -0,0 +1,2 @@
+concrete NounSwe of Noun = CatSwe ** NounScand with
+ (ResScand = ResSwe) ;
diff --git a/deprecated/old-lib/resource/swedish/NumeralSwe.gf b/deprecated/old-lib/resource/swedish/NumeralSwe.gf
new file mode 100644
index 000000000..bf4186be2
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/NumeralSwe.gf
@@ -0,0 +1,83 @@
+concrete NumeralSwe of Numeral = CatSwe ** open ResSwe, MorphoSwe in {
+
+lincat
+ Digit = {s : DForm => CardOrd => Str} ;
+ Sub10 = {s : DForm => CardOrd => Str ; n : Number} ;
+ Sub100, Sub1000, Sub1000000 =
+ {s : CardOrd => Str ; n : Number} ;
+
+lin
+ num x = x ;
+
+ n2 = mkTal "två" "tolv" "tjugo" "andra" "tolfte" ;
+ n3 = mkTal "tre" "tretton" "trettio" "tredje" "trettonde" ;
+ n4 = mkTal "fyra" "fjorton" "fyrtio" "fjärde" "fjortonde" ;
+ n5 = mkTal "fem" "femton" "femtio" "femte" "femtonde" ;
+ n6 = mkTal "sex" "sexton" "sextio" "sjätte" "sextonde" ;
+ n7 = mkTal "sju" "sjutton" "sjuttio" "sjunde" "sjuttonde" ;
+ n8 = mkTal "åtta" "arton" "åttio" "åttonde" "artonde" ;
+ n9 = mkTal "nio" "nitton" "nittio" "nionde" "nittonde" ;
+
+ pot01 = {
+ s = \\f => table {
+ NCard g => case g of {Neutr => "ett" ; _ => "en"} ;
+ _ => "första"
+ } ;
+ n = Sg
+ } ;
+ pot0 d = {s = \\f,g => d.s ! f ! g ; n = Pl} ;
+ pot110 = numPl (cardReg "tio") ;
+ pot111 = numPl (cardOrd "elva" "elfte") ;
+ pot1to19 d = numPl (d.s ! ton) ;
+ pot0as1 n = {s = n.s ! ental ; n = n.n} ;
+ pot1 d = numPl (d.s ! tiotal) ;
+ pot1plus d e = {s = \\g => d.s ! tiotal ! invNum ++ e.s ! ental ! g ; n = Pl} ;
+ pot1as2 n = n ;
+ pot2 d =
+ numPl (\\g => d.s ! ental ! invNum ++ cardOrd "hundra" "hundrade" ! g) ;
+ pot2plus d e =
+ {s = \\g => d.s ! ental ! invNum ++ "hundra" ++ e.s ! g ; n = Pl} ;
+ pot2as3 n = n ;
+ pot3 n =
+ numPl (\\g => n.s ! invNum ++ cardOrd "tusen" "tusende" ! g) ;
+ pot3plus n m =
+ {s = \\g => n.s ! invNum ++ "tusen" ++ m.s ! g ; n = Pl} ;
+
+ lincat
+ Dig = TDigit ;
+
+ lin
+ IDig d = d ;
+
+ IIDig d i = {
+ s = \\o => d.s ! NCard neutrum ++ i.s ! o ;
+ n = Pl
+ } ;
+
+ D_0 = mkDig "0" ;
+ D_1 = mk3Dig "1" "1:a" Sg ;
+ D_2 = mk2Dig "2" "2:a" ;
+ D_3 = mkDig "3" ;
+ D_4 = mkDig "4" ;
+ D_5 = mkDig "5" ;
+ D_6 = mkDig "6" ;
+ D_7 = mkDig "7" ;
+ D_8 = mkDig "8" ;
+ D_9 = mkDig "9" ;
+
+ oper
+ mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ;
+ mkDig : Str -> TDigit = \c -> mk2Dig c (c + ":e") ;
+
+ mk3Dig : Str -> Str -> Number -> TDigit = \c,o,n -> {
+ s = table {NCard _ => c ; NOrd _ => o} ;
+ n = n
+ } ;
+
+ TDigit = {
+ n : Number ;
+ s : CardOrd => Str
+ } ;
+
+}
+
diff --git a/deprecated/old-lib/resource/swedish/ParadigmsSwe.gf b/deprecated/old-lib/resource/swedish/ParadigmsSwe.gf
new file mode 100644
index 000000000..32a4d4b43
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/ParadigmsSwe.gf
@@ -0,0 +1,654 @@
+--# -path=.:../scandinavian:../common:../abstract:../../prelude
+
+--1 Swedish Lexical Paradigms
+--
+-- Aarne Ranta 2001 - 2006
+--
+-- This is an API for the user of the resource grammar
+-- for adding lexical items. It gives functions for forming
+-- expressions of open categories: nouns, adjectives, verbs.
+--
+-- Closed categories (determiners, pronouns, conjunctions) are
+-- accessed through the resource syntax API, $Structural.gf$.
+--
+-- The main difference with $MorphoSwe.gf$ is that the types
+-- referred to are compiled resource grammar types. We have moreover
+-- had the design principle of always having existing forms, rather
+-- than stems, as string arguments of the paradigms.
+--
+-- The structure of functions for each word class $C$ is the following:
+-- first we give a handful of patterns that aim to cover all
+-- regular cases. Then we give a worst-case function $mkC$, which serves as an
+-- escape to construct the most irregular words of type $C$.
+-- However, this function should only seldom be needed: we have a
+-- separate module [``IrregSwe`` ../../swedish/IrregSwe],
+-- which covers many irregular verbs.
+
+
+resource ParadigmsSwe =
+ open
+ (Predef=Predef),
+ Prelude,
+ CommonScand,
+ ResSwe,
+ MorphoSwe,
+ CatSwe in {
+
+--2 Parameters
+--
+-- To abstract over gender names, we define the following identifiers.
+
+oper
+ Gender : Type ;
+
+ utrum : Gender ;
+ neutrum : Gender ;
+
+-- To abstract over number names, we define the following.
+
+ Number : Type ;
+
+ singular : Number ;
+ plural : Number ;
+
+-- To abstract over case names, we define the following.
+
+ Case : Type ;
+
+ nominative : Case ;
+ genitive : Case ;
+
+-- Prepositions used in many-argument functions can be constructed from strings.
+
+ mkPrep : Str -> Prep ;
+ noPrep : Prep ; -- empty string
+
+
+--2 Nouns
+
+-- The following overloaded paradigm takes care of all noun formation.
+
+ mkN : overload {
+
+-- The one-argument case takes the singular indefinite form and computes
+-- the other forms and the gender by a simple heuristic. The heuristic is currently
+-- to treat all words ending with "a" like "apa-apor", with "e" like "rike-riken",
+-- and otherwise like "bil-bilar".
+
+ mkN : (apa : Str) -> N ;
+
+-- The case with a string and gender makes it possible to treat
+-- "lik" (neutrum) and "pojke" (utrum).
+
+ mkN : (lik : Str) -> Gender -> N ;
+
+-- Giving two forms - the singular and plural indefinite - is sufficient for
+-- most nouns. The paradigm deals correctly with the vowel contractions in
+-- "nyckel - nycklar" such as "pojke - pojkar".
+
+ mkN : (nyckel,nycklar : Str) -> N ;
+
+-- In the worst case, four forms are needed.
+
+ mkN : (museum,museet,museer,museerna : Str) -> N
+ } ;
+
+-- All the functions above work quite as well to form *compound nouns*,
+-- such as "fotboll".
+
+
+
+--3 Relational nouns
+--
+-- Relational nouns ("kung av x") are nouns with a preposition.
+-- As a special case, we provide regular nouns (formed with one-argument $mkN$)
+-- with the preposition "av".
+
+ mkN2 : overload {
+ mkN2 : Str -> N2 ;
+ mkN2 : N -> Prep -> N2
+ } ;
+
+-- Three-place relational nouns ("förbindelse från x till y")
+-- need two prepositions.
+
+ mkN3 : N -> Prep -> Prep -> N3 ;
+
+
+--3 Relational common noun phrases
+--
+-- In some cases, you may want to make a complex $CN$ into a
+-- relational noun (e.g. "den före detta maken till"). However, $N2$ and
+-- $N3$ are purely lexical categories. But you can use the $AdvCN$
+-- and $PrepNP$ constructions to build phrases like this.
+
+--
+--3 Proper names and noun phrases
+--
+-- Proper names, with a regular genitive, are formed from strings and
+-- have the default gender utrum.
+
+ mkPN : overload {
+ mkPN : Str -> PN ;
+ mkPN : Str -> Gender -> PN ;
+
+-- In the worst case, the genitive form is irregular.
+
+ mkPN : (jesus,jesu : Str) -> Gender -> PN
+ } ;
+
+
+--2 Adjectives
+
+-- Adjectives need one to seven forms.
+
+ mkA : overload {
+
+-- Most adjectives are formed simply by adding endings to a stem.
+
+ mkA : (billig : Str) -> A ;
+
+-- Some adjectives have a deviant neuter form. The following pattern
+-- also recognizes the neuter formation "galen-galet" and forms the
+-- proper plural and comparison forms "galna-galnare-galnast".
+
+ mkA : (bred,brett : Str) -> A ;
+
+-- Umlaut in comparison forms is
+
+ mkA : (tung,tyngre,tyngst : Str) -> A ;
+
+-- A few adjectives need 5 forms.
+ mkA : (god,gott,goda,battre,bast : Str) -> A ;
+
+-- Hardly any other adjective than "liten" needs the full 7 forms.
+
+ mkA : (liten,litet,lilla,sma,mindre,minst,minsta : Str) -> A
+ } ;
+
+-- Comparison forms may be compound ("mera svensk" - "mest svensk");
+-- this behaviour can be forced on any adjective.
+
+ compoundA : A -> A ;
+
+
+
+
+--3 Two-place adjectives
+--
+-- Two-place adjectives need a preposition for their second argument.
+
+ mkA2 : A -> Prep -> A2 ;
+
+
+--2 Adverbs
+
+-- Adverbs are not inflected. Most lexical ones have position
+-- after the verb. Some can be preverbal in subordinate position
+-- (e.g. "alltid").
+
+ mkAdv : Str -> Adv ; -- här
+ mkAdV : Str -> AdV ; -- alltid
+
+-- Adverbs modifying adjectives and sentences can also be formed.
+
+ mkAdA : Str -> AdA ;
+
+--2 Verbs
+--
+-- All verbs can be defined by the overloaded paradigm $mkV$.
+
+ mkV : overload {
+
+-- The 'regular verb' (= one-place) case is inspired by Lexin. It uses the
+-- present tense indicative form. The value is the first conjugation if the
+-- argument ends with "ar" ("tala" - "talar" - "talade" - "talat"),
+-- the second with "er" ("leka" - "leker" - "lekte" - "lekt", with the
+-- variations like in "gräva", "vända", "tyda", "hyra"), and
+-- the third in other cases ("bo" - "bor" - "bodde" - "bott").
+-- It is also possible to give the infinite form to it; they are treated
+-- as if they were implicitly suffixed by "r". Moreover, deponent verbs
+-- are recognized from the final "s" ("hoppas").
+
+ mkV : (stämmer : Str) -> V ;
+
+-- Most irregular verbs need just the conventional three forms.
+
+ mkV : (dricka,drack,druckit : Str) -> V ;
+
+-- In the worst case, six forms are given.
+
+ mkV : (gå,går,gå,gick,gått,gången : Str) -> V ;
+
+-- Particle verbs, such as "passa på", are formed by adding a string to a verb.
+
+ mkV : V -> Str -> V
+ } ;
+
+
+--3 Deponent verbs.
+--
+-- Some words are used in passive forms only, e.g. "hoppas", some as
+-- reflexive e.g. "ångra sig". Regular deponent verbs are also
+-- handled by $mkV$ and recognized from the ending "s".
+
+ depV : V -> V ;
+ reflV : V -> V ;
+
+
+--3 Two-place verbs
+--
+-- Two-place verbs need a preposition, which default to the 'empty preposition'
+-- i.e. direct object. (transitive verbs). The simplest case is a regular
+-- verb (as in $mkV$) with a direct object.
+-- Notice that, if a particle is needed, it comes from the $V$.
+
+ mkV2 : overload {
+ mkV2 : Str -> V2 ;
+ mkV2 : V -> V2 ;
+ mkV2 : V -> Prep -> V2
+ } ;
+
+
+--3 Three-place verbs
+--
+-- Three-place (ditransitive) verbs need two prepositions, of which
+-- the first one or both can be absent. The simplest case is a regular
+-- verb (as in $mkV$) with no prepositions.
+
+ mkV3 : overload {
+ mkV3 : Str -> V3 ;
+ mkV3 : V -> V3 ;
+ mkV3 : V -> Prep -> V3 ;
+ mkV3 : V -> Prep -> Prep -> V3
+ } ;
+
+--3 Other complement patterns
+--
+-- Verbs and adjectives can take complements such as sentences,
+-- questions, verb phrases, and adjectives.
+
+ mkV0 : V -> V0 ;
+ mkVS : V -> VS ;
+ mkV2S : V -> Prep -> V2S ;
+ mkVV : V -> VV ;
+ mkV2V : V -> Prep -> Prep -> V2V ;
+ mkVA : V -> VA ;
+ mkV2A : V -> Prep -> V2A ;
+ mkVQ : V -> VQ ;
+ mkV2Q : V -> Prep -> V2Q ;
+
+ mkAS : A -> AS ;
+ mkA2S : A -> Prep -> A2S ;
+ mkAV : A -> AV ;
+ mkA2V : A -> Prep -> A2V ;
+
+-- Notice: categories $AS, A2S, AV, A2V$ are just $A$.
+-- $V0$ is just $V$.
+
+ V0 : Type ;
+ AS, A2S, AV, A2V : Type ;
+
+--.
+--2 Definitions of the paradigms
+--
+-- The definitions should not bother the user of the API. So they are
+-- hidden from the document.
+
+ Gender = ResSwe.Gender ;
+ Number = CommonScand.Number ;
+ Case = CommonScand.Case ;
+ utrum = Utr ;
+ neutrum = Neutr ;
+ singular = Sg ;
+ plural = Pl ;
+ nominative = Nom ;
+ genitive = Gen ;
+
+ mkPrep p = {s = p ; lock_Prep = <>} ;
+ noPrep = mkPrep [] ;
+
+ mkN = overload {
+ mkN : (apa : Str) -> N = regN ;
+ mkN : Str -> Gender -> N = regGenN ;
+ mkN : (nyckel, nycklar : Str) -> N = mk2N ;
+ mkN : (museum,museet,museer,museerna : Str) -> N = mk4N ;
+ mkN : Str -> N -> N = compoundN ;
+ } ;
+
+ compoundN : Str -> N -> N = \s,no -> {
+ s = \\n,d,c => s ++ no.s ! n ! d ! c ;
+ g = no.g ;
+ lock_N = <>
+ } ;
+
+ mk4N : (museum,museet,museer,museerna : Str) -> N = \apa,apan,apor,aporna -> {
+ s = nounForms apa apan apor aporna ;
+ g = case last apan of {
+ "n" => Utr ;
+ _ => Neutr
+ }
+ } ** {lock_N = <>} ;
+
+ regN : Str -> N = \bil -> regGenN bil g where {
+ g = case <bil : Str> of {
+ _ + "e" => Neutr ;
+ _ => Utr
+ }
+ } ;
+
+ regGenN : Str -> Gender -> N = \bil, g -> case g of {
+ Utr => case last bil of {
+ "a" => decl1Noun bil ;
+ _ => decl2Noun bil
+ } ;
+ Neutr => case last bil of {
+ "e" => decl4Noun bil ;
+ _ => decl5Noun bil
+ }
+ } ** {lock_N = <>} ;
+
+ mk1N : Str -> N = \bilarna -> case bilarna of {
+ ap + "orna" => decl1Noun (ap + "a") ;
+ bil + "arna" => decl2Noun bil ;
+ rad + "erna" => decl3Noun rad ;
+ rik + "ena" => decl4Noun (rik + "e") ;
+ husen => decl5Noun (Predef.tk 2 husen)
+ } ;
+
+ mk2N : Str -> Str -> N = \bil,bilar ->
+ ifTok N bil bilar (decl5Noun bil) (
+ case Predef.dp 2 bilar of {
+ "or" => case bil of {
+ _ + "a" => decl1Noun bil ; -- apa, apor
+ _ + "o" => mk4N bil (bil + "n") bilar (bilar + "na") ; -- ko,kor
+ _ => mk4N bil (bil + "en") bilar (bilar + "na") -- ros,rosor
+ } ;
+ "ar" => decl2Noun bil ;
+ "er" => case bil of {
+ _ + "or" => mk4N bil (bil + "n") bilar (bilar + "na") ; -- motor,motorn
+ _ => decl3gNoun bil bilar -- fot, fötter
+ } ;
+ "en" => decl4Noun bil ; -- rike, riken
+ _ => mk4N bil (bil + "et") bilar (bilar + "n") -- centrum, centra
+ }) ;
+
+-- School declensions.
+
+ decl1Noun : Str -> N = \apa ->
+ let ap = init apa in
+ mk4N apa (apa + "n") (ap + "or") (ap + "orna") ;
+
+ decl2Noun : Str -> N = \bil ->
+ let
+ bb : Str * Str = case bil of {
+ br + ("o" | "u" | "ö" | "å") => <bil + "ar", bil + "n"> ;
+ pojk + "e" => <pojk + "ar", bil + "n"> ;
+ hi + "mme" + l@("l" | "r") => <hi + "m" + l + "ar",hi + "m" + l + "en"> ;
+ nyck + "e" + l@("l" | "r") => <nyck + l + "ar",bil + "n"> ;
+ sock + "e" + "n" => <sock + "nar", sock + "nen"> ;
+ _ => <bil + "ar", bil + "en">
+ } ;
+ in mk4N bil bb.p2 bb.p1 (bb.p1 + "na") ;
+
+ decl3Noun : Str -> N = \sak ->
+ case last sak of {
+ "e" => mk4N sak (sak + "n") (sak +"r") (sak + "rna") ;
+ "y" | "å" | "é" | "y" => mk4N sak (sak + "n") (sak +"er") (sak + "erna") ;
+ _ => mk4N sak (sak + "en") (sak + "er") (sak + "erna")
+ } ;
+ decl3gNoun : Str -> Str -> N = \sak,saker ->
+ case last sak of {
+ "e" => mk4N sak (sak + "n") saker (saker + "na") ;
+ "y" | "å" | "é" | "y" => mk4N sak (sak + "n") saker (saker + "na") ;
+ _ => mk4N sak (sak + "en") saker (saker + "na")
+ } ;
+
+ decl4Noun : Str -> N = \rike ->
+ mk4N rike (rike + "t") (rike + "n") (rike + "na") ;
+
+ decl5Noun : Str -> N = \lik ->
+ case lik of {
+ nu + "mme" + l@("l" | "r") =>
+ mk4N lik (nu + "m" + l + "et") lik (nu + "m" + l + "en") ;
+ vad@(?+?+?+_) + "e" + l@("l" | "r") =>
+ mk4N lik (vad + l + "et") lik (vad + l + "en") ;
+ _ + "are" => mk4N lik (lik + "n") lik (init lik + "na") ; -- kikare
+ _ => mk4N lik (lik + "et") lik (lik + "en")
+ } ;
+
+ mkN2 = overload {
+ mkN2 : Str -> N2 = \s -> mmkN2 (regN s) (mkPrep "av") ;
+ mkN2 : N -> Prep -> N2 = mmkN2
+ } ;
+
+ mmkN2 : N -> Prep -> N2 ;
+ regN2 : Str -> Gender -> N2 ;
+
+
+ mmkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = mkComplement p.s} ;
+ regN2 n g = mmkN2 (regGenN n g) (mkPrep "av") ;
+ mkN3 = \n,p,q -> n **
+ {lock_N3 = <> ; c2 = mkComplement p.s ; c3 = mkComplement q.s} ;
+
+ mkPN = overload {
+ mkPN : Str -> PN = regPN ;
+ mkPN : Str -> Gender -> PN = regGenPN ;
+ mkPN : (jesus,jesu : Str) -> Gender -> PN = \jesus,jesu,g ->
+ {s = table {Nom => jesus ; Gen => jesu} ; g = g ; lock_PN = <>} ;
+ } ;
+
+ regPN n = regGenPN n utrum ;
+ regGenPN n g = {s = \\c => mkCase c n ; g = g} ** {lock_PN = <>} ;
+ nounPN n = {s = n.s ! singular ! Indef ; g = n.g ; lock_PN = <>} ;
+ makeNP x y n g =
+ {s = table {NPPoss _ => y ; _ => x} ; a = agrP3 g n ; p = P3 ;
+ lock_NP = <>} ;
+
+ mkA = overload {
+ mkA : (billig : Str) -> A = regA ;
+ mkA : (bred,brett : Str) -> A = mk2A ;
+ mkA : (tung,tyngre,tyngst : Str) -> A = irregA ;
+ mkA : (god,gott,goda,battre,bast : Str) -> A =
+ \liten,litet,lilla,mindre,minst ->
+ mk7A liten litet lilla lilla mindre minst (minst + "a") ;
+ mkA : (liten,litet,lilla,sma,mindre,minst,minsta : Str) -> A = mk7A
+ } ;
+
+
+ regA : Str -> A ;
+ mk2A : (bred,brett : Str) -> A ;
+ irregA : (tung,tyngre,tyngst : Str) -> A ;
+ mk7A : (liten,litet,lilla,sma,mindre,minst,minsta : Str) -> A ;
+
+ mk7A a b c d e f g = mkAdjective a b c d e f g ** {isComp = False ; lock_A = <>} ;
+ regA fin =
+ let fint : Str = case fin of {
+ ru + "nd" => ru + "nt" ;
+ se + "dd" => se + "tt" ;
+ pla + "tt" => pla + "tt" ;
+ gla + "d" => gla + "tt" ;
+ _ => fin + "t"
+ }
+ in
+ mk3A fin fint (fin + "a") ;
+ irregA ung yngre yngst =
+ mk7A ung (ung + "t") (ung + "a") (ung + "a") yngre yngst (yngst+"a") ;
+
+ mk3A ljummen ljummet ljumma =
+ mk7A
+ ljummen ljummet ljumma ljumma
+ (ljumma + "re") (ljumma + "st") (ljumma + "ste") ;
+ mk2A vid vitt = case <vid,vitt> of {
+ <gal + "en", _ + "et"> => mk3A vid vitt (gal + "na") ;
+ _ => mk3A vid vitt (vid + "a")
+ } ;
+
+ compoundA adj = {s = adj.s ; isComp = True ; lock_A = <>} ;
+
+ mkA2 a p = a ** {c2 = mkComplement p.s ; lock_A2 = <>} ;
+
+ mkAdv x = ss x ** {lock_Adv = <>} ;
+ mkAdV x = ss x ** {lock_AdV = <>} ;
+ mkAdA x = ss x ** {lock_AdA = <>} ;
+
+ mkV = overload {
+ mkV : (stämmer : Str) -> V = regV ;
+ mkV : (dricka,drack,druckit : Str) -> V = irregV ;
+ mkV : (supa,super,sup,söp,supit,supen : Str) -> V = mk6V ;
+ mkV : V -> Str -> V = partV
+ } ;
+
+ mk6V = \finna,finner,finn,fann,funnit,funnen ->
+ let
+ funn = ptPretForms funnen ;
+ funnet = funn ! Strong SgNeutr ! Nom ;
+ funna = funn ! Strong Plg ! Nom
+ in
+ mkVerb finna finner finn fann funnit funnen funnet funna **
+ {part = [] ; vtype=VAct ; lock_V = <>} ;
+
+ regV leker = case leker of {
+ lek + "a" => conj1 leker ; --- bw compat
+ lek + "ar" => conj1 (lek + "a") ;
+ lek + "er" => conj2 (lek + "a") ;
+ bo + "r" => conj3 bo ;
+ ret + "as" => depV (conj1 (ret + "a")) ;
+ n + ("os" | "ys" | "ås" | "ös") => depV (conj3 (init leker)) ;
+ ret + "s" => depV (conj2 (ret + "a")) ;
+ _ => conj3 leker
+ } ;
+
+ mk2V leka lekte = case <leka,lekte> of {
+ <_, _ + "ade"> => conj1 leka ;
+ <_ + "a", _> => conj2 leka ;
+ _ => conj3 leka
+ } ;
+
+-- school conjugations
+
+ conj1 : Str -> V = \tala ->
+ mk6V tala (tala + "r") tala (tala +"de") (tala +"t") (tala +"d") ;
+
+ conj2 : Str -> V = \leka ->
+ let lek = init leka in
+ case last lek of {
+ "l" | "m" | "n" | "v" | "g" =>
+ let gom = case <lek : Tok> of {
+ _ + "mm" => init lek ;
+ _ => lek
+ }
+ in mk6V leka (lek + "er") gom (gom +"de") (gom +"t") (gom +"d") ;
+ "r" =>
+ mk6V leka lek lek (lek +"de") (lek +"t") (lek +"d") ;
+ _ => case lek of {
+ _ + "nd" =>
+ mk6V leka (lek + "er") lek (lek +"e") (init lek +"t") lek ;
+ _ =>
+ mk6V leka (lek + "er") lek (lek +"te") (lek +"t") (lek +"t")
+ }
+ } ;
+
+ conj3 : Str -> V = \bo ->
+ mk6V bo (bo + "r") bo (bo +"dde") (bo +"tt") (bo +"dd") ;
+
+ irregV = \sälja, sålde, sålt ->
+ let
+ säljer = case last sälja of {
+ "a" => conj2 sälja ;
+ _ => conj3 sälja
+ } ;
+ såld = case Predef.dp 2 sålt of {
+ "it" => Predef.tk 2 sålt + "en" ;
+ "tt" => Predef.tk 2 sålt + "dd" ;
+ _ => init sålt + "d"
+ }
+ in
+ mk6V sälja (säljer.s ! VF (VPres Act)) (säljer.s ! (VF (VImper Act))) sålde sålt såld
+ ** {s1 = [] ; lock_V = <>} ;
+
+ partV v p = {s = v.s ; part = p ; vtype = v.vtype ; lock_V = <>} ;
+ depV v = {s = v.s ; part = v.part ; vtype = VPass ; lock_V = <>} ;
+ reflV v = {s = v.s ; part = v.part ; vtype = VRefl ; lock_V = <>} ;
+
+ mkV2 = overload {
+ mkV2 : (läser : Str) -> V2 = \v -> dirV2 (regV v) ;
+ mkV2 : V -> V2 = dirV2 ;
+ mkV2 : V -> Prep -> V2 = mmkV2
+ } ;
+
+
+ mmkV2 v p = v ** {c2 = mkComplement p.s ; lock_V2 = <>} ;
+ dirV2 v = mmkV2 v noPrep ;
+
+ mkV3 = overload {
+ mkV3 : Str -> V3 = \v -> dirdirV3 (regV v) ;
+ mkV3 : V -> V3 = dirdirV3 ;
+ mkV3 : V -> Prep -> V3 = dirV3 ;
+ mkV3 : V -> Prep -> Prep -> V3 = mmkV3
+ } ;
+
+ mmkV3 : V -> Prep -> Prep -> V3 ; -- tala, med, om
+ dirV3 : V -> Prep -> V3 ; -- ge, (acc),till
+ dirdirV3 : V -> V3 ; -- ge, (dat), (acc)
+
+
+ mmkV3 v p q = v ** {c2 = mkComplement p.s ; c3 = mkComplement q.s ; lock_V3 = <>} ;
+ dirV3 v p = mmkV3 v noPrep p ;
+ dirdirV3 v = dirV3 v noPrep ;
+
+ mkV0 v = v ** {lock_V0 = <>} ;
+ mkVS v = v ** {lock_VS = <>} ;
+ mkVV v = v ** {c2 = mkComplement "att" ; lock_VV = <>} ;
+ mkVQ v = v ** {lock_VQ = <>} ;
+
+ mkVA v = v ** {lock_VA = <>} ;
+ mkV2A v p = mmkV2 v p ** {lock_V2A = <>} ;
+
+ V0 : Type = V ;
+-- V2S, V2V, V2Q : Type = V2 ;
+ AS, A2S, AV : Type = A ;
+ A2V : Type = A2 ;
+
+ mkV2S v p = mmkV2 v p ** {lock_V2S = <>} ;
+ mkV2V v p t = mmkV2 v p ** {c3 = mkComplement "att" ; lock_V2V = <>} ;
+ mkV2Q v p = mmkV2 v p ** {lock_V2Q = <>} ;
+
+ mkAS v = v ** {lock_A = <>} ;
+ mkA2S v p = mkA2 v p ** {lock_A = <>} ;
+ mkAV v = v ** {lock_A = <>} ;
+ mkA2V v p = mkA2 v p ** {lock_A = <>} ;
+
+----------Obsolete
+
+-- To form a noun phrase that can also be plural and have an irregular
+-- genitive, you can use the worst-case function.
+
+ makeNP : Str -> Str -> Number -> Gender -> NP ;
+
+
+
+ regGenPN : Str -> Gender -> PN ;
+ regPN : Str -> PN ; -- utrum
+
+-- Sometimes you can reuse a common noun as a proper name, e.g. "Bank".
+
+ nounPN : N -> PN ;
+
+-- Sometimes just the positive forms are irregular.
+
+ mk3A : (galen,galet,galna : Str) -> A ;
+
+ mk6V : (supa,super,sup,söp,supit,supen : Str) -> V ;
+ regV : (talar : Str) -> V ;
+ mk2V : (leka,lekte : Str) -> V ;
+ irregV : (dricka, drack, druckit : Str) -> V ;
+
+ partV : V -> Str -> V ;
+
+ mmkV2 : V -> Prep -> V2 ;
+
+ dirV2 : V -> V2 ;
+
+
+} ;
diff --git a/deprecated/old-lib/resource/swedish/PhraseSwe.gf b/deprecated/old-lib/resource/swedish/PhraseSwe.gf
new file mode 100644
index 000000000..8fccfc6d2
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/PhraseSwe.gf
@@ -0,0 +1,2 @@
+concrete PhraseSwe of Phrase = CatSwe ** PhraseScand with
+ (ResScand = ResSwe) ;
diff --git a/deprecated/old-lib/resource/swedish/QuestionSwe.gf b/deprecated/old-lib/resource/swedish/QuestionSwe.gf
new file mode 100644
index 000000000..642fd0353
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/QuestionSwe.gf
@@ -0,0 +1,2 @@
+concrete QuestionSwe of Question = CatSwe ** QuestionScand with
+ (ResScand = ResSwe) ;
diff --git a/deprecated/old-lib/resource/swedish/RelativeSwe.gf b/deprecated/old-lib/resource/swedish/RelativeSwe.gf
new file mode 100644
index 000000000..3bf74a3d6
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/RelativeSwe.gf
@@ -0,0 +1,2 @@
+concrete RelativeSwe of Relative = CatSwe ** RelativeScand with
+ (ResScand = ResSwe) ;
diff --git a/deprecated/old-lib/resource/swedish/ResSwe.gf b/deprecated/old-lib/resource/swedish/ResSwe.gf
new file mode 100644
index 000000000..7b5a52a88
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/ResSwe.gf
@@ -0,0 +1,3 @@
+instance ResSwe of ResScand = DiffSwe ** open CommonScand, Prelude in {
+} ;
+
diff --git a/deprecated/old-lib/resource/swedish/SentenceSwe.gf b/deprecated/old-lib/resource/swedish/SentenceSwe.gf
new file mode 100644
index 000000000..553af3b46
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/SentenceSwe.gf
@@ -0,0 +1,2 @@
+concrete SentenceSwe of Sentence = CatSwe ** SentenceScand with
+ (ResScand = ResSwe) ;
diff --git a/deprecated/old-lib/resource/swedish/StructuralSwe.gf b/deprecated/old-lib/resource/swedish/StructuralSwe.gf
new file mode 100644
index 000000000..ec7200bae
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/StructuralSwe.gf
@@ -0,0 +1,127 @@
+concrete StructuralSwe of Structural = CatSwe **
+ open MorphoSwe, ParadigmsSwe, Prelude in {
+
+ flags optimize=all ;
+
+ lin
+ above_Prep = ss "ovanför" ;
+ after_Prep = ss "efter" ;
+ by8agent_Prep = ss "av" ;
+ all_Predet = {s = gennumForms "all" "allt" "alla"} ;
+ almost_AdA, almost_AdN = ss "nästan" ;
+ although_Subj = ss "fast" ;
+ always_AdV = ss "alltid" ;
+ and_Conj = {s1 = [] ; s2 = "och" ; n = Pl} ;
+ because_Subj = ss "eftersom" ;
+ before_Prep = ss "före" ;
+ behind_Prep = ss "bakom" ;
+ between_Prep = ss "mellan" ;
+ both7and_DConj = sd2 "både" "och" ** {n = Pl} ;
+ but_PConj = ss "men" ;
+ by8means_Prep = ss "med" ;
+ can8know_VV, can_VV =
+ mkV "kunna" "kan" "kunn" "kunde" "kunnat" "kunnen" **
+ {c2 = mkComplement [] ; lock_VV = <>} ;
+ during_Prep = ss "under" ;
+ either7or_DConj = sd2 "antingen" "eller" ** {n = Sg} ;
+ everybody_NP = regNP "alla" "allas" Plg ;
+ every_Det = {s = \\_,_ => "varje" ; n = Sg ; det = DIndef} ;
+ everything_NP = regNP "allting" "alltings" SgNeutr ;
+ everywhere_Adv = ss "överallt" ;
+ few_Det = {s = \\_,_ => "få" ; n = Pl ; det = DDef Indef} ;
+--- first_Ord = {s = "första" ; isDet = True} ;
+ for_Prep = ss "för" ;
+ from_Prep = ss "från" ;
+ he_Pron = MorphoSwe.mkNP "han" "honom" "hans" "hans" "hans" SgUtr P3 ;
+ here_Adv = ss "här" ;
+ here7to_Adv = ss "hit" ;
+ here7from_Adv = ss "härifrån" ;
+ how_IAdv = ss "hur" ;
+ how8many_IDet = {s = \\_ => ["hur många"] ; n = Pl ; det = DDef Indef} ;
+ if_Subj = ss "om" ;
+ in8front_Prep = ss "framför" ;
+ i_Pron = MorphoSwe.mkNP "jag" "mig" "min" "mitt" "mina" SgUtr P1 ;
+ in_Prep = ss "i" ;
+ it_Pron = MorphoSwe.regNP "det" "dess" SgNeutr ;
+ less_CAdv = ss "mindre" ;
+ many_Det = {s = \\_,_ => "många" ; n = Pl ; det = DDef Indef} ;
+ more_CAdv = ss "mer" ;
+ most_Predet = {s = gennumForms ["den mesta"] ["det mesta"] ["de flesta"]} ;
+ much_Det = {s = \\_,_ => "mycket" ; n = Pl ; det = DDef Indef} ;
+ must_VV =
+ mkV "få" "måste" "få" "fick" "måst" "måst" **
+ {c2 = mkComplement [] ; lock_VV = <>} ;
+ no_Utt = ss ["nej"] ;
+ on_Prep = ss "på" ;
+--- one_Quant = {s = \\_ => genderForms ["en"] ["ett"] ; n = Sg ; det = DIndef} ;
+ only_Predet = {s = \\_ => "bara"} ;
+ or_Conj = {s1 = [] ; s2 = "eller" ; n = Sg} ;
+ otherwise_PConj = ss "annars" ;
+ part_Prep = ss "av" ;
+ please_Voc = ss "tack" ; ---
+ possess_Prep = ss "av" ;
+ quite_Adv = ss "ganska" ;
+ she_Pron = MorphoSwe.mkNP "hon" "henne" "hennes" "hennes" "hennes" SgUtr P3 ;
+ so_AdA = ss "så" ;
+ someSg_Det = {s = \\_ => genderForms "någon" "något" ; n = Sg ; det = DIndef} ;
+ somePl_Det = {s = \\_,_ => "några" ; n = Pl ; det = DIndef} ;
+ somebody_NP = regNP "någon" "någons" SgUtr ;
+ something_NP = regNP "något" "någots" SgNeutr ;
+ somewhere_Adv = ss "någonstans" ;
+ that_Quant =
+ {s = table {
+ Sg => \\_ => genderForms ["den där"] ["det där"] ;
+ Pl => \\_,_ => ["de där"]
+ } ;
+ det = DDef Def
+ } ;
+ there_Adv = ss "där" ;
+ there7to_Adv = ss "dit" ;
+ there7from_Adv = ss "därifrån" ;
+ therefore_PConj = ss "därför" ;
+ they_Pron = MorphoSwe.mkNP "de" "dem" "deras" "deras" "deras" Plg P1 ;
+ this_Quant =
+ {s = table {
+ Sg => \\_ => genderForms ["den här"] ["det här"] ;
+ Pl => \\_,_ => ["de här"]
+ } ;
+ det = DDef Def
+ } ;
+ through_Prep = ss "genom" ;
+ too_AdA = ss "för" ;
+ to_Prep = ss "till" ;
+ under_Prep = ss "under" ;
+ very_AdA = ss "mycket" ;
+ want_VV =
+ mkV "vilja" "vill" "vilj" "ville" "velat" "velad" **
+ {c2 = mkComplement [] ; lock_VV = <>} ;
+ we_Pron = MorphoSwe.mkNP "vi" "oss" "vår" "vårt" "våra" Plg P1 ;
+ whatSg_IP = {s = \\_ => "vad" ; gn = SgUtr} ; ---- infl
+ whatPl_IP = {s = \\_ => "vad" ; gn = Plg} ; ---- infl
+ when_IAdv = ss "när" ;
+ when_Subj = ss "när" ;
+ where_IAdv = ss "var" ;
+ which_IQuant = {
+ s = table {
+ Sg => genderForms "vilken" "vilket" ;
+ Pl => \\_ => "vilka"
+ } ;
+ det = DIndef
+ } ;
+ whoSg_IP = {s = vem.s ; gn = SgUtr} ;
+ whoPl_IP = {s = \\_ => "vilka" ; gn = Plg} ;
+ why_IAdv = ss "varför" ;
+ without_Prep = ss "utan" ;
+ with_Prep = ss "med" ;
+ yes_Utt = ss ["ja"] ;
+ youSg_Pron = MorphoSwe.mkNP "du" "dig" "din" "ditt" "dina" SgUtr P2 ;
+ youPl_Pron = MorphoSwe.mkNP "ni" "er" "er" "ert" "era" Plg P2 ;
+ youPol_Pron = MorphoSwe.mkNP "ni" "er" "er" "ert" "era" SgUtr P2 ; --- wrong in refl
+
+-- Auxiliaries that are used repeatedly.
+
+ oper
+ vem = MorphoSwe.mkNP "vem" "vem" "vems" "vems" "vems" SgUtr P3 ;
+
+}
+
diff --git a/deprecated/old-lib/resource/swedish/VerbSwe.gf b/deprecated/old-lib/resource/swedish/VerbSwe.gf
new file mode 100644
index 000000000..e918f4809
--- /dev/null
+++ b/deprecated/old-lib/resource/swedish/VerbSwe.gf
@@ -0,0 +1,2 @@
+concrete VerbSwe of Verb = CatSwe ** VerbScand with
+ (ResScand = ResSwe) ;