1
0
forked from GitHub/gf-rgl

fix some Icelandic noun and adjective paradigms

This commit is contained in:
Inari Listenmaa
2018-01-10 18:24:18 +01:00
parent fb7e7050b9
commit 0729499323
2 changed files with 32 additions and 31 deletions

View File

@@ -42,7 +42,7 @@ concrete LexiconIce of Lexicon = CatIce **
friend_N = mkN "vinur" "vinar" "vinir" masculine ; friend_N = mkN "vinur" "vinar" "vinir" masculine ;
brother_N2 = mkN2 (mkN "bróðir" "bróður" "bræður" masculine) (mkPrep [] genitive) ; brother_N2 = mkN2 (mkN "bróðir" "bróður" "bræður" masculine) (mkPrep [] genitive) ;
father_N2 = mkN2 (mkN "faðir" "föður" "feður" masculine) (mkPrep [] genitive) ; father_N2 = mkN2 (mkN "faðir" "föður" "feður" masculine) (mkPrep [] genitive) ;
man_N = mkN "maður" "mann" "menn" masculine ; man_N = mkN "maður" "manns" "menn" masculine ;
husband_N = mkCompoundN "eigin" (man_N) ; husband_N = mkCompoundN "eigin" (man_N) ;
policeman_N = mkCompoundN "lögreglu" (mkN "þjónn" masculine) ; policeman_N = mkCompoundN "lögreglu" (mkN "þjónn" masculine) ;
smoke_N = mkN "reykur" "reykjar" "reykir" masculine; smoke_N = mkN "reykur" "reykjar" "reykir" masculine;

View File

@@ -143,6 +143,7 @@ resource ParadigmsIce = open
} ; } ;
neutrNForms3 : (_,_,_ : Str) -> NForms = \nom,gen,pl -> case <nom,gen,pl> of { neutrNForms3 : (_,_,_ : Str) -> NForms = \nom,gen,pl -> case <nom,gen,pl> of {
<_+"ur", _+"nns", _+"nn"> => dMaður nom gen pl ;
_ => dBarn nom pl _ => dBarn nom pl
} ; } ;
@@ -294,6 +295,7 @@ resource ParadigmsIce = open
weakPosit : (_,_ : Str) -> AForms = \mas,fem -> case <mas,fem> of { weakPosit : (_,_ : Str) -> AForms = \mas,fem -> case <mas,fem> of {
<front + "ur",_ + "ur"> => dPositW (front + "r") ; <front + "ur",_ + "ur"> => dPositW (front + "r") ;
<stem + "ur",_> => dPositW stem ; <stem + "ur",_> => dPositW stem ;
<#consonant* + "ei" + ("ll" | "nn"),_> => dSeinn mas ;
<front + "ill",_> => dPositW (í2i front + "l") ; <front + "ill",_> => dPositW (í2i front + "l") ;
<front + "inn",_> => dPositW (front + "n") ; <front + "inn",_> => dPositW (front + "n") ;
_ => dPositW fem _ => dPositW fem
@@ -303,27 +305,25 @@ resource ParadigmsIce = open
front + "ni" => dI (init s) ; front + "ni" => dI (init s) ;
stem + "ari" => dAri stem ; stem + "ari" => dAri stem ;
stem + "ri" => dRi stem ; stem + "ri" => dRi stem ;
front + mid@("leg" | "ug") + "ur" => dRi (front + mid) ; front + mid@("leg"|"ug") + "ur" => dRi (front + mid) ;
stem + "ur" => dAri stem ; stem + "ur" => dAri stem ;
#consonant* + "ei" + ("ll" | "nn") => dSeinn s ;
front + "inn" => dAri (front + "n") ; front + "inn" => dAri (front + "n") ;
_ + ("ll" | "nn") => dI s _ + ("ll" | "nn") => dI s
} ; } ;
compar2 : (_,_ : Str) -> AForms = \mas,fem -> case <mas,fem> of { compar2 : (_,_ : Str) -> AForms = \mas,fem -> case <mas,fem> of {
<front + "ur",_ + "ur"> => dAri (front + "r") ; <front + "ur",_ + "ur"> => dAri (front + "r") ;
<front + mid@("leg" | "ug") + "ur",_> => dRi (front + mid) ; <front + mid@("leg"|"ug") + "ur",_> => dRi (front + mid) ;
<stem + "ur", _> => dAri stem ; <stem + "ur", _> => dAri stem ;
<front + "inn",_> => dAri (front + "n") ; <_ + ("ll" | "nn"),_> => compar1 mas ;
<_ + ("ll" | "nn"),_> => dI mas ; <_ + "r", _ + ("á"|"ó"|"ú"|"ý"|"æ")> => dRi fem ;
<_ + "r", _ + ("á" | "ó" | "ú" | "ý" | "æ")> => dRi fem ; <_,_ + ("r"|"s"|(#consonant + "n"))> => dAri fem
<_,_ + ("r" | "s" | (#consonant + "n"))> => dAri fem
} ; } ;
weakSuperl : (_,_ : Str) -> AForms = \mas,fem -> case <mas,fem> of { weakSuperl : (_,_ : Str) -> AForms = \mas,fem -> case <mas,fem> of {
<front + "ni",_> => dSuperlW (front + "nst") (front + "nust") ; <front + "ni",_> => dSuperlW (front + "nst") (front + "nust") ;
<stem + "ari",_> => dSuperlW (stem + "ast") (stem + "ust") ; <stem + "ari",_> => dSuperlW (stem + "ast") (stem + "ust") ;
<stem + "rri",_> => dSuperlW (stem + "st") (stem + "st") ;
<stem + "t" + "ri",_> => dSuperlW (stem + "st") (stem + "st") ;
<stem + "ri",_> => dSuperlW (stem + "st") (stem + "st") ; <stem + "ri",_> => dSuperlW (stem + "st") (stem + "st") ;
<frontm + "ur",frontf + "ur"> => dSuperlW (frontm + "rast") (frontf + "rust") ; <frontm + "ur",frontf + "ur"> => dSuperlW (frontm + "rast") (frontf + "rust") ;
<front + "ur",_> => dSuperlW (front + "ast") (front + "ust") ; <front + "ur",_> => dSuperlW (front + "ast") (front + "ust") ;
@@ -332,14 +332,15 @@ resource ParadigmsIce = open
_ => dSuperlW (fem + "ast") (fem + "ust") _ => dSuperlW (fem + "ast") (fem + "ust")
} ; } ;
strongSuperl1 : Str -> AForms = \s -> case s of { strongSuperl1 : Str -> AForms = \t -> case t of {
front + "ni" => dFalastur (front + "nstur") (front + "nst") ; front + "ni" => dFalastur (front + "nstur") (front + "nst") ;
stem + "ari" => dFalastur (stem + "astur") (stem + "ust") ; stem + "ari" => dFalastur (stem + "astur") (stem + "ust") ;
stem + "rri" => dFalastur (stem + "stur") (stem + "st") ;
stem + "ri" => dFalastur (stem + "stur") (stem + "st") ; stem + "ri" => dFalastur (stem + "stur") (stem + "st") ;
front + "inn" => dFalastur (front + "nastur") ((a2ö front) + "nust") ; stem@(_ + "ei") +
stem + "ur" => dFalastur (stem + "astur") ((a2ö stem) + "ust") ; end@("ll" | "nn") => dFalastur (stem + init end + "astur") (a2ö stem + init end + "ust") ;
front + end@("ll" | "nn") => dFalastur (front + (init end) + "astur") ((a2ö front) + (init end) + "ust") stem + "inn" => dFalastur (stem + "nastur") (a2ö stem + "nust") ;
stem + end@("ll"|"nn") => dFalastur (stem + init end + "astur") (a2ö stem + init end + "ust") ;
stem + "ur" => dFalastur (stem + "astur") ((a2ö stem) + "ust")
} ; } ;
strongSuperl2 : (_,_ : Str) -> AForms = \mas,fem -> case <mas,fem> of { strongSuperl2 : (_,_ : Str) -> AForms = \mas,fem -> case <mas,fem> of {
@@ -347,7 +348,7 @@ resource ParadigmsIce = open
<frontm + "ur", _> => dFalastur (frontm + "astur") (fem + "ust") ; <frontm + "ur", _> => dFalastur (frontm + "astur") (fem + "ust") ;
<_, _ + ("á" | "ú" | "ó")> => dFalastur (fem + "astur") (fem + "ust") ; <_, _ + ("á" | "ú" | "ó")> => dFalastur (fem + "astur") (fem + "ust") ;
<_, _ + ("ý" | "æ")> => dFalastur (fem + "jastur") (fem + "just") ; <_, _ + ("ý" | "æ")> => dFalastur (fem + "jastur") (fem + "just") ;
<front + end@("ll" | "nn"),_> => dFalastur (front + (init end) + "astur") ((a2ö front) + (init end) + "ust") ; <_+("ll" | "nn"), _> => strongSuperl1 mas ;
<_,_ + ("r" | "s" | (#consonant + "n"))> => dFalastur (fem + "astur") (fem + "ust") <_,_ + ("r" | "s" | (#consonant + "n"))> => dFalastur (fem + "astur") (fem + "ust")
} ; } ;