diff options
| author | aarne <aarne@chalmers.se> | 2009-06-22 15:39:08 +0000 |
|---|---|---|
| committer | aarne <aarne@chalmers.se> | 2009-06-22 15:39:08 +0000 |
| commit | e89fdae2fa1626348d8025824a7469252fa85e42 (patch) | |
| tree | c7d46bbd0494043b4bd6f917a25a7687517d0547 /next-lib/src/danish/MorphoDan.gf | |
| parent | 3049b59b35b25381a7c6787444165c200d66e08b (diff) | |
next-lib renamed to lib, lib to old-lib
Diffstat (limited to 'next-lib/src/danish/MorphoDan.gf')
| -rw-r--r-- | next-lib/src/danish/MorphoDan.gf | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/next-lib/src/danish/MorphoDan.gf b/next-lib/src/danish/MorphoDan.gf deleted file mode 100644 index a5ee90a48..000000000 --- a/next-lib/src/danish/MorphoDan.gf +++ /dev/null @@ -1,164 +0,0 @@ ---1 A Simple Danish Resource Morphology --- --- Aarne Ranta 2002 --- --- This resource morphology contains definitions needed in the resource --- syntax. It moreover contains copies of the most usual inflectional patterns --- as defined in functional morphology (in the Haskell file $RulesSw.hs$). --- --- We use the parameter types and word classes defined for morphology. - -resource MorphoDan = CommonScand, ResDan ** open Prelude, Predef in { - -oper - --- type synonyms - - Subst : Type = {s : Number => Species => Case => Str} ; - Adj = Adjective ; - --- nouns - - mkSubstantive : (_,_,_,_ : Str) -> Subst = - \dreng, drengen, drenger, drengene -> - {s = nounForms dreng drengen drenger drengene} ; - - extNGen : Str -> Gender = \s -> case last s of { - "n" => Utr ; - _ => Neutr - } ; - - nDreng : Str -> Subst = \dreng -> - mkSubstantive dreng (dreng + "en") (dreng + "e") (dreng + "ene") ** - {h1 = Utr} ; - - nBil : Str -> Subst = \bil -> - mkSubstantive bil (bil + "en") (bil + "er") (bil + "erne") ** - {h1 = Utr} ; - - nUge : Str -> Subst = \uge -> - mkSubstantive uge (uge + "n") (uge + "r") (uge + "rne") ** - {h1 = Utr} ; - - nHus : Str -> Subst = \hus -> - mkSubstantive hus (hus + "et") hus (hus + "ene") ** - {h1 = Neutr} ; - --- adjectives - - mkAdject : (_,_,_,_,_ : Str) -> Adj = - \stor,stort,store,storre,storst -> {s = table { - AF (APosit (Strong SgUtr )) c => mkCase c stor ; - AF (APosit (Strong SgNeutr)) c => mkCase c stort ; - AF (APosit _) c => mkCase c store ; - AF ACompar c => mkCase c storre ; - AF (ASuperl SupStrong) c => mkCase c storst ; - AF (ASuperl SupWeak) c => mkCase c (storst + "e") - } - } ; - - aRod : Str -> Adj = \rod -> - mkAdject rod (rod + "t") (rod + "e") (rod + "ere") (rod + "est") ; - - aAbstrakt : Str -> Adj = \abstrakt -> - mkAdject abstrakt abstrakt (abstrakt + "e") (abstrakt + "ere") (abstrakt + "est") ; - - aRask : Str -> Adj = \rask -> - mkAdject rask rask (rask + "e") (rask + "ere") (rask + "est") ; - - --- verbs - - Verbum : Type = {s : VForm => Str} ; - - mkVerb6 : (_,_,_,_,_,_ : Str) -> Verbum = - \spise,spiser,spises,spiste,spist,spis -> {s = table { - VI (VInfin v) => mkVoice v spise ; - VF (VPres Act) => spiser ; - VF (VPres Pass) => spises ; - VF (VPret v) => mkVoice v spiste ; --# notpresent - VI (VSupin v) => mkVoice v spist ; --# notpresent - VI (VPtPret (Strong (SgUtr | SgNeutr)) c) => mkCase c spist ; - VI (VPtPret _ c) => mkCase c (spist + "e") ; - VF (VImper v) => mkVoice v spis - } - } ; - - irregVerb : (drikke,drakk,drukket : Str) -> Verbum = - \drikke,drakk,drukket -> - let - drikk = init drikke ; - drikker = case last (init drikke) of { - "r" => drikk ; - _ => drikke + "r" - } - in - mkVerb6 drikke drikker (drikke + "s") drakk drukket (mkImper drikk) ; - - regVerb : Str -> Str -> Verbum = \spise, spiste -> - let - spis = init spise ; - te = Predef.dp 2 spiste - in - case te of { - "te" => vSpis spis ; - "de" => case last spise of { - "e" => vHusk spis ; - _ => vBo spise - } ; - _ => vHusk spis - } ; - - vHusk : Str -> Verbum = \husk -> - mkVerb6 (husk + "e") (husk + "er") (husk + "es") (husk + "ede") (husk + "et") - (mkImper husk) ; - - vSpis : Str -> Verbum = \spis -> - mkVerb6 (spis + "e") (spis + "er") (spis + "es") (spis + "te") (spis + "t") - (mkImper spis) ; - - vBo : Str -> Verbum = \bo -> - mkVerb6 bo (bo + "r") (bo + "es") (bo + "ede") (bo + "et") (mkImper bo) ; - --- Remove consonant duplication: "passe - pas" - - mkImper : Str -> Str = \s -> - if_then_Str (pbool2bool (Predef.eqStr (last s) (last (init s)))) (init s) s ; - --- 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 = \syv -> - cardOrd syv (syv + case last syv of { - "n" => "de" ; - "e" => "nde" ; - _ => "ende" - }) ; - - - mkTal : (x1,_,_,_,x5 : Str) -> LinDigit = - \två, tolv, tjugo, andra, tyvende -> - {s = table { - ental => cardOrd två andra ; - ton => cardReg tolv ; - tiotal => cardOrd tjugo tyvende - } - } ; - - numPl : (CardOrd => Str) -> {s : CardOrd => Str ; n : Number} = \n -> - {s = n ; n = Pl} ; - - invNum : CardOrd = NCard Neutr ; - - -} |
