diff options
| author | aarne <aarne@chalmers.se> | 2009-12-09 09:47:16 +0000 |
|---|---|---|
| committer | aarne <aarne@chalmers.se> | 2009-12-09 09:47:16 +0000 |
| commit | c8ceed08efcc0bdc1fcbd89bce643d9f52f0991b (patch) | |
| tree | 5f0b314341c129eba1bc67b8b887fb8a4486fad8 /deprecated/old-lib/resource/swedish | |
| parent | 101df06f6c8380328d4266adadac3ab6d1bac0b3 (diff) | |
moving a few things to deprecated
Diffstat (limited to 'deprecated/old-lib/resource/swedish')
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) ; |
