1
0
forked from GitHub/gf-rgl

Norwegian complete but with many unchecked words

This commit is contained in:
aarne
2005-03-11 14:08:59 +00:00
parent 5f2b29ebba
commit b695a1c8f0
6 changed files with 181 additions and 27 deletions

View File

@@ -8,7 +8,7 @@
--
-- We use the parameter types and word classes defined for morphology.
resource MorphoNor = open Prelude, TypesNor in {
resource MorphoNor = open Predef, Prelude, TypesNor in {
-- Danish grammar source: http://users.cybercity.dk/~nmb3879/danish.html
@@ -36,6 +36,12 @@ oper
Gen => bil + "s" --- but: hus --> hus
} ;
extNGen : Str -> NounGender = \s -> case last s of {
"n" => NUtr Masc ;
"a" => NUtr NoMasc ;
_ => NNeutr
} ;
nBil : Str -> Subst = \bil ->
mkSubstantive bil (bil + "en") (bil + "er") (bil + "erne") **
{h1 = masc} ;
@@ -74,6 +80,12 @@ oper
aRask : Str -> Adj = \rask ->
mkAdjective rask rask (rask + "e") (rask + "ere") (rask + "est") ;
aBillig : Str -> Adj = \billig ->
mkAdjective billig billig (billig + "e") (billig + "ere") (billig + "st") ;
extractPositive : Adj -> {s : AdjFormPos => Case => Str} = \adj ->
{s = \\a,c => adj.s ! (AF (Posit a) c)} ;
-- verbs
mkVerb : (_,_,_,_,_,_ : Str) -> Verbum =
@@ -83,7 +95,11 @@ oper
VF (Pres Pass) => spises ;
VF (Pret v) => mkVoice v spiste ;
VI (Supin v) => mkVoice v spist ;
VI (PtPret _ c) => mkCase spist ! c ; ---- GenNum
VI (PtPret (Strong (ASg _)) c) => mkCase spist ! c ;
VI (PtPret _ c) => case last spist of {
"a" => mkCase spist ! c ;
_ => mkCase (spist + "e") ! c
} ;
VF (Imper v) => mkVoice v spis
}
} ;
@@ -97,14 +113,37 @@ oper
} ;
vHusk : Str -> Verbum = \husk ->
mkVerb (husk + "e") (husk + "er") (husk + "es") (husk + "et") (husk + "et") husk ;
let huska : Str = husk + "a" ---- variants {husk + "a" ; husk + "et"}
in
mkVerb (husk + "e") (husk + "er") (husk + "es") huska huska husk ;
vSpis : Str -> Verbum = \spis ->
mkVerb (spis + "e") (spis + "er") (spis + "es") (spis + "te") (spis + "t") spis ;
vLev : Str -> Verbum = \lev ->
mkVerb (lev + "e") (lev + "er") (lev + "es") (lev + "de") (lev + "d") lev ;
vBo : Str -> Verbum = \bo ->
mkVerb bo (bo + "r") (bo + "es") (bo + "dde") (bo + "dd") bo ;
regVerb : Str -> Str -> Verbum = \spise, spiste ->
let
spis = init spise ;
te = dp 2 spiste
in
case te of {
"te" => vSpis spis ;
"de" => case last spise of {
"e" => vLev spis ;
_ => vBo spise
} ;
_ => vHusk spis
} ;
irregVerb : (drikke,drakk,drukket : Str) -> Verbum =
\drikke,drakk,drukket ->
mkVerb drikke (drikke + "r") (drikke + "s") drakk drukket (init drikke) ;
-- pronouns
oper jag_32 : ProPN =
@@ -208,7 +247,7 @@ oper De_38 : ProPN =
oper den_39 : ProPN =
{s = table {
PNom => "de " ;
PNom => "de" ;
PAcc => "den" ;
PGen _ => "dens"
} ;