summaryrefslogtreecommitdiff
path: root/next-lib/src/german/MorphoGer.gf
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2009-06-22 15:39:08 +0000
committeraarne <aarne@chalmers.se>2009-06-22 15:39:08 +0000
commite89fdae2fa1626348d8025824a7469252fa85e42 (patch)
treec7d46bbd0494043b4bd6f917a25a7687517d0547 /next-lib/src/german/MorphoGer.gf
parent3049b59b35b25381a7c6787444165c200d66e08b (diff)
next-lib renamed to lib, lib to old-lib
Diffstat (limited to 'next-lib/src/german/MorphoGer.gf')
-rw-r--r--next-lib/src/german/MorphoGer.gf96
1 files changed, 0 insertions, 96 deletions
diff --git a/next-lib/src/german/MorphoGer.gf b/next-lib/src/german/MorphoGer.gf
deleted file mode 100644
index c4c28fa1e..000000000
--- a/next-lib/src/german/MorphoGer.gf
+++ /dev/null
@@ -1,96 +0,0 @@
---# -path=.:../common:../../prelude
---
-----1 A Simple German Resource Morphology
-----
----- Aarne Ranta & Harald Hammarström 2002 -- 2006
-----
----- This resource morphology contains definitions needed in the resource
----- syntax. To build a lexicon, it is better to use $ParadigmsGer$, which
----- gives a higher-level access to this module.
---
-resource MorphoGer = ResGer ** open Prelude, (Predef=Predef) in {
-
- flags optimize=all ;
-
-oper
-
--- For $StructuralGer$.
-
- mkPrep : Str -> Case -> Preposition = \s,c ->
- {s = s ; c = c} ;
-
- nameNounPhrase : {s : Case => Str} -> {s : Case => Str ; a : Agr} = \name ->
- name ** {a = agrP3 Sg} ;
-
- detLikeAdj : Number -> Str ->
- {s,sp : Gender => Case => Str ; n : Number ; a : Adjf} = \n,dies ->
- {s,sp = appAdj (regA dies) ! n ; n = n ; a = Weak} ;
-
- mkOrd : {s : Degree => AForm => Str} -> {s : AForm => Str} = \a ->
- {s = a.s ! Posit} ;
-
--- For $ParadigmsGer$.
-
- genitS : Str -> Str = \hund -> case hund of {
- _ + ("el" | "en" | "er") => hund + "s" ;
- _ + ("s" | "ß" | "sch" | "st" | "x" | "z") => hund + "es" ;
- _ => hund + variants {"s" ; "es"}
- } ;
- pluralN : Str -> Str = \hund -> case hund of {
- _ + ("el" | "er" | "e") => hund + "n" ;
- _ + "en" => hund ;
- _ => hund + "en"
- } ;
- dativE : Str -> Str = \hund -> case hund of {
- _ + ("el" | "en" | "er" | "e") => hund ;
- _ => variants {hund ; hund + "e"}
- } ;
-
--- Duden, p. 119
-
- verbT : Str -> Str = \v -> case v of {
- _ + ("t" | "d") => v + "et" ; -- gründen, reden, betten
- _ + ("ch" | "k" | "p" | "t" | "g" | "b" | "d" | "f" | "s") +
- ("m" | "n") => v + "et" ; -- atmen, widmen, öffnen, rechnen
- _ => v + "t" -- lernen, lärmen, qualmen etc
- } ;
-
- verbST : Str -> Str = \v -> case v of {
- _ + ("s" | "ss" | "ß" | "sch" | "x" | "z") => v + "t" ;
- _ => v + "st"
- } ;
-
- stemVerb : Str -> Str = \v -> case v of {
- _ + ("rn" | "ln") => init v ;
- _ => Predef.tk 2 v
- } ;
-
--- For $Numeral$.
-
- LinDigit = {s : DForm => CardOrd => Str} ;
-
- cardOrd : Str -> Str -> CardOrd => Str = \drei,dritte ->
- table {
- NCard _ _ => drei ;
- NOrd a => (regA (init dritte)).s ! Posit ! a
- } ;
-
- cardReg : Str -> CardOrd => Str = \zehn ->
- cardOrd zehn (zehn + "te") ;
-
- mkDigit : (x1,_,_,x4 : Str) -> LinDigit =
- \drei,dreizehn,dreissig,dritte ->
- {s = table {
- DUnit => cardOrd drei dritte ;
- DTeen => cardReg dreizehn ;
- DTen => cardOrd dreissig (dreissig + "ste")
- }
- } ;
-
- regDigit : Str -> LinDigit = \vier ->
- mkDigit vier (vier + "zehn") (vier + "zig") (vier + "te") ;
-
- invNum : CardOrd = NCard Masc Nom ;
-
-} ;
-