more updates from Codex

This commit is contained in:
Krasimir Angelov
2026-09-18 10:30:53 +02:00
parent 4bf10ff93a
commit bb5372b159
17 changed files with 626 additions and 170 deletions
+8 -8
View File
@@ -2,31 +2,31 @@ concrete AdjectiveFao of Adjective = CatFao ** open ResFao in {
lin lin
PositA a = a ; PositA a = a ;
ComparA a np = { ComparA a np = {
s = \\g,n,c => "meir" ++ a.s ! g ! n ! c ++ "enn" ++ np.s ! Nom s = \\af,g,n,c => "meir" ++ a.s ! af ! g ! n ! c ++ "enn" ++ np.s ! Nom
} ; } ;
ComplA2 a np = { ComplA2 a np = {
s = \\g,n,c => a.s ! g ! n ! c ++ a.c2.s ++ np.s ! a.c2.c s = \\af,g,n,c => a.s ! af ! g ! n ! c ++ a.c2.s ++ np.s ! a.c2.c
} ; } ;
ReflA2 a = { ReflA2 a = {
s = \\g,n,c => a.s ! g ! n ! c ++ a.c2.s ++ "seg" s = \\af,g,n,c => a.s ! af ! g ! n ! c ++ a.c2.s ++ "seg"
} ; } ;
UseA2 a = a ; UseA2 a = a ;
UseComparA a = { UseComparA a = {
s = \\g,n,c => "meir" ++ a.s ! g ! n ! c s = \\af,g,n,c => "meir" ++ a.s ! af ! g ! n ! c
} ; } ;
CAdvAP cadv ap np = { CAdvAP cadv ap np = {
s = \\g,n,c => cadv.s ++ ap.s ! g ! n ! c ++ cadv.p ++ np.s ! Nom s = \\af,g,n,c => cadv.s ++ ap.s ! af ! g ! n ! c ++ cadv.p ++ np.s ! Nom
} ; } ;
AdjOrd ord = { AdjOrd ord = {
s = ord.s s = ord.s
} ; } ;
SentAP ap sc = { SentAP ap sc = {
s = \\g,n,c => ap.s ! g ! n ! c ++ sc.s s = \\af,g,n,c => ap.s ! af ! g ! n ! c ++ sc.s
} ; } ;
AdAP ada ap = { AdAP ada ap = {
s = \\g,n,c => ada.s ++ ap.s ! g ! n ! c s = \\af,g,n,c => ada.s ++ ap.s ! af ! g ! n ! c
} ; } ;
AdvAP ap adv = { AdvAP ap adv = {
s = \\g,n,c => ap.s ! g ! n ! c ++ adv.s s = \\af,g,n,c => ap.s ! af ! g ! n ! c ++ adv.s
} ; } ;
} }
+4 -4
View File
@@ -1,11 +1,11 @@
concrete AdverbFao of Adverb = CatFao ** open Prelude,ResFao in { concrete AdverbFao of Adverb = CatFao ** open Prelude,ResFao in {
lin lin
PositAdvAdj a = {s = a.s ! Neuter ! Sg ! Nom} ; PositAdvAdj a = {s = a.s ! Strong ! Neuter ! Sg ! Nom} ;
PrepNP p np = {s = p.s ++ np.s ! p.c} ; PrepNP p np = {s = p.s ++ np.s ! p.c} ;
ComparAdvAdj cadv a np = {s = cadv.s ++ a.s ! Neuter ! Sg ! Nom ++ cadv.p ++ np.s ! Nom} ; ComparAdvAdj cadv a np = {s = cadv.s ++ a.s ! Strong ! Neuter ! Sg ! Nom ++ cadv.p ++ np.s ! Nom} ;
ComparAdvAdjS cadv a s = {s = cadv.s ++ a.s ! Neuter ! Sg ! Nom ++ cadv.p ++ s.s} ; ComparAdvAdjS cadv a s = {s = cadv.s ++ a.s ! Strong ! Neuter ! Sg ! Nom ++ cadv.p ++ s.s} ;
AdAdv ada adv = {s = ada.s ++ adv.s} ; AdAdv ada adv = {s = ada.s ++ adv.s} ;
PositAdAAdj a = {s = a.s ! Neuter ! Sg ! Nom} ; PositAdAAdj a = {s = a.s ! Strong ! Neuter ! Sg ! Nom} ;
SubjS subj s = {s = subj.s ++ s.s} ; SubjS subj s = {s = subj.s ++ s.s} ;
AdnCAdv cadv = {s = cadv.s} ; AdnCAdv cadv = {s = cadv.s} ;
} }
+14 -6
View File
@@ -18,9 +18,17 @@ lincat SSlash = {s : Str ; c2 : Compl} ;
lincat Imp = {s : Polarity => Number => Str} ; lincat Imp = {s : Polarity => Number => Str} ;
lincat Prep = Compl ; lincat Prep = Compl ;
lincat CN = CommonNoun ; lincat CN = CommonNoun ;
lincat NP, Pron = {s : Case => Str ; g : Gender ; n : Number ; p : Person} ; lincat NP = {s : Case => Str ; g : Gender ; n : Number ; p : Person} ;
lincat Pron = {
s : Case => Str ;
poss : Gender => Number => Case => Str ;
g : Gender ; n : Number ; p : Person
} ;
lincat QS = {s : Str} ; lincat QS = {s : Str} ;
lincat QCl = {s : Tense => Polarity => Str} ; lincat QCl = {
s,anterior : Tense => Polarity => Str ;
future,conditional : Polarity => Str
} ;
lincat IP = {s : Str ; n : Number} ; lincat IP = {s : Str ; n : Number} ;
lincat IComp = {s : Str} ; lincat IComp = {s : Str} ;
lincat IDet = {s : Str ; n : Number} ; lincat IDet = {s : Str ; n : Number} ;
@@ -29,14 +37,14 @@ lincat RCl = {s : Tense => Polarity => Gender => PersNum => Str} ;
lincat RS = {s : Gender => PersNum => Str} ; lincat RS = {s : Gender => PersNum => Str} ;
lincat RP = {s : Str} ; lincat RP = {s : Str} ;
lincat AP = AdjPhrase ; lincat AP = AdjPhrase ;
lincat Det = {s : Gender => Case => Str ; n : Number ; sp : Species} ; lincat Det = {s : Gender => Case => Str ; n : Number ; sp : Species ; d : Declension} ;
lincat Predet = {s : Str} ; lincat Predet = {s : Str} ;
lincat Quant = {s : Bool => Gender => Number => Case => Str; sp : Species} ; lincat Quant = {s : Bool => Gender => Number => Case => Str; sp : Species ; d : Declension} ;
lincat Num = {s : Gender => Case => Str ; n : Number ; hasCard : Bool} ; lincat Num = {s : Gender => Case => Str ; n : Number ; hasCard : Bool} ;
lincat Card = {s : Gender => Case => Str ; n : Number} ; lincat Card = {s : Gender => Case => Str ; n : Number} ;
lincat ACard = {s : Str} ; lincat ACard = {s : Str} ;
lincat Ord = {s : Gender => Number => Case => Str} ; lincat Ord = {s : Declension => Gender => Number => Case => Str} ;
lincat DAP = {s : Gender => Case => Str ; n : Number ; sp : Species} ; lincat DAP = {s : Gender => Case => Str ; n : Number ; sp : Species ; d : Declension} ;
lincat S = {s : Str} ; lincat S = {s : Str} ;
lincat Numeral = { lincat Numeral = {
s : CardOrd => Gender => Case => Str ; s : CardOrd => Gender => Case => Str ;
+20 -10
View File
@@ -5,9 +5,9 @@ lincat
[RS] = {s1,s2 : Gender => PersNum => Str} ; [RS] = {s1,s2 : Gender => PersNum => Str} ;
[Adv], [AdV], [IAdv] = {s1,s2 : Str} ; [Adv], [AdV], [IAdv] = {s1,s2 : Str} ;
[NP] = {s1,s2 : Case => Str ; g : Gender ; n : Number ; p : Person} ; [NP] = {s1,s2 : Case => Str ; g : Gender ; n : Number ; p : Person} ;
[AP] = {s1,s2 : Gender => Number => Case => Str} ; [AP] = {s1,s2 : Declension => Gender => Number => Case => Str} ;
[CN] = {s1,s2 : Species => Number => Case => Str ; g : Gender} ; [CN] = {s1,s2 : Species => Number => Case => Str ; p1,p2 : Number => Case => Str ; g : Gender} ;
[DAP] = {s1,s2 : Gender => Case => Str ; n : Number ; sp : Species} ; [DAP] = {s1,s2 : Gender => Case => Str ; n : Number ; sp : Species ; d : Declension} ;
lin lin
ConjS conj xs = {s = xs.s1 ++ conj.s ++ xs.s2} ; ConjS conj xs = {s = xs.s1 ++ conj.s ++ xs.s2} ;
@@ -21,15 +21,19 @@ lin
n = Pl ; n = Pl ;
p = P3 p = P3
} ; } ;
ConjAP conj xs = {s = \\g,n,c => xs.s1 ! g ! n ! c ++ conj.s ++ xs.s2 ! g ! n ! c} ; ConjAP conj xs = {
s = \\af,g,n,c => xs.s1 ! af ! g ! n ! c ++ conj.s ++ xs.s2 ! af ! g ! n ! c
} ;
ConjCN conj xs = { ConjCN conj xs = {
s = \\sp,n,c => xs.s1 ! sp ! n ! c ++ conj.s ++ xs.s2 ! sp ! n ! c ; s = \\sp,n,c => xs.s1 ! sp ! n ! c ++ conj.s ++ xs.s2 ! sp ! n ! c ;
p = \\n,c => xs.p1 ! n ! c ++ conj.s ++ xs.p2 ! n ! c ;
g = xs.g g = xs.g
} ; } ;
ConjDet conj xs = { ConjDet conj xs = {
s = \\g,c => xs.s1 ! g ! c ++ conj.s ++ xs.s2 ! g ! c ; s = \\g,c => xs.s1 ! g ! c ++ conj.s ++ xs.s2 ! g ! c ;
n = xs.n ; n = xs.n ;
sp = xs.sp sp = xs.sp ;
d = xs.d
} ; } ;
BaseS x y = {s1 = x.s ; s2 = y.s} ; BaseS x y = {s1 = x.s ; s2 = y.s} ;
@@ -45,9 +49,15 @@ lin
BaseNP x y = {s1 = x.s ; s2 = y.s ; g = x.g ; n = Pl ; p = P3} ; BaseNP x y = {s1 = x.s ; s2 = y.s ; g = x.g ; n = Pl ; p = P3} ;
ConsNP x xs = {s1 = \\c => x.s ! c ++ "," ++ xs.s1 ! c ; s2 = xs.s2 ; g = xs.g ; n = Pl ; p = P3} ; ConsNP x xs = {s1 = \\c => x.s ! c ++ "," ++ xs.s1 ! c ; s2 = xs.s2 ; g = xs.g ; n = Pl ; p = P3} ;
BaseAP x y = {s1 = x.s ; s2 = y.s} ; BaseAP x y = {s1 = x.s ; s2 = y.s} ;
ConsAP x xs = {s1 = \\g,n,c => x.s ! g ! n ! c ++ "," ++ xs.s1 ! g ! n ! c ; s2 = xs.s2} ; ConsAP x xs = {
BaseCN x y = {s1 = x.s ; s2 = y.s ; g = x.g} ; s1 = \\af,g,n,c => x.s ! af ! g ! n ! c ++ "," ++ xs.s1 ! af ! g ! n ! c ;
ConsCN x xs = {s1 = \\sp,n,c => x.s ! sp ! n ! c ++ "," ++ xs.s1 ! sp ! n ! c ; s2 = xs.s2 ; g = xs.g} ; s2 = xs.s2
BaseDAP x y = {s1 = x.s ; s2 = y.s ; n = y.n ; sp = y.sp} ; } ;
ConsDAP x xs = {s1 = \\g,c => x.s ! g ! c ++ "," ++ xs.s1 ! g ! c ; s2 = xs.s2 ; n = xs.n ; sp = xs.sp} ; BaseCN x y = {s1 = x.s ; s2 = y.s ; p1 = x.p ; p2 = y.p ; g = x.g} ;
ConsCN x xs = {
s1 = \\sp,n,c => x.s ! sp ! n ! c ++ "," ++ xs.s1 ! sp ! n ! c ; s2 = xs.s2 ;
p1 = \\n,c => x.p ! n ! c ++ "," ++ xs.p1 ! n ! c ; p2 = xs.p2 ; g = xs.g
} ;
BaseDAP x y = {s1 = x.s ; s2 = y.s ; n = y.n ; sp = y.sp ; d = y.d} ;
ConsDAP x xs = {s1 = \\g,c => x.s ! g ! c ++ "," ++ xs.s1 ! g ! c ; s2 = xs.s2 ; n = xs.n ; sp = xs.sp ; d = xs.d} ;
} }
+42 -9
View File
@@ -14,34 +14,64 @@ lin
have_name_Cl np name = { have_name_Cl np name = {
Converb = np.s ! Nom ++ "eitur" ++ name.s ! Nom ; Converb = np.s ! Nom ++ "eitur" ++ name.s ! Nom ;
Indicative = \\t,pol => np.s ! Nom ++ "eitur" ++ negStr pol ++ name.s ! Nom ; Indicative = \\t,pol => np.s ! Nom ++ "eitur" ++ negStr pol ++ name.s ! Nom ;
Interrogative = \\t,pol => "eitur" ++ np.s ! Nom ++ negStr pol ++ name.s ! Nom ;
Future = \\pol => np.s ! Nom ++ futureAux ! persNum np.n np.p ++ negStr pol ++ "eita" ++ name.s ! Nom ;
FutureInterrogative = \\pol => futureAux ! persNum np.n np.p ++ np.s ! Nom ++ negStr pol ++ "eita" ++ name.s ! Nom ;
Conditional = \\pol => np.s ! Nom ++ conditionalAux ! persNum np.n np.p ++ negStr pol ++ "eita" ++ name.s ! Nom ;
ConditionalInterrogative = \\pol => conditionalAux ! persNum np.n np.p ++ np.s ! Nom ++ negStr pol ++ "eita" ++ name.s ! Nom ;
Anterior = \\t,pol => np.s ! Nom ++ perfectAux ! t ! persNum np.n np.p ++ negStr pol ++ "itið" ++ name.s ! Nom ;
AnteriorInterrogative = \\t,pol => perfectAux ! t ! persNum np.n np.p ++ np.s ! Nom ++ negStr pol ++ "itið" ++ name.s ! Nom ;
Nonfinite = np.s ! Nom ++ "eita" ++ name.s ! Nom ; Nonfinite = np.s ! Nom ++ "eita" ++ name.s ! Nom ;
Participle = \\_ => np.s ! Nom ++ "itið" ++ name.s ! Nom Participle = \\_ => np.s ! Nom ++ "itið" ++ name.s ! Nom
} ; } ;
married_Cl np spouse = { married_Cl np spouse = {
Converb = np.s ! Nom ++ "er giftur við" ++ spouse.s ! Dat ; Converb = np.s ! Nom ++ "er giftur við" ++ spouse.s ! Dat ;
Indicative = \\t,pol => np.s ! Nom ++ copula ! t ! persNum np.n np.p ++ negStr pol ++ "giftur við" ++ spouse.s ! Dat ; Indicative = \\t,pol => np.s ! Nom ++ copula ! t ! persNum np.n np.p ++ negStr pol ++ "giftur við" ++ spouse.s ! Dat ;
Interrogative = \\t,pol => copula ! t ! persNum np.n np.p ++ np.s ! Nom ++ negStr pol ++ "giftur við" ++ spouse.s ! Dat ;
Future = \\pol => np.s ! Nom ++ futureAux ! persNum np.n np.p ++ negStr pol ++ "vera giftur við" ++ spouse.s ! Dat ;
FutureInterrogative = \\pol => futureAux ! persNum np.n np.p ++ np.s ! Nom ++ negStr pol ++ "vera giftur við" ++ spouse.s ! Dat ;
Conditional = \\pol => np.s ! Nom ++ conditionalAux ! persNum np.n np.p ++ negStr pol ++ "vera giftur við" ++ spouse.s ! Dat ;
ConditionalInterrogative = \\pol => conditionalAux ! persNum np.n np.p ++ np.s ! Nom ++ negStr pol ++ "vera giftur við" ++ spouse.s ! Dat ;
Anterior = \\t,pol => np.s ! Nom ++ perfectAux ! t ! persNum np.n np.p ++ negStr pol ++ "verið giftur við" ++ spouse.s ! Dat ;
AnteriorInterrogative = \\t,pol => perfectAux ! t ! persNum np.n np.p ++ np.s ! Nom ++ negStr pol ++ "verið giftur við" ++ spouse.s ! Dat ;
Nonfinite = np.s ! Nom ++ "vera giftur við" ++ spouse.s ! Dat ; Nonfinite = np.s ! Nom ++ "vera giftur við" ++ spouse.s ! Dat ;
Participle = \\_ => np.s ! Nom ++ "verið giftur við" ++ spouse.s ! Dat Participle = \\_ => np.s ! Nom ++ "verið giftur við" ++ spouse.s ! Dat
} ; } ;
what_name_QCl np = { what_name_QCl np = {
s = \\t,pol => "hvat" ++ "eitur" ++ np.s ! Nom s = \\t,pol => "hvat" ++ "eitur" ++ np.s ! Nom ;
anterior = \\t,pol => "hvat" ++ perfectAux ! t ! persNum np.n np.p ++ negStr pol ++ "itið" ++ np.s ! Nom ;
future = \\pol => "hvat" ++ futureAux ! persNum np.n np.p ++ negStr pol ++ "eita" ++ np.s ! Nom ;
conditional = \\pol => "hvat" ++ conditionalAux ! persNum np.n np.p ++ negStr pol ++ "eita" ++ np.s ! Nom
} ; } ;
how_old_QCl np = { how_old_QCl np = {
s = \\t,pol => "hvussu gamal" ++ copula ! t ! persNum np.n np.p ++ negStr pol ++ np.s ! Nom s = \\t,pol => "hvussu gamal" ++ copula ! t ! persNum np.n np.p ++ negStr pol ++ np.s ! Nom ;
anterior = \\t,pol => "hvussu gamal" ++ perfectAux ! t ! persNum np.n np.p ++ negStr pol ++ "verið" ++ np.s ! Nom ;
future = \\pol => "hvussu gamal" ++ futureAux ! persNum np.n np.p ++ negStr pol ++ "vera" ++ np.s ! Nom ;
conditional = \\pol => "hvussu gamal" ++ conditionalAux ! persNum np.n np.p ++ negStr pol ++ "vera" ++ np.s ! Nom
} ; } ;
how_far_QCl np = { how_far_QCl np = {
s = \\t,pol => "hvussu langt burtur" ++ copula ! t ! persNum np.n np.p ++ negStr pol ++ np.s ! Nom s = \\t,pol => "hvussu langt burtur" ++ copula ! t ! persNum np.n np.p ++ negStr pol ++ np.s ! Nom ;
anterior = \\t,pol => "hvussu langt burtur" ++ perfectAux ! t ! persNum np.n np.p ++ negStr pol ++ "verið" ++ np.s ! Nom ;
future = \\pol => "hvussu langt burtur" ++ futureAux ! persNum np.n np.p ++ negStr pol ++ "vera" ++ np.s ! Nom ;
conditional = \\pol => "hvussu langt burtur" ++ conditionalAux ! persNum np.n np.p ++ negStr pol ++ "vera" ++ np.s ! Nom
} ; } ;
weather_adjCl ap = { weather_adjCl ap = {
Converb = "tað er" ++ ap.s ! Neuter ! Sg ! Nom ; Converb = "tað er" ++ ap.s ! Strong ! Neuter ! Sg ! Nom ;
Indicative = \\t,pol => "tað" ++ copula ! t ! PSg P3 ++ negStr pol ++ ap.s ! Neuter ! Sg ! Nom ; Indicative = \\t,pol => "tað" ++ copula ! t ! PSg P3 ++ negStr pol ++ ap.s ! Strong ! Neuter ! Sg ! Nom ;
Nonfinite = "vera" ++ ap.s ! Neuter ! Sg ! Nom ; Interrogative = \\t,pol => copula ! t ! PSg P3 ++ "tað" ++ negStr pol ++ ap.s ! Strong ! Neuter ! Sg ! Nom ;
Participle = \\_ => "ver" ++ ap.s ! Neuter ! Sg ! Nom Future = \\pol => "tað" ++ futureAux ! PSg P3 ++ negStr pol ++ "vera" ++ ap.s ! Strong ! Neuter ! Sg ! Nom ;
FutureInterrogative = \\pol => futureAux ! PSg P3 ++ "tað" ++ negStr pol ++ "vera" ++ ap.s ! Strong ! Neuter ! Sg ! Nom ;
Conditional = \\pol => "tað" ++ conditionalAux ! PSg P3 ++ negStr pol ++ "vera" ++ ap.s ! Strong ! Neuter ! Sg ! Nom ;
ConditionalInterrogative = \\pol => conditionalAux ! PSg P3 ++ "tað" ++ negStr pol ++ "vera" ++ ap.s ! Strong ! Neuter ! Sg ! Nom ;
Anterior = \\t,pol => "tað" ++ perfectAux ! t ! PSg P3 ++ negStr pol ++ "verið" ++ ap.s ! Strong ! Neuter ! Sg ! Nom ;
AnteriorInterrogative = \\t,pol => perfectAux ! t ! PSg P3 ++ "tað" ++ negStr pol ++ "verið" ++ ap.s ! Strong ! Neuter ! Sg ! Nom ;
Nonfinite = "vera" ++ ap.s ! Strong ! Neuter ! Sg ! Nom ;
Participle = \\_ => "verið" ++ ap.s ! Strong ! Neuter ! Sg ! Nom
} ; } ;
is_right_VP = beVP "rættur" ; is_right_VP = beVP "rættur" ;
is_wrong_VP = beVP "skeivur" ; is_wrong_VP = beVP "skeivur" ;
n_units_AP card cn a = { n_units_AP card cn a = {
s = \\g,n,c => card.s ! cn.g ! Nom ++ cn.s ! Indef ! Pl ! Nom ++ a.s ! g ! n ! c s = \\af,g,n,c => card.s ! cn.g ! Nom ++ cn.s ! Indef ! Pl ! Nom ++ a.s ! af ! g ! n ! c
} ; } ;
n_units_of_NP card cn np = mkNP (card.s ! cn.g ! Nom ++ cn.s ! Indef ! Pl ! Nom ++ "av" ++ np.s ! Dat) np.g np.n np.p ; n_units_of_NP card cn np = mkNP (card.s ! cn.g ! Nom ++ cn.s ! Indef ! Pl ! Nom ++ "av" ++ np.s ! Dat) np.g np.n np.p ;
n_unit_CN card unit cn = mkCN (card.s ! unit.g ! Nom ++ unit.s ! Indef ! Sg ! Nom ++ cn.s ! Indef ! Sg ! Nom) cn.g ; n_unit_CN card unit cn = mkCN (card.s ! unit.g ! Nom ++ unit.s ! Indef ! Sg ! Nom ++ cn.s ! Indef ! Sg ! Nom) cn.g ;
@@ -162,8 +192,11 @@ lin
oper oper
beVP : Str -> VerbPhrase = \ap -> { beVP : Str -> VerbPhrase = \ap -> {
Converb = copula ! Pres ! PPl ++ ap ; Converb = "verið" ++ ap ;
Imperative = \\n => case n of {Sg => "ver" ; Pl => "verið"} ++ ap ;
Indicative = \\t,pol,_,p => copula ! t ! p ++ negStr pol ++ ap ; Indicative = \\t,pol,_,p => copula ! t ! p ++ negStr pol ++ ap ;
Finite = copula ;
Remainder = \\pol,_,_ => negStr pol ++ ap ;
Nonfinite = "vera" ++ ap ; Nonfinite = "vera" ++ ap ;
Participle = \\_ => "verið" ++ ap Participle = \\_ => "verið" ++ ap
} ; } ;
+8 -8
View File
@@ -36,15 +36,15 @@ lin
s2=frameTable ( s2=frameTable (
tr (intagAttr "th" "colspan=\"2\"" "" ++ th "Masc" ++ th "Fem" ++ th "Neuter") ++ tr (intagAttr "th" "colspan=\"2\"" "" ++ th "Masc" ++ th "Fem" ++ th "Neuter") ++
tr (intagAttr "th" "rowspan=\"4\"" "Sg" ++ tr (intagAttr "th" "rowspan=\"4\"" "Sg" ++
th "Nom" ++ td (x.s ! Masc ! Sg ! Nom) ++ td (x.s ! Fem ! Sg ! Nom) ++ td (x.s ! Neuter ! Sg ! Nom)) ++ th "Nom" ++ td (x.s ! Strong ! Masc ! Sg ! Nom) ++ td (x.s ! Strong ! Fem ! Sg ! Nom) ++ td (x.s ! Strong ! Neuter ! Sg ! Nom)) ++
tr (th "Acc" ++ td (x.s ! Masc ! Sg ! Acc) ++ td (x.s ! Fem ! Sg ! Acc) ++ td (x.s ! Neuter ! Sg ! Acc)) ++ tr (th "Acc" ++ td (x.s ! Strong ! Masc ! Sg ! Acc) ++ td (x.s ! Strong ! Fem ! Sg ! Acc) ++ td (x.s ! Strong ! Neuter ! Sg ! Acc)) ++
tr (th "Dat" ++ td (x.s ! Masc ! Sg ! Dat) ++ td (x.s ! Fem ! Sg ! Dat) ++ td (x.s ! Neuter ! Sg ! Dat)) ++ tr (th "Dat" ++ td (x.s ! Strong ! Masc ! Sg ! Dat) ++ td (x.s ! Strong ! Fem ! Sg ! Dat) ++ td (x.s ! Strong ! Neuter ! Sg ! Dat)) ++
tr (th "Gen" ++ td (x.s ! Masc ! Sg ! Gen) ++ td (x.s ! Fem ! Sg ! Gen) ++ td (x.s ! Neuter ! Sg ! Gen)) ++ tr (th "Gen" ++ td (x.s ! Strong ! Masc ! Sg ! Gen) ++ td (x.s ! Strong ! Fem ! Sg ! Gen) ++ td (x.s ! Strong ! Neuter ! Sg ! Gen)) ++
tr (intagAttr "th" "rowspan=\"4\"" "Pl" ++ tr (intagAttr "th" "rowspan=\"4\"" "Pl" ++
th "Nom" ++ td (x.s ! Masc ! Pl ! Nom) ++ td (x.s ! Fem ! Pl ! Nom) ++ td (x.s ! Neuter ! Pl ! Nom)) ++ th "Nom" ++ td (x.s ! Strong ! Masc ! Pl ! Nom) ++ td (x.s ! Strong ! Fem ! Pl ! Nom) ++ td (x.s ! Strong ! Neuter ! Pl ! Nom)) ++
tr (th "Acc" ++ td (x.s ! Masc ! Pl ! Acc) ++ td (x.s ! Fem ! Pl ! Acc) ++ td (x.s ! Neuter ! Pl ! Acc)) ++ tr (th "Acc" ++ td (x.s ! Strong ! Masc ! Pl ! Acc) ++ td (x.s ! Strong ! Fem ! Pl ! Acc) ++ td (x.s ! Strong ! Neuter ! Pl ! Acc)) ++
tr (th "Dat" ++ td (x.s ! Masc ! Pl ! Dat) ++ td (x.s ! Fem ! Pl ! Dat) ++ td (x.s ! Neuter ! Pl ! Dat)) ++ tr (th "Dat" ++ td (x.s ! Strong ! Masc ! Pl ! Dat) ++ td (x.s ! Strong ! Fem ! Pl ! Dat) ++ td (x.s ! Strong ! Neuter ! Pl ! Dat)) ++
tr (th "Gen" ++ td (x.s ! Masc ! Pl ! Gen) ++ td (x.s ! Fem ! Pl ! Gen) ++ td (x.s ! Neuter ! Pl ! Gen))) ; tr (th "Gen" ++ td (x.s ! Strong ! Masc ! Pl ! Gen) ++ td (x.s ! Strong ! Fem ! Pl ! Gen) ++ td (x.s ! Strong ! Neuter ! Pl ! Gen))) ;
s3=[] s3=[]
} ; } ;
lin lin
+54 -2
View File
@@ -4,48 +4,99 @@ lin
ImpersCl vp = { ImpersCl vp = {
Converb = "tað" ++ vp.Converb ; Converb = "tað" ++ vp.Converb ;
Indicative = \\t,pol => "tað" ++ vp.Indicative ! t ! pol ! Neuter ! PSg P3 ; Indicative = \\t,pol => "tað" ++ vp.Indicative ! t ! pol ! Neuter ! PSg P3 ;
Interrogative = \\t,pol => vp.Finite ! t ! PSg P3 ++ "tað" ++ vp.Remainder ! pol ! Neuter ! PSg P3 ;
Future = \\pol => "tað" ++ futureAux ! PSg P3 ++ negStr pol ++ vp.Nonfinite ;
FutureInterrogative = \\pol => futureAux ! PSg P3 ++ "tað" ++ negStr pol ++ vp.Nonfinite ;
Conditional = \\pol => "tað" ++ conditionalAux ! PSg P3 ++ negStr pol ++ vp.Nonfinite ;
ConditionalInterrogative = \\pol => conditionalAux ! PSg P3 ++ "tað" ++ negStr pol ++ vp.Nonfinite ;
Anterior = \\t,pol => "tað" ++ perfectAux ! t ! PSg P3 ++ negStr pol ++ vp.Converb ;
AnteriorInterrogative = \\t,pol => perfectAux ! t ! PSg P3 ++ "tað" ++ negStr pol ++ vp.Converb ;
Nonfinite = "tað" ++ vp.Nonfinite ; Nonfinite = "tað" ++ vp.Nonfinite ;
Participle = \\t => "tað" ++ vp.Participle ! t Participle = \\t => "tað" ++ vp.Participle ! t
} ; } ;
GenericCl vp = { GenericCl vp = {
Converb = "mann" ++ vp.Converb ; Converb = "mann" ++ vp.Converb ;
Indicative = \\t,pol => "mann" ++ vp.Indicative ! t ! pol ! Masc ! PSg P3 ; Indicative = \\t,pol => "mann" ++ vp.Indicative ! t ! pol ! Masc ! PSg P3 ;
Interrogative = \\t,pol => vp.Finite ! t ! PSg P3 ++ "mann" ++ vp.Remainder ! pol ! Masc ! PSg P3 ;
Future = \\pol => "mann" ++ futureAux ! PSg P3 ++ negStr pol ++ vp.Nonfinite ;
FutureInterrogative = \\pol => futureAux ! PSg P3 ++ "mann" ++ negStr pol ++ vp.Nonfinite ;
Conditional = \\pol => "mann" ++ conditionalAux ! PSg P3 ++ negStr pol ++ vp.Nonfinite ;
ConditionalInterrogative = \\pol => conditionalAux ! PSg P3 ++ "mann" ++ negStr pol ++ vp.Nonfinite ;
Anterior = \\t,pol => "mann" ++ perfectAux ! t ! PSg P3 ++ negStr pol ++ vp.Converb ;
AnteriorInterrogative = \\t,pol => perfectAux ! t ! PSg P3 ++ "mann" ++ negStr pol ++ vp.Converb ;
Nonfinite = "mann" ++ vp.Nonfinite ; Nonfinite = "mann" ++ vp.Nonfinite ;
Participle = \\t => "mann" ++ vp.Participle ! t Participle = \\t => "mann" ++ vp.Participle ! t
} ; } ;
CleftNP np rs = { CleftNP np rs = {
Converb = "tað er" ++ np.s ! Nom ++ rs.s ! np.g ! persNum np.n np.p ; Converb = "tað er" ++ np.s ! Nom ++ rs.s ! np.g ! persNum np.n np.p ;
Indicative = \\t,pol => "tað" ++ copula ! t ! PSg P3 ++ negStr pol ++ np.s ! Nom ++ rs.s ! np.g ! persNum np.n np.p ; Indicative = \\t,pol => "tað" ++ copula ! t ! PSg P3 ++ negStr pol ++ np.s ! Nom ++ rs.s ! np.g ! persNum np.n np.p ;
Interrogative = \\t,pol => copula ! t ! PSg P3 ++ "tað" ++ negStr pol ++ np.s ! Nom ++ rs.s ! np.g ! persNum np.n np.p ;
Future = \\pol => "tað" ++ futureAux ! PSg P3 ++ negStr pol ++ "vera" ++ np.s ! Nom ++ rs.s ! np.g ! persNum np.n np.p ;
FutureInterrogative = \\pol => futureAux ! PSg P3 ++ "tað" ++ negStr pol ++ "vera" ++ np.s ! Nom ++ rs.s ! np.g ! persNum np.n np.p ;
Conditional = \\pol => "tað" ++ conditionalAux ! PSg P3 ++ negStr pol ++ "vera" ++ np.s ! Nom ++ rs.s ! np.g ! persNum np.n np.p ;
ConditionalInterrogative = \\pol => conditionalAux ! PSg P3 ++ "tað" ++ negStr pol ++ "vera" ++ np.s ! Nom ++ rs.s ! np.g ! persNum np.n np.p ;
Anterior = \\t,pol => "tað" ++ perfectAux ! t ! PSg P3 ++ negStr pol ++ "verið" ++ np.s ! Nom ++ rs.s ! np.g ! persNum np.n np.p ;
AnteriorInterrogative = \\t,pol => perfectAux ! t ! PSg P3 ++ "tað" ++ negStr pol ++ "verið" ++ np.s ! Nom ++ rs.s ! np.g ! persNum np.n np.p ;
Nonfinite = "vera" ++ np.s ! Nom ++ rs.s ! np.g ! persNum np.n np.p ; Nonfinite = "vera" ++ np.s ! Nom ++ rs.s ! np.g ! persNum np.n np.p ;
Participle = \\_ => "verið" ++ np.s ! Nom ++ rs.s ! np.g ! persNum np.n np.p Participle = \\_ => "verið" ++ np.s ! Nom ++ rs.s ! np.g ! persNum np.n np.p
} ; } ;
CleftAdv adv s = { CleftAdv adv s = {
Converb = "tað er" ++ adv.s ++ s.s ; Converb = "tað er" ++ adv.s ++ s.s ;
Indicative = \\t,pol => "tað" ++ copula ! t ! PSg P3 ++ negStr pol ++ adv.s ++ s.s ; Indicative = \\t,pol => "tað" ++ copula ! t ! PSg P3 ++ negStr pol ++ adv.s ++ s.s ;
Interrogative = \\t,pol => copula ! t ! PSg P3 ++ "tað" ++ negStr pol ++ adv.s ++ s.s ;
Future = \\pol => "tað" ++ futureAux ! PSg P3 ++ negStr pol ++ "vera" ++ adv.s ++ s.s ;
FutureInterrogative = \\pol => futureAux ! PSg P3 ++ "tað" ++ negStr pol ++ "vera" ++ adv.s ++ s.s ;
Conditional = \\pol => "tað" ++ conditionalAux ! PSg P3 ++ negStr pol ++ "vera" ++ adv.s ++ s.s ;
ConditionalInterrogative = \\pol => conditionalAux ! PSg P3 ++ "tað" ++ negStr pol ++ "vera" ++ adv.s ++ s.s ;
Anterior = \\t,pol => "tað" ++ perfectAux ! t ! PSg P3 ++ negStr pol ++ "verið" ++ adv.s ++ s.s ;
AnteriorInterrogative = \\t,pol => perfectAux ! t ! PSg P3 ++ "tað" ++ negStr pol ++ "verið" ++ adv.s ++ s.s ;
Nonfinite = "vera" ++ adv.s ++ s.s ; Nonfinite = "vera" ++ adv.s ++ s.s ;
Participle = \\_ => "verið" ++ adv.s ++ s.s Participle = \\_ => "verið" ++ adv.s ++ s.s
} ; } ;
ExistNP np = { ExistNP np = {
Converb = "tað er" ++ np.s ! Nom ; Converb = "tað er" ++ np.s ! Nom ;
Indicative = \\t,pol => "tað" ++ copula ! t ! persNum np.n P3 ++ negStr pol ++ np.s ! Nom ; Indicative = \\t,pol => "tað" ++ copula ! t ! persNum np.n P3 ++ negStr pol ++ np.s ! Nom ;
Interrogative = \\t,pol => copula ! t ! persNum np.n P3 ++ "tað" ++ negStr pol ++ np.s ! Nom ;
Future = \\pol => "tað" ++ futureAux ! PSg P3 ++ negStr pol ++ "vera" ++ np.s ! Nom ;
FutureInterrogative = \\pol => futureAux ! PSg P3 ++ "tað" ++ negStr pol ++ "vera" ++ np.s ! Nom ;
Conditional = \\pol => "tað" ++ conditionalAux ! PSg P3 ++ negStr pol ++ "vera" ++ np.s ! Nom ;
ConditionalInterrogative = \\pol => conditionalAux ! PSg P3 ++ "tað" ++ negStr pol ++ "vera" ++ np.s ! Nom ;
Anterior = \\t,pol => "tað" ++ perfectAux ! t ! PSg P3 ++ negStr pol ++ "verið" ++ np.s ! Nom ;
AnteriorInterrogative = \\t,pol => perfectAux ! t ! PSg P3 ++ "tað" ++ negStr pol ++ "verið" ++ np.s ! Nom ;
Nonfinite = "vera" ++ np.s ! Nom ; Nonfinite = "vera" ++ np.s ! Nom ;
Participle = \\_ => "verið" ++ np.s ! Nom Participle = \\_ => "verið" ++ np.s ! Nom
} ; } ;
ExistIP ip = { ExistIP ip = {
s = \\t,pol => "hvat" ++ copula ! t ! persNum ip.n P3 ++ negStr pol s = \\t,pol => "hvat" ++ copula ! t ! persNum ip.n P3 ++ negStr pol ;
anterior = \\t,pol => "hvat" ++ perfectAux ! t ! persNum ip.n P3 ++ negStr pol ++ "verið" ;
future = \\pol => "hvat" ++ futureAux ! persNum ip.n P3 ++ negStr pol ++ "vera" ;
conditional = \\pol => "hvat" ++ conditionalAux ! persNum ip.n P3 ++ negStr pol ++ "vera"
} ; } ;
ExistNPAdv np adv = { ExistNPAdv np adv = {
Converb = "tað er" ++ np.s ! Nom ++ adv.s ; Converb = "tað er" ++ np.s ! Nom ++ adv.s ;
Indicative = \\t,pol => "tað" ++ copula ! t ! persNum np.n P3 ++ negStr pol ++ np.s ! Nom ++ adv.s ; Indicative = \\t,pol => "tað" ++ copula ! t ! persNum np.n P3 ++ negStr pol ++ np.s ! Nom ++ adv.s ;
Interrogative = \\t,pol => copula ! t ! persNum np.n P3 ++ "tað" ++ negStr pol ++ np.s ! Nom ++ adv.s ;
Future = \\pol => "tað" ++ futureAux ! PSg P3 ++ negStr pol ++ "vera" ++ np.s ! Nom ++ adv.s ;
FutureInterrogative = \\pol => futureAux ! PSg P3 ++ "tað" ++ negStr pol ++ "vera" ++ np.s ! Nom ++ adv.s ;
Conditional = \\pol => "tað" ++ conditionalAux ! PSg P3 ++ negStr pol ++ "vera" ++ np.s ! Nom ++ adv.s ;
ConditionalInterrogative = \\pol => conditionalAux ! PSg P3 ++ "tað" ++ negStr pol ++ "vera" ++ np.s ! Nom ++ adv.s ;
Anterior = \\t,pol => "tað" ++ perfectAux ! t ! PSg P3 ++ negStr pol ++ "verið" ++ np.s ! Nom ++ adv.s ;
AnteriorInterrogative = \\t,pol => perfectAux ! t ! PSg P3 ++ "tað" ++ negStr pol ++ "verið" ++ np.s ! Nom ++ adv.s ;
Nonfinite = "vera" ++ np.s ! Nom ++ adv.s ; Nonfinite = "vera" ++ np.s ! Nom ++ adv.s ;
Participle = \\_ => "verið" ++ np.s ! Nom ++ adv.s Participle = \\_ => "verið" ++ np.s ! Nom ++ adv.s
} ; } ;
ExistIPAdv ip adv = { ExistIPAdv ip adv = {
s = \\t,pol => ip.s ++ copula ! t ! persNum ip.n P3 ++ negStr pol ++ adv.s s = \\t,pol => ip.s ++ copula ! t ! persNum ip.n P3 ++ negStr pol ++ adv.s ;
anterior = \\t,pol => ip.s ++ perfectAux ! t ! persNum ip.n P3 ++ negStr pol ++ "verið" ++ adv.s ;
future = \\pol => ip.s ++ futureAux ! persNum ip.n P3 ++ negStr pol ++ "vera" ++ adv.s ;
conditional = \\pol => ip.s ++ conditionalAux ! persNum ip.n P3 ++ negStr pol ++ "vera" ++ adv.s
} ; } ;
ProgrVP vp = { ProgrVP vp = {
Converb = "vera við at" ++ vp.Nonfinite ; Converb = "vera við at" ++ vp.Nonfinite ;
Imperative = \\n => case n of {Sg => "ver" ; Pl => "verið"} ++ "við at" ++ vp.Nonfinite ;
Indicative = \\t,pol,g,p => copula ! t ! p ++ negStr pol ++ "við at" ++ vp.Nonfinite ; Indicative = \\t,pol,g,p => copula ! t ! p ++ negStr pol ++ "við at" ++ vp.Nonfinite ;
Finite = copula ;
Remainder = \\pol,_,_ => negStr pol ++ "við at" ++ vp.Nonfinite ;
Nonfinite = "vera við at" ++ vp.Nonfinite ; Nonfinite = "vera við at" ++ vp.Nonfinite ;
Participle = \\_ => "verið við at" ++ vp.Nonfinite Participle = \\_ => "verið við at" ++ vp.Nonfinite
} ; } ;
@@ -54,6 +105,7 @@ lin
SelfAdvVP vp = vp ** { SelfAdvVP vp = vp ** {
Converb = vp.Converb ++ "sjálvur" ; Converb = vp.Converb ++ "sjálvur" ;
Indicative = \\t,pol,g,p => vp.Indicative ! t ! pol ! g ! p ++ "sjálvur" ; Indicative = \\t,pol,g,p => vp.Indicative ! t ! pol ! g ! p ++ "sjálvur" ;
Remainder = \\pol,g,p => vp.Remainder ! pol ! g ! p ++ "sjálvur" ;
Nonfinite = vp.Nonfinite ++ "sjálvur" ; Nonfinite = vp.Nonfinite ++ "sjálvur" ;
Participle = \\t => vp.Participle ! t ++ "sjálvur" Participle = \\t => vp.Participle ! t ++ "sjálvur"
} ; } ;
+202 -79
View File
@@ -54,24 +54,24 @@ mkN002 base =
Gen => base_1+"s" Gen => base_1+"s"
} ; } ;
Pl => table { Pl => table {
Nom => base_1+"ð" ; Nom => base_1 ;
Acc => base_1+"ð" ; Acc => base_1 ;
Dat => base_1+"num" ; Dat => base_1+"um" ;
Gen => base_1+"sins" Gen => base_1+"a"
} }
} ; } ;
Def => table { Def => table {
Sg => table { Sg => table {
Nom => nonExist ; Nom => base_1+"ð" ;
Acc => nonExist ; Acc => base_1+"ð" ;
Dat => nonExist ; Dat => base_1+"num" ;
Gen => nonExist Gen => base_1+"sins"
} ; } ;
Pl => table { Pl => table {
Nom => nonExist ; Nom => base_1+"ni" ;
Acc => nonExist ; Acc => base_1+"ni" ;
Dat => nonExist ; Dat => base_1+"unum" ;
Gen => nonExist Gen => base_1+"anna"
} }
} }
} ; } ;
@@ -249,24 +249,24 @@ mkN007 base =
Gen => base_1+"ar" Gen => base_1+"ar"
} ; } ;
Pl => table { Pl => table {
Nom => base_1+"in" ; Nom => base_1+"ir" ;
Acc => base_1+"ina" ; Acc => base_1+"ir" ;
Dat => base_1+"ini" ; Dat => base_1+"um" ;
Gen => base_1+"arinnar" Gen => base_1+"a"
} }
} ; } ;
Def => table { Def => table {
Sg => table { Sg => table {
Nom => nonExist ; Nom => base_1+"in" ;
Acc => nonExist ; Acc => base_1+"ina" ;
Dat => nonExist ; Dat => base_1+"ini" ;
Gen => nonExist Gen => base_1+"arinnar"
} ; } ;
Pl => table { Pl => table {
Nom => nonExist ; Nom => base_1+"irnar" ;
Acc => nonExist ; Acc => base_1+"irnar" ;
Dat => nonExist ; Dat => base_1+"unum" ;
Gen => nonExist Gen => base_1+"anna"
} }
} }
} ; } ;
@@ -288,24 +288,24 @@ mkN008 base =
Gen => base_1+"s" Gen => base_1+"s"
} ; } ;
Pl => table { Pl => table {
Nom => base_1+"ið" ; Nom => base_1 ;
Acc => base_1+"ið" ; Acc => base_1 ;
Dat => base_1+"inum" ; Dat => base_1+"um" ;
Gen => base_1+"sins" Gen => base_1+"a"
} }
} ; } ;
Def => table { Def => table {
Sg => table { Sg => table {
Nom => base_1+"in" ; Nom => base_1+"ið" ;
Acc => base_1+"in" ; Acc => base_1+"ið" ;
Dat => base_1+"inum" ; Dat => base_1+"inum" ;
Gen => base_1+"sins" Gen => base_1+"sins"
} ; } ;
Pl => table { Pl => table {
Nom => nonExist ; Nom => base_1+"ini" ;
Acc => nonExist ; Acc => base_1+"ini" ;
Dat => nonExist ; Dat => base_1+"unum" ;
Gen => nonExist Gen => base_1+"anna"
} }
} }
} ; } ;
@@ -6637,6 +6637,7 @@ mkA001 base =
case base of { case base of {
base_1+"dur" => lin A base_1+"dur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"dur" ; Nom => base_1+"dur" ;
@@ -6679,7 +6680,9 @@ mkA001 base =
Gen => base_1+"da" Gen => base_1+"da"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA001" _ => error "Can't apply paradigm mkA001"
} ; } ;
@@ -6689,6 +6692,7 @@ mkA002 base =
case base of { case base of {
base_1+"a"+base_2@(?+?)+"ur" => lin A base_1+"a"+base_2@(?+?)+"ur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"a"+base_2+"ur" ; Nom => base_1+"a"+base_2+"ur" ;
@@ -6731,7 +6735,9 @@ mkA002 base =
Gen => base_1+"a"+base_2+"a" Gen => base_1+"a"+base_2+"a"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA002" _ => error "Can't apply paradigm mkA002"
} ; } ;
@@ -6741,6 +6747,7 @@ mkA003 base =
case base of { case base of {
base_1+"ur" => lin A base_1+"ur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"ur" ; Nom => base_1+"ur" ;
@@ -6783,7 +6790,9 @@ mkA003 base =
Gen => base_1+"a" Gen => base_1+"a"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA003" _ => error "Can't apply paradigm mkA003"
} ; } ;
@@ -6793,6 +6802,7 @@ mkA004 base =
case base of { case base of {
base_1+"a"+base_2@?+"u"+base_3@? => lin A base_1+"a"+base_2@?+"u"+base_3@? => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"a"+base_2+"u"+base_3 ; Nom => base_1+"a"+base_2+"u"+base_3 ;
@@ -6835,7 +6845,9 @@ mkA004 base =
Gen => base_1+"a"+base_2+base_3+"a" Gen => base_1+"a"+base_2+base_3+"a"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA004" _ => error "Can't apply paradigm mkA004"
} ; } ;
@@ -6845,6 +6857,7 @@ mkA005 base =
case base of { case base of {
"a"+base_1+"lur" => lin A "a"+base_1+"lur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => "a"+base_1+"lur" ; Nom => "a"+base_1+"lur" ;
@@ -6887,7 +6900,9 @@ mkA005 base =
Gen => "a"+base_1+"la" Gen => "a"+base_1+"la"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA005" _ => error "Can't apply paradigm mkA005"
} ; } ;
@@ -6897,6 +6912,7 @@ mkA006 base =
case base of { case base of {
base_1+"nur" => lin A base_1+"nur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"nur" ; Nom => base_1+"nur" ;
@@ -6939,7 +6955,9 @@ mkA006 base =
Gen => base_1+"na" Gen => base_1+"na"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA006" _ => error "Can't apply paradigm mkA006"
} ; } ;
@@ -6949,6 +6967,7 @@ mkA007 base =
case base of { case base of {
base_1+"ur" => lin A base_1+"ur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"ur" ; Nom => base_1+"ur" ;
@@ -6991,7 +7010,9 @@ mkA007 base =
Gen => base_1+"a" Gen => base_1+"a"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA007" _ => error "Can't apply paradigm mkA007"
} ; } ;
@@ -7001,6 +7022,7 @@ mkA008 base =
case base of { case base of {
base_1+"ur" => lin A base_1+"ur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"ur" ; Nom => base_1+"ur" ;
@@ -7043,7 +7065,9 @@ mkA008 base =
Gen => base_1+"a" Gen => base_1+"a"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA008" _ => error "Can't apply paradigm mkA008"
} ; } ;
@@ -7053,6 +7077,7 @@ mkA009 base =
case base of { case base of {
base_1+"in" => lin A base_1+"in" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"in" ; Nom => base_1+"in" ;
@@ -7095,7 +7120,9 @@ mkA009 base =
Gen => base_1+"na" Gen => base_1+"na"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA009" _ => error "Can't apply paradigm mkA009"
} ; } ;
@@ -7105,6 +7132,7 @@ mkA010 base =
case base of { case base of {
base_1+"ður" => lin A base_1+"ður" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"ður" ; Nom => base_1+"ður" ;
@@ -7147,7 +7175,9 @@ mkA010 base =
Gen => base_1+"ða" Gen => base_1+"ða"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA010" _ => error "Can't apply paradigm mkA010"
} ; } ;
@@ -7157,6 +7187,7 @@ mkA011 base =
case base of { case base of {
base_1+"tur" => lin A base_1+"tur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"tur" ; Nom => base_1+"tur" ;
@@ -7199,7 +7230,9 @@ mkA011 base =
Gen => base_1+"ta" Gen => base_1+"ta"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA011" _ => error "Can't apply paradigm mkA011"
} ; } ;
@@ -7209,6 +7242,7 @@ mkA012 base =
case base of { case base of {
base_1+"gvin" => lin A base_1+"gvin" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"gvin" ; Nom => base_1+"gvin" ;
@@ -7251,7 +7285,9 @@ mkA012 base =
Gen => base_1+"na" Gen => base_1+"na"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA012" _ => error "Can't apply paradigm mkA012"
} ; } ;
@@ -7261,6 +7297,7 @@ mkA013 base =
case base of { case base of {
base_1+"gur" => lin A base_1+"gur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"gur" ; Nom => base_1+"gur" ;
@@ -7303,7 +7340,9 @@ mkA013 base =
Gen => base_1+"ga" Gen => base_1+"ga"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA013" _ => error "Can't apply paradigm mkA013"
} ; } ;
@@ -7313,6 +7352,7 @@ mkA014 base =
case base of { case base of {
base_1+"ddur" => lin A base_1+"ddur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"ddur" ; Nom => base_1+"ddur" ;
@@ -7355,7 +7395,9 @@ mkA014 base =
Gen => base_1+"dda" Gen => base_1+"dda"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA014" _ => error "Can't apply paradigm mkA014"
} ; } ;
@@ -7365,6 +7407,7 @@ mkA015 base =
case base of { case base of {
base_1+"a"+base_2@("ng"|"m"|(?+?+?))+"ur" => lin A base_1+"a"+base_2@("ng"|"m"|(?+?+?))+"ur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"a"+base_2+"ur" ; Nom => base_1+"a"+base_2+"ur" ;
@@ -7407,7 +7450,9 @@ mkA015 base =
Gen => base_1+"a"+base_2+"a" Gen => base_1+"a"+base_2+"a"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA015" _ => error "Can't apply paradigm mkA015"
} ; } ;
@@ -7417,6 +7462,7 @@ mkA016 base =
case base of { case base of {
base_1+"mur" => lin A base_1+"mur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"mur" ; Nom => base_1+"mur" ;
@@ -7459,7 +7505,9 @@ mkA016 base =
Gen => base_1+"madimra" Gen => base_1+"madimra"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA016" _ => error "Can't apply paradigm mkA016"
} ; } ;
@@ -7469,6 +7517,7 @@ mkA017 base =
case base of { case base of {
base_1+"ur" => lin A base_1+"ur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"ur" ; Nom => base_1+"ur" ;
@@ -7511,7 +7560,9 @@ mkA017 base =
Gen => base_1+"a" Gen => base_1+"a"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA017" _ => error "Can't apply paradigm mkA017"
} ; } ;
@@ -7521,6 +7572,7 @@ mkA018 base =
case base of { case base of {
base_1+"kur" => lin A base_1+"kur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"kur" ; Nom => base_1+"kur" ;
@@ -7563,7 +7615,9 @@ mkA018 base =
Gen => base_1+"kadøkra" Gen => base_1+"kadøkra"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA018" _ => error "Can't apply paradigm mkA018"
} ; } ;
@@ -7573,6 +7627,7 @@ mkA019 base =
case base of { case base of {
base_1+"tin" => lin A base_1+"tin" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"tin" ; Nom => base_1+"tin" ;
@@ -7615,7 +7670,9 @@ mkA019 base =
Gen => base_1+"na" Gen => base_1+"na"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA019" _ => error "Can't apply paradigm mkA019"
} ; } ;
@@ -7625,6 +7682,7 @@ mkA020 base =
case base of { case base of {
base_1+"a"+base_2@?+"dur" => lin A base_1+"a"+base_2@?+"dur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"a"+base_2+"dur" ; Nom => base_1+"a"+base_2+"dur" ;
@@ -7667,7 +7725,9 @@ mkA020 base =
Gen => base_1+"a"+base_2+"da" Gen => base_1+"a"+base_2+"da"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA020" _ => error "Can't apply paradigm mkA020"
} ; } ;
@@ -7677,6 +7737,7 @@ mkA021 base =
case base of { case base of {
base_1+"a"+base_2@?+"lur" => lin A base_1+"a"+base_2@?+"lur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"a"+base_2+"lur" ; Nom => base_1+"a"+base_2+"lur" ;
@@ -7719,7 +7780,9 @@ mkA021 base =
Gen => base_1+"a"+base_2+"la" Gen => base_1+"a"+base_2+"la"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA021" _ => error "Can't apply paradigm mkA021"
} ; } ;
@@ -7729,6 +7792,7 @@ mkA022 base =
case base of { case base of {
base_1+"a"+base_2@?+"ur" => lin A base_1+"a"+base_2@?+"ur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"a"+base_2+"ur" ; Nom => base_1+"a"+base_2+"ur" ;
@@ -7771,7 +7835,9 @@ mkA022 base =
Gen => base_1+"a"+base_2+"a" Gen => base_1+"a"+base_2+"a"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA022" _ => error "Can't apply paradigm mkA022"
} ; } ;
@@ -7781,6 +7847,7 @@ mkA023 base =
case base of { case base of {
base_1+"rin" => lin A base_1+"rin" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"rin" ; Nom => base_1+"rin" ;
@@ -7823,7 +7890,9 @@ mkA023 base =
Gen => base_1+"na" Gen => base_1+"na"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA023" _ => error "Can't apply paradigm mkA023"
} ; } ;
@@ -7833,6 +7902,7 @@ mkA024 base =
case base of { case base of {
base_1+"lur" => lin A base_1+"lur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"lur" ; Nom => base_1+"lur" ;
@@ -7875,7 +7945,9 @@ mkA024 base =
Gen => base_1+"lafulra" Gen => base_1+"lafulra"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA024" _ => error "Can't apply paradigm mkA024"
} ; } ;
@@ -7885,6 +7957,7 @@ mkA025 base =
case base of { case base of {
base_1+"a"+base_2@?+"a"+base_3@? => lin A base_1+"a"+base_2@?+"a"+base_3@? => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"a"+base_2+"a"+base_3 ; Nom => base_1+"a"+base_2+"a"+base_3 ;
@@ -7927,7 +8000,9 @@ mkA025 base =
Gen => base_1+"a"+base_2+base_3+"a" Gen => base_1+"a"+base_2+base_3+"a"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA025" _ => error "Can't apply paradigm mkA025"
} ; } ;
@@ -7937,6 +8012,7 @@ mkA026 base =
case base of { case base of {
base_1+"óður" => lin A base_1+"óður" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"óður" ; Nom => base_1+"óður" ;
@@ -7979,7 +8055,9 @@ mkA026 base =
Gen => base_1+"óða" Gen => base_1+"óða"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA026" _ => error "Can't apply paradigm mkA026"
} ; } ;
@@ -7989,6 +8067,7 @@ mkA027 base =
case base of { case base of {
base_1+"ei"+base_2@?+"a"+base_3@?+"ur" => lin A base_1+"ei"+base_2@?+"a"+base_3@?+"ur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"ei"+base_2+"a"+base_3+"ur" ; Nom => base_1+"ei"+base_2+"a"+base_3+"ur" ;
@@ -8031,7 +8110,9 @@ mkA027 base =
Gen => base_1+"ei"+base_2+"a"+base_3+"a" Gen => base_1+"ei"+base_2+"a"+base_3+"a"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA027" _ => error "Can't apply paradigm mkA027"
} ; } ;
@@ -8041,6 +8122,7 @@ mkA028 base =
case base of { case base of {
base_1+"pin" => lin A base_1+"pin" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"pin" ; Nom => base_1+"pin" ;
@@ -8083,7 +8165,9 @@ mkA028 base =
Gen => base_1+"na" Gen => base_1+"na"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA028" _ => error "Can't apply paradigm mkA028"
} ; } ;
@@ -8093,6 +8177,7 @@ mkA029 base =
case base of { case base of {
base_1+"a"+base_2@?+"sur" => lin A base_1+"a"+base_2@?+"sur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"a"+base_2+"sur" ; Nom => base_1+"a"+base_2+"sur" ;
@@ -8135,7 +8220,9 @@ mkA029 base =
Gen => base_1+"a"+base_2+"sa" Gen => base_1+"a"+base_2+"sa"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA029" _ => error "Can't apply paradigm mkA029"
} ; } ;
@@ -8145,6 +8232,7 @@ mkA030 base =
case base of { case base of {
base_1+"ddur" => lin A base_1+"ddur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"ddur" ; Nom => base_1+"ddur" ;
@@ -8187,7 +8275,9 @@ mkA030 base =
Gen => base_1+"dda" Gen => base_1+"dda"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA030" _ => error "Can't apply paradigm mkA030"
} ; } ;
@@ -8197,6 +8287,7 @@ mkA031 base =
case base of { case base of {
base_1+"a"+base_2@?+"ur" => lin A base_1+"a"+base_2@?+"ur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"a"+base_2+"ur" ; Nom => base_1+"a"+base_2+"ur" ;
@@ -8239,7 +8330,9 @@ mkA031 base =
Gen => base_1+"a"+base_2+"alatra" Gen => base_1+"a"+base_2+"alatra"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA031" _ => error "Can't apply paradigm mkA031"
} ; } ;
@@ -8249,6 +8342,7 @@ mkA032 base =
case base of { case base of {
base_1+"ðin" => lin A base_1+"ðin" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"ðin" ; Nom => base_1+"ðin" ;
@@ -8291,7 +8385,9 @@ mkA032 base =
Gen => base_1+"dna" Gen => base_1+"dna"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA032" _ => error "Can't apply paradigm mkA032"
} ; } ;
@@ -8301,6 +8397,7 @@ mkA033 base =
case base of { case base of {
base_1+"ggjur" => lin A base_1+"ggjur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"ggjur" ; Nom => base_1+"ggjur" ;
@@ -8343,7 +8440,9 @@ mkA033 base =
Gen => base_1+"ggja" Gen => base_1+"ggja"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA033" _ => error "Can't apply paradigm mkA033"
} ; } ;
@@ -8353,6 +8452,7 @@ mkA034 base =
case base of { case base of {
base_1+"a"+base_2@?+"ur" => lin A base_1+"a"+base_2@?+"ur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"a"+base_2+"ur" ; Nom => base_1+"a"+base_2+"ur" ;
@@ -8395,7 +8495,9 @@ mkA034 base =
Gen => base_1+"a"+base_2+"amakra" Gen => base_1+"a"+base_2+"amakra"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA034" _ => error "Can't apply paradigm mkA034"
} ; } ;
@@ -8405,6 +8507,7 @@ mkA035 base =
case base of { case base of {
base_1+"il" => lin A base_1+"il" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"il" ; Nom => base_1+"il" ;
@@ -8447,7 +8550,9 @@ mkA035 base =
Gen => base_1+"la" Gen => base_1+"la"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA035" _ => error "Can't apply paradigm mkA035"
} ; } ;
@@ -8457,6 +8562,7 @@ mkA036 base =
case base of { case base of {
base_1+"lur" => lin A base_1+"lur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"lur" ; Nom => base_1+"lur" ;
@@ -8499,7 +8605,9 @@ mkA036 base =
Gen => base_1+"la" Gen => base_1+"la"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA036" _ => error "Can't apply paradigm mkA036"
} ; } ;
@@ -8509,6 +8617,7 @@ mkA037 base =
case base of { case base of {
base_1+"gvur" => lin A base_1+"gvur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"gvur" ; Nom => base_1+"gvur" ;
@@ -8551,7 +8660,9 @@ mkA037 base =
Gen => base_1+"gva" Gen => base_1+"gva"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA037" _ => error "Can't apply paradigm mkA037"
} ; } ;
@@ -8561,6 +8672,7 @@ mkA038 base =
case base of { case base of {
base_1+"u"+base_2@? => lin A base_1+"u"+base_2@? => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"u"+base_2 ; Nom => base_1+"u"+base_2 ;
@@ -8603,7 +8715,9 @@ mkA038 base =
Gen => base_1+base_2+"a" Gen => base_1+base_2+"a"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA038" _ => error "Can't apply paradigm mkA038"
} ; } ;
@@ -8613,6 +8727,7 @@ mkA039 base =
case base of { case base of {
base_1+"rur" => lin A base_1+"rur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"rur" ; Nom => base_1+"rur" ;
@@ -8655,7 +8770,9 @@ mkA039 base =
Gen => base_1+"ra" Gen => base_1+"ra"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA039" _ => error "Can't apply paradigm mkA039"
} ; } ;
@@ -8665,6 +8782,7 @@ mkA040 base =
case base of { case base of {
base_1+"lur" => lin A base_1+"lur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"lur" ; Nom => base_1+"lur" ;
@@ -8707,7 +8825,9 @@ mkA040 base =
Gen => base_1+"lavilra" Gen => base_1+"lavilra"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA040" _ => error "Can't apply paradigm mkA040"
} ; } ;
@@ -8717,6 +8837,7 @@ mkA041 base =
case base of { case base of {
base_1+"sur" => lin A base_1+"sur" => lin A
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => base_1+"sur" ; Nom => base_1+"sur" ;
@@ -8759,7 +8880,9 @@ mkA041 base =
Gen => base_1+"sa" Gen => base_1+"sa"
} }
} }
} } ;
Weak => weakAdjForms base
}
}; };
_ => error "Can't apply paradigm mkA041" _ => error "Can't apply paradigm mkA041"
} ; } ;
@@ -8902,8 +9025,8 @@ mkV005 base =
base_1+"a"+base_2@(?+?) => lin V base_1+"a"+base_2@(?+?) => lin V
{ Converb = base_1+"a"+base_2 ; { Converb = base_1+"a"+base_2 ;
imperative = table { imperative = table {
Sg => nonExist ; Sg => base_1+base_2 ;
Pl => nonExist Pl => base_1+"i"+base_2
} ; } ;
Indicative = table { Indicative = table {
Pres => table { Pres => table {
@@ -10882,8 +11005,8 @@ mkV065 base =
base_1+"u"+base_2@?+"na" => lin V base_1+"u"+base_2@?+"na" => lin V
{ Converb = base_1+"u"+base_2+"nað" ; { Converb = base_1+"u"+base_2+"nað" ;
imperative = table { imperative = table {
Sg => nonExist ; Sg => base_1+"u"+base_2+"n" ;
Pl => nonExist Pl => base_1+"u"+base_2+"nið"
} ; } ;
Indicative = table { Indicative = table {
Pres => table { Pres => table {
+1 -1
View File
@@ -10,5 +10,5 @@ lin
UseLN ln = mkNP ln.s Neuter Sg P3 ; UseLN ln = mkNP ln.s Neuter Sg P3 ;
PlainLN ln = mkNP ln.s Neuter Sg P3 ; PlainLN ln = mkNP ln.s Neuter Sg P3 ;
InLN ln = {s = "í" ++ ln.s} ; InLN ln = {s = "í" ++ ln.s} ;
AdjLN ap ln = {s = ap.s ! Neuter ! Sg ! Nom ++ ln.s} ; AdjLN ap ln = {s = ap.s ! Strong ! Neuter ! Sg ! Nom ++ ln.s} ;
} }
+39 -13
View File
@@ -1,7 +1,7 @@
concrete NounFao of Noun = CatFao ** open ResFao, Prelude in { concrete NounFao of Noun = CatFao ** open ResFao, Prelude in {
lin lin
UseN n = n ; UseN n = {s = n.s ; p = n.s ! Indef ; g = n.g} ;
UseN2 n = n ; UseN2 n = {s = n.s ; p = n.s ! Indef ; g = n.g} ;
Use2N3 n = n ** {c2 = n.c2} ; Use2N3 n = n ** {c2 = n.c2} ;
Use3N3 n = n ** {c2 = n.c3} ; Use3N3 n = n ** {c2 = n.c3} ;
UsePN pn = mkNP pn.s Masc Sg P3 ; UsePN pn = mkNP pn.s Masc Sg P3 ;
@@ -27,7 +27,10 @@ lin
s = \\c => np.s ! c ++ "," ++ adv.s s = \\c => np.s ! c ++ "," ++ adv.s
} ; } ;
DetCN det cn = { DetCN det cn = {
s = \\c => det.s ! cn.g ! c ++ cn.s ! det.sp ! det.n ! c ; s = \\c => det.s ! cn.g ! c ++ case det.d of {
Weak => cn.p ! det.n ! c ;
Strong => cn.s ! det.sp ! det.n ! c
} ;
g = cn.g ; g = cn.g ;
n = det.n ; n = det.n ;
p = P3 p = P3
@@ -35,6 +38,7 @@ lin
DefArt = { DefArt = {
s = \\_,_,_,_ => [] ; s = \\_,_,_,_ => [] ;
sp = Def ; sp = Def ;
d = Strong
} ; } ;
IndefArt = { IndefArt = {
s = \\b => s = \\b =>
@@ -62,18 +66,24 @@ lin
} }
} ; } ;
sp = Indef ; sp = Indef ;
d = Strong
} ; } ;
DetQuant quant num = { DetQuant quant num = {
s = \\g,c => quant.s ! num.hasCard ! g ! num.n ! c ++ s = \\g,c => quant.s ! num.hasCard ! g ! num.n ! c ++
num.s ! g ! c ; num.s ! g ! c ;
n = num.n ; n = num.n ;
sp = quant.sp sp = quant.sp ;
d = quant.d
} ; } ;
DetQuantOrd quant num ord = { DetQuantOrd quant num ord = {
s = \\g,c => quant.s ! num.hasCard ! g ! num.n ! c ++ s = \\g,c => quant.s ! num.hasCard ! g ! num.n ! c ++
num.s ! g ! c ++ ord.s ! g ! num.n ! c ; num.s ! g ! c ++ case quant.sp of {
Indef => ord.s ! Strong ! g ! num.n ! c ;
Def => ord.s ! Weak ! g ! num.n ! c
} ;
n = num.n ; n = num.n ;
sp = quant.sp sp = quant.sp ;
d = quant.d
} ; } ;
NumSg = { NumSg = {
s = \\_,_ => [] ; s = \\_,_ => [] ;
@@ -90,11 +100,11 @@ lin
NumDecimal dec = {s = \\_,_ => dec.s ; n = Pl} ; NumDecimal dec = {s = \\_,_ => dec.s ; n = Pl} ;
NumNumeral numeral = {s=numeral.s ! NCard; n=numeral.n} ; NumNumeral numeral = {s=numeral.s ! NCard; n=numeral.n} ;
AdNum adn card = {s = \\g,c => adn.s ++ card.s ! g ! c ; n = card.n} ; AdNum adn card = {s = \\g,c => adn.s ++ card.s ! g ! c ; n = card.n} ;
OrdDigits digits = {s = \\_,_,_ => digits.s ++ BIND ++ "."} ; OrdDigits digits = {s = \\_,_,_,_ => digits.s ++ BIND ++ "."} ;
OrdNumeral numeral = {s = \\g,n,c => numeral.s ! NOrd n ! g ! c} ; OrdNumeral numeral = {s = \\_,g,n,c => numeral.s ! NOrd n ! g ! c} ;
OrdSuperl a = {s = a.s} ; OrdSuperl a = {s = a.s} ;
OrdNumeralSuperl numeral a = { OrdNumeralSuperl numeral a = {
s = \\g,n,c => numeral.s ! NOrd n ! g ! c ++ a.s ! g ! n ! c s = \\af,g,n,c => numeral.s ! NOrd n ! g ! c ++ a.s ! af ! g ! n ! c
} ; } ;
MassNP cn = { MassNP cn = {
s = \\c => cn.s ! Indef ! Sg ! c ; s = \\c => cn.s ! Indef ! Sg ! c ;
@@ -103,43 +113,59 @@ lin
p = P3 p = P3
} ; } ;
PossPron pron = { PossPron pron = {
s = \\_,_,_,_ => pron.s ! Gen ; s = \\_,g,n,c => pron.poss ! g ! n ! c ;
sp = Def -- A preposed possessive replaces, rather than licenses, the suffixed
-- definite article: mín vinur, not *mín vinurin.
sp = Indef ;
d = Weak
} ; } ;
ComplN2 n2 np = { ComplN2 n2 np = {
s = \\sp,n,c => n2.s ! sp ! n ! c ++ n2.c2.s ++ np.s ! n2.c2.c ; s = \\sp,n,c => n2.s ! sp ! n ! c ++ n2.c2.s ++ np.s ! n2.c2.c ;
p = \\n,c => n2.s ! Indef ! n ! c ++ n2.c2.s ++ np.s ! n2.c2.c ;
g = n2.g g = n2.g
} ; } ;
ComplN3 n3 np = n3 ** { ComplN3 n3 np = n3 ** {
s = \\sp,n,c => n3.s ! sp ! n ! c ++ n3.c2.s ++ np.s ! n3.c2.c ; s = \\sp,n,c => n3.s ! sp ! n ! c ++ n3.c2.s ++ np.s ! n3.c2.c ;
p = \\n,c => n3.s ! Indef ! n ! c ++ n3.c2.s ++ np.s ! n3.c2.c ;
c2 = n3.c3 c2 = n3.c3
} ; } ;
AdjCN ap cn = { AdjCN ap cn = {
s = \\sp,n,c => ap.s ! cn.g ! n ! c ++ cn.s ! sp ! n ! c ; s = \\sp,n,c =>
case sp of {
Indef => ap.s ! Strong ! cn.g ! n ! c ++ cn.s ! sp ! n ! c ;
Def => weakAdj ap cn.g n c ++ cn.s ! sp ! n ! c
} ;
p = \\n,c => ap.s ! Weak ! cn.g ! n ! c ++ cn.p ! n ! c ;
g = cn.g g = cn.g
} ; } ;
RelCN cn rs = { RelCN cn rs = {
s = \\sp,n,c => cn.s ! sp ! n ! c ++ rs.s ! cn.g ! persNum n P3 ; s = \\sp,n,c => cn.s ! sp ! n ! c ++ rs.s ! cn.g ! persNum n P3 ;
p = \\n,c => cn.p ! n ! c ++ rs.s ! cn.g ! persNum n P3 ;
g = cn.g g = cn.g
} ; } ;
AdvCN cn adv = { AdvCN cn adv = {
s = \\sp,n,c => cn.s ! sp ! n ! c ++ adv.s ; s = \\sp,n,c => cn.s ! sp ! n ! c ++ adv.s ;
p = \\n,c => cn.p ! n ! c ++ adv.s ;
g = cn.g g = cn.g
} ; } ;
SentCN cn sc = { SentCN cn sc = {
s = \\sp,n,c => cn.s ! sp ! n ! c ++ sc.s ; s = \\sp,n,c => cn.s ! sp ! n ! c ++ sc.s ;
p = \\n,c => cn.p ! n ! c ++ sc.s ;
g = cn.g g = cn.g
} ; } ;
ApposCN cn np = { ApposCN cn np = {
s = \\sp,n,c => cn.s ! sp ! n ! c ++ np.s ! Nom ; s = \\sp,n,c => cn.s ! sp ! n ! c ++ np.s ! Nom ;
p = \\n,c => cn.p ! n ! c ++ np.s ! Nom ;
g = cn.g g = cn.g
} ; } ;
PossNP cn np = { PossNP cn np = {
s = \\sp,n,c => cn.s ! sp ! n ! c ++ np.s ! Gen ; s = \\sp,n,c => cn.s ! sp ! n ! c ++ np.s ! Gen ;
p = \\n,c => cn.p ! n ! c ++ np.s ! Gen ;
g = cn.g g = cn.g
} ; } ;
PartNP cn np = { PartNP cn np = {
s = \\sp,n,c => cn.s ! sp ! n ! c ++ "av" ++ np.s ! Dat ; s = \\sp,n,c => cn.s ! sp ! n ! c ++ "av" ++ np.s ! Dat ;
p = \\n,c => cn.p ! n ! c ++ "av" ++ np.s ! Dat ;
g = cn.g g = cn.g
} ; } ;
CountNP det np = { CountNP det np = {
@@ -149,7 +175,7 @@ lin
p = P3 p = P3
} ; } ;
AdjDAP dap ap = dap ** { AdjDAP dap ap = dap ** {
s = \\g,c => dap.s ! g ! c ++ ap.s ! g ! dap.n ! c s = \\g,c => dap.s ! g ! c ++ ap.s ! dap.d ! g ! dap.n ! c
} ; } ;
DetDAP det = det ; DetDAP det = det ;
QuantityNP dec mu = { QuantityNP dec mu = {
+28 -4
View File
@@ -327,11 +327,32 @@ oper
Dat => dat ; Dat => dat ;
Gen => gen Gen => gen
} ; } ;
poss = case <n,p> of {
<Sg,P1> => possessiveForms "mín" "mítt" ;
<Sg,P2> => possessiveForms "tín" "títt" ;
_ => \\_,_,_ => gen
} ;
g = g ; g = g ;
n = n ; n = n ;
p = p p = p
} ; } ;
possessiveForms : Str -> Str -> Gender => Number => Case => Str = \common,neuter ->
table {
Masc => table {
Sg => table {Nom => common ; Acc => common ; Dat => common + "um" ; Gen => common + "s"} ;
Pl => table {Nom => common + "ir" ; Acc => common + "ar" ; Dat => common + "um" ; Gen => common + "a"}
} ;
Fem => table {
Sg => table {Nom => common ; Acc => common + "a" ; Dat => common + "i" ; Gen => common + "ar"} ;
Pl => table {Nom => common + "ar" ; Acc => common + "ar" ; Dat => common + "um" ; Gen => common + "a"}
} ;
Neuter => table {
Sg => table {Nom => neuter ; Acc => neuter ; Dat => common + "um" ; Gen => common + "s"} ;
Pl => table {Nom => common + "i" ; Acc => common + "i" ; Dat => common + "um" ; Gen => common + "a"}
}
} ;
regA : Str -> A -- s;Masc;Sg;Nom regA : Str -> A -- s;Masc;Sg;Nom
= \form -> case form of { = \form -> case form of {
_ + "dur" => mkA001 form; _ + "dur" => mkA001 form;
@@ -513,7 +534,7 @@ oper
} ; } ;
invarA : Str -> A = \s -> lin A { invarA : Str -> A = \s -> lin A {
s = \\_,_,_ => s s = \\_,_,_,_ => s
} ; } ;
mkA2 = overload { mkA2 = overload {
@@ -580,16 +601,19 @@ oper
mkInterj : Str -> Interj = \s -> lin Interj {s=s} ; mkInterj : Str -> Interj = \s -> lin Interj {s=s} ;
mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ;
mkPrep : Str -> Prep = \s -> lin Prep {s=s; c=Acc} ; mkPrep = overload {
mkPrep : Str -> Prep = \s -> lin Prep {s=s; c=Acc} ;
mkPrep : Str -> Case -> Prep = \s,c -> lin Prep {s=s; c=c}
} ;
mkIAdv : Str -> IAdv = \s -> lin IAdv {s=s} ; mkIAdv : Str -> IAdv = \s -> lin IAdv {s=s} ;
mkIP : Str -> IP = \s -> lin IP {s=s; n=Sg} ; mkIP : Str -> IP = \s -> lin IP {s=s; n=Sg} ;
mkIQuant : Str -> IQuant = \s -> lin IQuant {s=s} ; mkIQuant : Str -> IQuant = \s -> lin IQuant {s=s} ;
mkIDet : Str -> IDet = \s -> lin IDet {s=s; n=Sg} ; mkIDet : Str -> IDet = \s -> lin IDet {s=s; n=Sg} ;
mkSubj : Str -> Subj = \s -> lin Subj {s=s} ; mkSubj : Str -> Subj = \s -> lin Subj {s=s} ;
mkQuant : Str -> Quant = \s -> lin Quant {s=\\_,_,_,_ => s; sp=Indef} ; mkQuant : Str -> Quant = \s -> lin Quant {s=\\_,_,_,_ => s; sp=Indef; d=Strong} ;
mkPredet : Str -> Predet = \s -> lin Predet {s=s} ; mkPredet : Str -> Predet = \s -> lin Predet {s=s} ;
mkDet : Str -> Det = \s -> lin Det {s=\\_,_ => s; n=Sg; sp=Indef} ; mkDet : Str -> Det = \s -> lin Det {s=\\_,_ => s; n=Sg; sp=Indef; d=Strong} ;
mkCard : Str -> Card = \s -> lin Card {s=\\_,_ => s; n=Pl} ; mkCard : Str -> Card = \s -> lin Card {s=\\_,_ => s; n=Pl} ;
mkACard : Str -> ACard = \s -> lin ACard {s=s} ; mkACard : Str -> ACard = \s -> lin ACard {s=s} ;
mkConj : Str -> Conj = \s -> lin Conj {s=s} ; mkConj : Str -> Conj = \s -> lin Conj {s=s} ;
+1 -1
View File
@@ -13,7 +13,7 @@ lin
UttVP vp = {s = vp.Nonfinite} ; UttVP vp = {s = vp.Nonfinite} ;
UttCN cn = {s = cn.s ! Indef ! Sg ! Nom} ; UttCN cn = {s = cn.s ! Indef ! Sg ! Nom} ;
UttCard card = {s = card.s ! Neuter ! Nom} ; UttCard card = {s = card.s ! Neuter ! Nom} ;
UttAP ap = {s = ap.s ! Masc ! Sg ! Nom} ; UttAP ap = {s = ap.s ! Strong ! Masc ! Sg ! Nom} ;
UttAdv adv = adv ; UttAdv adv = adv ;
UttInterj i = i ; UttInterj i = i ;
+36 -10
View File
@@ -1,20 +1,36 @@
concrete QuestionFao of Question = CatFao ** open ResFao in { concrete QuestionFao of Question = CatFao ** open ResFao in {
lincat QVP = {s : Tense => Polarity => Str} ; lincat QVP = {
s,anterior : Tense => Polarity => Str ;
future,conditional : Polarity => Str
} ;
lin lin
QuestCl cl = {s = cl.Indicative} ; QuestCl cl = {
s = cl.Interrogative ; anterior = cl.AnteriorInterrogative ;
future = cl.FutureInterrogative ; conditional = cl.ConditionalInterrogative
} ;
QuestVP ip vp = { QuestVP ip vp = {
s = \\t,pol => ip.s ++ vp.Indicative ! t ! pol ! Masc ! persNum ip.n P3 s = \\t,pol => ip.s ++ vp.Indicative ! t ! pol ! Masc ! persNum ip.n P3 ;
anterior = \\t,pol => ip.s ++ perfectAux ! t ! persNum ip.n P3 ++ negStr pol ++ vp.Converb ;
future = \\pol => ip.s ++ futureAux ! persNum ip.n P3 ++ negStr pol ++ vp.Nonfinite ;
conditional = \\pol => ip.s ++ conditionalAux ! persNum ip.n P3 ++ negStr pol ++ vp.Nonfinite
} ; } ;
QuestSlash ip cls = { QuestSlash ip cls = {
s = \\t,pol => ip.s ++ cls.s ! t ! pol s = \\t,pol => ip.s ++ cls.s ! t ! pol ; anterior = \\t,pol => ip.s ++ cls.s ! t ! pol ;
future = \\pol => ip.s ++ cls.s ! Pres ! pol ; conditional = \\pol => ip.s ++ cls.s ! Past ! pol
} ; } ;
QuestIAdv iadv cl = { QuestIAdv iadv cl = {
s = \\t,pol => iadv.s ++ cl.Indicative ! t ! pol s = \\t,pol => iadv.s ++ cl.Interrogative ! t ! pol ;
anterior = \\t,pol => iadv.s ++ cl.AnteriorInterrogative ! t ! pol ;
future = \\pol => iadv.s ++ cl.FutureInterrogative ! pol ;
conditional = \\pol => iadv.s ++ cl.ConditionalInterrogative ! pol
} ; } ;
QuestIComp icomp np = { QuestIComp icomp np = {
s = \\t,pol => icomp.s ++ copula ! t ! persNum np.n np.p ++ negStr pol ++ np.s ! Nom s = \\t,pol => icomp.s ++ copula ! t ! persNum np.n np.p ++ negStr pol ++ np.s ! Nom ;
anterior = \\t,pol => icomp.s ++ perfectAux ! t ! persNum np.n np.p ++ negStr pol ++ "verið" ++ np.s ! Nom ;
future = \\pol => icomp.s ++ futureAux ! persNum np.n np.p ++ negStr pol ++ "vera" ++ np.s ! Nom ;
conditional = \\pol => icomp.s ++ conditionalAux ! persNum np.n np.p ++ negStr pol ++ "vera" ++ np.s ! Nom
} ; } ;
IdetCN idet cn = { IdetCN idet cn = {
@@ -36,15 +52,25 @@ lin
CompIP ip = {s = ip.s} ; CompIP ip = {s = ip.s} ;
ComplSlashIP vps ip = { ComplSlashIP vps ip = {
s = \\t,pol => vps.Indicative ! t ! PSg P3 ++ vps.particle ++ negStr pol ++ vps.c2.s ++ ip.s ++ vps.sc s = \\t,pol => vps.Indicative ! t ! PSg P3 ++ vps.particle ++ negStr pol ++ vps.c2.s ++ ip.s ++ vps.sc ;
anterior = \\t,pol => perfectAux ! t ! PSg P3 ++ negStr pol ++ vps.Converb ++ vps.c2.s ++ ip.s ++ vps.sc ;
future = \\pol => futureAux ! PSg P3 ++ negStr pol ++ vps.Nonfinite ++ vps.c2.s ++ ip.s ++ vps.sc ;
conditional = \\pol => conditionalAux ! PSg P3 ++ negStr pol ++ vps.Nonfinite ++ vps.c2.s ++ ip.s ++ vps.sc
} ; } ;
AdvQVP vp iadv = { AdvQVP vp iadv = {
s = \\t,pol => vp.Indicative ! t ! pol ! Masc ! PSg P3 ++ iadv.s s = \\t,pol => vp.Indicative ! t ! pol ! Masc ! PSg P3 ++ iadv.s ;
anterior = \\t,pol => perfectAux ! t ! PSg P3 ++ negStr pol ++ vp.Converb ++ iadv.s ;
future = \\pol => futureAux ! PSg P3 ++ negStr pol ++ vp.Nonfinite ++ iadv.s ;
conditional = \\pol => conditionalAux ! PSg P3 ++ negStr pol ++ vp.Nonfinite ++ iadv.s
} ; } ;
AddAdvQVP qvp iadv = { AddAdvQVP qvp iadv = {
s = \\t,pol => qvp.s ! t ! pol ++ iadv.s s = \\t,pol => qvp.s ! t ! pol ++ iadv.s ;
anterior = \\t,pol => qvp.anterior ! t ! pol ++ iadv.s ;
future = \\pol => qvp.future ! pol ++ iadv.s ; conditional = \\pol => qvp.conditional ! pol ++ iadv.s
} ; } ;
QuestQVP ip qvp = { QuestQVP ip qvp = {
s = \\t,pol => ip.s ++ qvp.s ! t ! pol s = \\t,pol => ip.s ++ qvp.s ! t ! pol ;
anterior = \\t,pol => ip.s ++ qvp.anterior ! t ! pol ;
future = \\pol => ip.s ++ qvp.future ! pol ; conditional = \\pol => ip.s ++ qvp.conditional ! pol
} ; } ;
} }
+76 -3
View File
@@ -43,10 +43,52 @@ oper mkNoun : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Gender -> Noun =
} ; } ;
oper Adj = {s: Gender => Number => Case => Str} ; -- 346 param Declension = Strong | Weak ;
oper Adj = {
s : Declension => Gender => Number => Case => Str ;
} ; -- 346
-- The weak adjective is used attributively in definite noun phrases. The
-- generated morphology contains the strong paradigm; the three weak forms
-- can be recovered from it (e.g. langa -> langi, longum -> longu).
oper weakAdj : Adj -> Gender -> Number -> Case -> Str =
\a,g,n,c -> a.s ! Weak ! g ! n ! c ;
oper weakAdjForms : Str -> Gender => Number => Case => Str = \lemma ->
let stem = case lemma of {
x + "ur" => x ;
x + "nin" => x + "n" ;
x + "in" => x + "n" ;
x + "il" => x + "il" ;
x => x
} in table {
Masc => table {
Sg => table {Nom => stem + "i" ; _ => stem + "a"} ;
Pl => \\_ => stem + "u"
} ;
_ => table {
Sg => \\_ => stem + "a" ;
Pl => \\_ => stem + "u"
}
} ;
oper reflPoss : Gender -> Number -> Case -> Str = \g,n,c ->
case <g,n,c> of {
<Masc,Sg,Nom> => "sín" ; <Masc,Sg,Acc> => "sín" ;
<Masc,Sg,Dat> => "sínum" ; <Masc,Sg,Gen> => "síns" ;
<Fem,Sg,Nom> => "sín" ; <Fem,Sg,Acc> => "sína" ;
<Fem,Sg,Dat> => "síni" ; <Fem,Sg,Gen> => "sínar" ;
<Neuter,Sg,Nom> => "sítt" ; <Neuter,Sg,Acc> => "sítt" ;
<Neuter,Sg,Dat> => "sínum" ; <Neuter,Sg,Gen> => "síns" ;
<Masc,Pl,Nom> => "sínir" ; <Masc,Pl,Acc> => "sínar" ;
<Fem,Pl,Nom> => "sínar" ; <Fem,Pl,Acc> => "sínar" ;
<Neuter,Pl,Nom> => "síni" ; <Neuter,Pl,Acc> => "síni" ;
<_,Pl,Dat> => "sínum" ; <_,Pl,Gen> => "sína"
} ;
oper mkAdj : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Adj = oper mkAdj : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Adj =
\f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24 -> \f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24 ->
{ s = table { { s = table {
Strong => table {
Masc => table { Masc => table {
Sg => table { Sg => table {
Nom => f1 ; Nom => f1 ;
@@ -89,7 +131,9 @@ oper mkAdj : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Adj =
Gen => f24 Gen => f24
} }
} }
} } ;
Weak => weakAdjForms f1
}
} ; } ;
param Tense = Pres | Past ; param Tense = Pres | Past ;
@@ -140,17 +184,31 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb =
oper Compl = {s : Str; c : Case} ; oper Compl = {s : Str; c : Case} ;
oper noPrep : Compl = {s=""; c=Acc} ; oper noPrep : Compl = {s=""; c=Acc} ;
oper CommonNoun = Noun ; oper CommonNoun = {
s : Species => Number => Case => Str ;
p : Number => Case => Str ;
g : Gender
} ;
oper AdjPhrase = Adj ; oper AdjPhrase = Adj ;
oper VerbPhrase = { oper VerbPhrase = {
Converb : Str ; Converb : Str ;
Imperative : Number => Str ;
Indicative : Tense => Polarity => Gender => PersNum => Str ; Indicative : Tense => Polarity => Gender => PersNum => Str ;
Finite : Tense => PersNum => Str ;
Remainder : Polarity => Gender => PersNum => Str ;
Nonfinite : Str ; Nonfinite : Str ;
Participle : Tense => Str ; Participle : Tense => Str ;
} ; } ;
oper Clause = { oper Clause = {
Converb : Str ; Converb : Str ;
Indicative : Tense => Polarity => Str ; Indicative : Tense => Polarity => Str ;
Interrogative : Tense => Polarity => Str ;
Future : Polarity => Str ;
FutureInterrogative : Polarity => Str ;
Conditional : Polarity => Str ;
ConditionalInterrogative : Polarity => Str ;
Anterior : Tense => Polarity => Str ;
AnteriorInterrogative : Tense => Polarity => Str ;
Nonfinite : Str ; Nonfinite : Str ;
Participle : Tense => Str Participle : Tense => Str
} ; } ;
@@ -172,6 +230,17 @@ oper
} }
} ; } ;
futureAux : PersNum => Str = table {
PSg P1 => "skal" ; PSg P2 => "skalt" ; PSg P3 => "skal" ; PPl => "skulu"
} ;
conditionalAux : PersNum => Str = table {
PSg _ => "skuldi" ; PPl => "skuldu"
} ;
perfectAux : Tense => PersNum => Str = table {
Pres => table {PSg P1 => "havi" ; PSg P2 => "hevur" ; PSg P3 => "hevur" ; PPl => "hava"} ;
Past => table {PSg _ => "hevði" ; PPl => "høvdu"}
} ;
oper oper
negStr : Polarity -> Str = \pol -> case pol of { negStr : Polarity -> Str = \pol -> case pol of {
Pos => [] ; Pos => [] ;
@@ -189,13 +258,17 @@ oper
mkCN : Str -> Gender -> CommonNoun = mkCN : Str -> Gender -> CommonNoun =
\str,g -> { \str,g -> {
s = \\_,_,_ => str ; s = \\_,_,_ => str ;
p = \\_,_ => str ;
g = g g = g
} ; } ;
mkVP : Str -> VerbPhrase = mkVP : Str -> VerbPhrase =
\str -> { \str -> {
Converb = str ; Converb = str ;
Imperative = \\_ => str ;
Indicative = \\_,pol,_,_ => str ++ negStr pol ; Indicative = \\_,pol,_,_ => str ++ negStr pol ;
Finite = \\_,_ => str ;
Remainder = \\pol,_,_ => negStr pol ;
Nonfinite = str ; Nonfinite = str ;
Participle = \\_ => str Participle = \\_ => str
} ; } ;
+43 -3
View File
@@ -3,10 +3,32 @@ concrete SentenceFao of Sentence = CatFao ** open Prelude, ResFao, (P = ParamX)
Indicative = \\t,pol => Indicative = \\t,pol =>
let p = persNum np.n np.p let p = persNum np.n np.p
in np.s ! Nom ++ vp.Indicative ! t ! pol ! np.g ! p; in np.s ! Nom ++ vp.Indicative ! t ! pol ! np.g ! p;
Interrogative = \\t,pol => let p = persNum np.n np.p in
vp.Finite ! t ! p ++ np.s ! Nom ++ vp.Remainder ! pol ! np.g ! p ;
Future = \\pol => let p = persNum np.n np.p in
np.s ! Nom ++ futureAux ! p ++ negStr pol ++ vp.Nonfinite ;
FutureInterrogative = \\pol => let p = persNum np.n np.p in
futureAux ! p ++ np.s ! Nom ++ negStr pol ++ vp.Nonfinite ;
Conditional = \\pol => let p = persNum np.n np.p in
np.s ! Nom ++ conditionalAux ! p ++ negStr pol ++ vp.Nonfinite ;
ConditionalInterrogative = \\pol => let p = persNum np.n np.p in
conditionalAux ! p ++ np.s ! Nom ++ negStr pol ++ vp.Nonfinite ;
Anterior = \\t,pol => let p = persNum np.n np.p in
np.s ! Nom ++ perfectAux ! t ! p ++ negStr pol ++ vp.Converb ;
AnteriorInterrogative = \\t,pol => let p = persNum np.n np.p in
perfectAux ! t ! p ++ np.s ! Nom ++ negStr pol ++ vp.Converb ;
Nonfinite = np.s ! Nom ++ vp.Nonfinite; Nonfinite = np.s ! Nom ++ vp.Nonfinite;
Participle = \\t => np.s ! Nom ++ vp.Participle ! t} ; Participle = \\t => np.s ! Nom ++ vp.Participle ! t} ;
PredSCVP sc vp = {Converb = sc.s ++ vp.Converb; PredSCVP sc vp = {Converb = sc.s ++ vp.Converb;
Indicative = \\t,pol => sc.s ++ vp.Indicative ! t ! pol ! Neuter ! PSg P3; Indicative = \\t,pol => sc.s ++ vp.Indicative ! t ! pol ! Neuter ! PSg P3;
Interrogative = \\t,pol => vp.Finite ! t ! PSg P3 ++ sc.s ++
vp.Remainder ! pol ! Neuter ! PSg P3;
Future = \\pol => sc.s ++ futureAux ! PSg P3 ++ negStr pol ++ vp.Nonfinite ;
FutureInterrogative = \\pol => futureAux ! PSg P3 ++ sc.s ++ negStr pol ++ vp.Nonfinite ;
Conditional = \\pol => sc.s ++ conditionalAux ! PSg P3 ++ negStr pol ++ vp.Nonfinite ;
ConditionalInterrogative = \\pol => conditionalAux ! PSg P3 ++ sc.s ++ negStr pol ++ vp.Nonfinite ;
Anterior = \\t,pol => sc.s ++ perfectAux ! t ! PSg P3 ++ negStr pol ++ vp.Converb ;
AnteriorInterrogative = \\t,pol => perfectAux ! t ! PSg P3 ++ sc.s ++ negStr pol ++ vp.Converb ;
Nonfinite = sc.s ++ vp.Nonfinite; Nonfinite = sc.s ++ vp.Nonfinite;
Participle = \\t => sc.s ++ vp.Participle ! t} ; Participle = \\t => sc.s ++ vp.Participle ! t} ;
SlashVP np vps = { SlashVP np vps = {
@@ -29,7 +51,7 @@ concrete SentenceFao of Sentence = CatFao ** open Prelude, ResFao, (P = ParamX)
c2 = sslash.c2 c2 = sslash.c2
} ; } ;
ImpVP vp = { ImpVP vp = {
s = \\pol,n => negStr pol ++ vp.Nonfinite s = \\pol,n => negStr pol ++ vp.Imperative ! n
} ; } ;
AdvImp adv imp = { AdvImp adv imp = {
s = \\pol,n => adv.s ++ imp.s ! pol ! n s = \\pol,n => adv.s ++ imp.s ! pol ! n
@@ -43,7 +65,16 @@ concrete SentenceFao of Sentence = CatFao ** open Prelude, ResFao, (P = ParamX)
P.Cond => Past P.Cond => Past
} ; } ;
in { in {
s = temp.s ++ pol.s ++ cl.Indicative ! tense ! pol.p s = temp.s ++ pol.s ++ case <temp.a,temp.t> of {
<P.Simul,P.Pres> => cl.Indicative ! Pres ! pol.p ;
<P.Simul,P.Past> => cl.Indicative ! Past ! pol.p ;
<P.Simul,P.Fut> => cl.Future ! pol.p ;
<P.Simul,P.Cond> => cl.Conditional ! pol.p ;
<P.Anter,P.Pres> => cl.Anterior ! Pres ! pol.p ;
<P.Anter,P.Past> => cl.Anterior ! Past ! pol.p ;
<P.Anter,P.Fut> => cl.Future ! pol.p ;
<P.Anter,P.Cond> => cl.Anterior ! Past ! pol.p
}
} ; } ;
UseQCl temp pol qcl = UseQCl temp pol qcl =
let let
@@ -54,7 +85,16 @@ concrete SentenceFao of Sentence = CatFao ** open Prelude, ResFao, (P = ParamX)
P.Cond => Past P.Cond => Past
} ; } ;
in { in {
s = temp.s ++ pol.s ++ qcl.s ! tense ! pol.p s = temp.s ++ pol.s ++ case <temp.a,temp.t> of {
<P.Simul,P.Pres> => qcl.s ! Pres ! pol.p ;
<P.Simul,P.Past> => qcl.s ! Past ! pol.p ;
<P.Simul,P.Fut> => qcl.future ! pol.p ;
<P.Simul,P.Cond> => qcl.conditional ! pol.p ;
<P.Anter,P.Pres> => qcl.anterior ! Pres ! pol.p ;
<P.Anter,P.Past> => qcl.anterior ! Past ! pol.p ;
<P.Anter,P.Fut> => qcl.future ! pol.p ;
<P.Anter,P.Cond> => qcl.anterior ! Past ! pol.p
}
} ; } ;
UseRCl temp pol rcl = UseRCl temp pol rcl =
let let
+48 -7
View File
@@ -1,64 +1,99 @@
concrete VerbFao of Verb = CatFao ** open Prelude,ResFao in { concrete VerbFao of Verb = CatFao ** open Prelude,ResFao in {
lin UseV v = {Converb = v.Converb ++ v.particle; lin UseV v = {Converb = v.Converb ++ v.particle;
Imperative = \\n => v.imperative ! n ++ v.particle;
Indicative = \\t,pol,g,p => v.Indicative ! t ! p ++ v.particle ++ Indicative = \\t,pol,g,p => v.Indicative ! t ! p ++ v.particle ++
negStr pol ; negStr pol ;
Finite = v.Indicative ;
Remainder = \\pol,_,_ => negStr pol ++ v.particle ;
Nonfinite = v.Nonfinite ++ v.particle; Nonfinite = v.Nonfinite ++ v.particle;
Participle = \\t => v.Participle ! t ++ v.particle} ; Participle = \\t => v.Participle ! t ++ v.particle} ;
lin ComplVV vv vp = {Converb = vv.Converb ++ vv.particle ++ vp.Nonfinite; lin ComplVV vv vp = {Converb = vv.Converb ++ vv.particle ++ vp.Nonfinite;
Imperative = \\n => vv.imperative ! n ++ vv.particle ++ vp.Nonfinite;
Indicative = \\t,pol,g,p => Indicative = \\t,pol,g,p =>
vv.Indicative ! t ! p ++ vv.particle ++ negStr pol ++ vp.Nonfinite; vv.Indicative ! t ! p ++ vv.particle ++ negStr pol ++ vp.Nonfinite;
Finite = vv.Indicative ;
Remainder = \\pol,_,_ => negStr pol ++ vv.particle ++ vp.Nonfinite;
Nonfinite = vv.Nonfinite ++ vv.particle ++ vp.Nonfinite; Nonfinite = vv.Nonfinite ++ vv.particle ++ vp.Nonfinite;
Participle = \\t => vv.Participle ! t ++ vv.particle ++ vp.Nonfinite} ; Participle = \\t => vv.Participle ! t ++ vv.particle ++ vp.Nonfinite} ;
lin ComplVS vs s = {Converb = vs.Converb ++ vs.particle ++ "at" ++ s.s; lin ComplVS vs s = {Converb = vs.Converb ++ vs.particle ++ "at" ++ s.s;
Imperative = \\n => vs.imperative ! n ++ vs.particle ++ "at" ++ s.s;
Indicative = \\t,pol,g,p => Indicative = \\t,pol,g,p =>
vs.Indicative ! t ! p ++ vs.particle ++ negStr pol ++ "at" ++ s.s; vs.Indicative ! t ! p ++ vs.particle ++ negStr pol ++ "at" ++ s.s;
Finite = vs.Indicative ;
Remainder = \\pol,_,_ => negStr pol ++ vs.particle ++ "at" ++ s.s;
Nonfinite = vs.Nonfinite ++ vs.particle ++ "at" ++ s.s; Nonfinite = vs.Nonfinite ++ vs.particle ++ "at" ++ s.s;
Participle = \\t => vs.Participle ! t ++ vs.particle ++ "at" ++ s.s} ; Participle = \\t => vs.Participle ! t ++ vs.particle ++ "at" ++ s.s} ;
lin ComplVQ vq qs = {Converb = vq.Converb ++ vq.particle ++ qs.s; lin ComplVQ vq qs = {Converb = vq.Converb ++ vq.particle ++ qs.s;
Imperative = \\n => vq.imperative ! n ++ vq.particle ++ qs.s;
Indicative = \\t,pol,g,p => Indicative = \\t,pol,g,p =>
vq.Indicative ! t ! p ++ vq.particle ++ negStr pol ++ qs.s; vq.Indicative ! t ! p ++ vq.particle ++ negStr pol ++ qs.s;
Finite = vq.Indicative ;
Remainder = \\pol,_,_ => negStr pol ++ vq.particle ++ qs.s;
Nonfinite = vq.Nonfinite ++ vq.particle ++ qs.s; Nonfinite = vq.Nonfinite ++ vq.particle ++ qs.s;
Participle = \\t => vq.Participle ! t ++ vq.particle ++ qs.s} ; Participle = \\t => vq.Participle ! t ++ vq.particle ++ qs.s} ;
lin ComplVA va ap = {Converb = va.Converb ++ va.particle ++ ap.s ! Neuter ! Sg ! Nom; lin ComplVA va ap = {Converb = va.Converb ++ va.particle ++ ap.s ! Strong ! Neuter ! Sg ! Nom;
Imperative = \\n => va.imperative ! n ++ va.particle ++ ap.s ! Strong ! Neuter ! Sg ! Nom;
Indicative = \\t,pol,g,p => Indicative = \\t,pol,g,p =>
va.Indicative ! t ! p ++ va.particle ++ negStr pol ++ ap.s ! g ! persNumNumber p ! Nom; va.Indicative ! t ! p ++ va.particle ++ negStr pol ++ ap.s ! Strong ! g ! persNumNumber p ! Nom;
Nonfinite = va.Nonfinite ++ va.particle ++ ap.s ! Neuter ! Sg ! Nom; Finite = va.Indicative ;
Participle = \\t => va.Participle ! t ++ va.particle ++ ap.s ! Neuter ! Sg ! Nom} ; Remainder = \\pol,g,p => negStr pol ++ va.particle ++ ap.s ! Strong ! g ! persNumNumber p ! Nom;
Nonfinite = va.Nonfinite ++ va.particle ++ ap.s ! Strong ! Neuter ! Sg ! Nom;
Participle = \\t => va.Participle ! t ++ va.particle ++ ap.s ! Strong ! Neuter ! Sg ! Nom} ;
lin AdvVP vp adv = {Converb = vp.Converb ++ adv.s; lin AdvVP vp adv = {Converb = vp.Converb ++ adv.s;
Imperative = \\n => vp.Imperative ! n ++ adv.s;
Indicative = \\t,pol,g,p => vp.Indicative ! t ! pol ! g ! p ++ adv.s; Indicative = \\t,pol,g,p => vp.Indicative ! t ! pol ! g ! p ++ adv.s;
Finite = vp.Finite ;
Remainder = \\pol,g,p => vp.Remainder ! pol ! g ! p ++ adv.s;
Nonfinite = vp.Nonfinite ++ adv.s; Nonfinite = vp.Nonfinite ++ adv.s;
Participle = \\t => vp.Participle ! t ++ adv.s} ; Participle = \\t => vp.Participle ! t ++ adv.s} ;
lin ExtAdvVP vp adv = {Converb = vp.Converb ++ "," ++ adv.s; lin ExtAdvVP vp adv = {Converb = vp.Converb ++ "," ++ adv.s;
Imperative = \\n => vp.Imperative ! n ++ "," ++ adv.s;
Indicative = \\t,pol,g,p => vp.Indicative ! t ! pol ! g ! p ++ "," ++ adv.s; Indicative = \\t,pol,g,p => vp.Indicative ! t ! pol ! g ! p ++ "," ++ adv.s;
Finite = vp.Finite ;
Remainder = \\pol,g,p => vp.Remainder ! pol ! g ! p ++ "," ++ adv.s;
Nonfinite = vp.Nonfinite ++ "," ++ adv.s; Nonfinite = vp.Nonfinite ++ "," ++ adv.s;
Participle = \\t => vp.Participle ! t ++ "," ++ adv.s} ; Participle = \\t => vp.Participle ! t ++ "," ++ adv.s} ;
lin AdVVP adv vp = {Converb = adv.s ++ vp.Converb; lin AdVVP adv vp = {Converb = adv.s ++ vp.Converb;
Imperative = \\n => adv.s ++ vp.Imperative ! n;
Indicative = \\t,pol,g,p => adv.s ++ vp.Indicative ! t ! pol ! g ! p; Indicative = \\t,pol,g,p => adv.s ++ vp.Indicative ! t ! pol ! g ! p;
Finite = vp.Finite ;
Remainder = \\pol,g,p => negStr pol ++ adv.s ++ vp.Remainder ! Pos ! g ! p;
Nonfinite = adv.s ++ vp.Nonfinite; Nonfinite = adv.s ++ vp.Nonfinite;
Participle = \\t => adv.s ++ vp.Participle ! t} ; Participle = \\t => adv.s ++ vp.Participle ! t} ;
lin ComplSlash vps np = {Converb = vps.Converb ++ vps.particle lin ComplSlash vps np = {Converb = vps.Converb ++ vps.particle
++ vps.c2.s ++ np.s ! vps.c2.c ++ vps.sc; ++ vps.c2.s ++ np.s ! vps.c2.c ++ vps.sc;
Imperative = \\n => vps.imperative ! n ++ vps.particle ++
vps.c2.s ++ np.s ! vps.c2.c ++ vps.sc;
Indicative = \\t,pol,g,p => Indicative = \\t,pol,g,p =>
vps.Indicative ! t ! p ++ vps.particle ++ vps.Indicative ! t ! p ++ vps.particle ++
negStr pol ++ negStr pol ++
vps.c2.s ++ np.s ! vps.c2.c ++ vps.sc ; vps.c2.s ++ np.s ! vps.c2.c ++ vps.sc ;
Finite = vps.Indicative ;
Remainder = \\pol,_,_ => negStr pol ++ vps.particle ++
vps.c2.s ++ np.s ! vps.c2.c ++ vps.sc ;
Nonfinite = vps.Nonfinite ++ vps.particle ++ vps.c2.s ++ np.s ! vps.c2.c ++ vps.sc; Nonfinite = vps.Nonfinite ++ vps.particle ++ vps.c2.s ++ np.s ! vps.c2.c ++ vps.sc;
Participle = \\t => vps.Participle ! t ++ vps.particle ++ vps.c2.s ++ np.s ! vps.c2.c ++ vps.sc} ; Participle = \\t => vps.Participle ! t ++ vps.particle ++ vps.c2.s ++ np.s ! vps.c2.c ++ vps.sc} ;
lin UseComp comp = { lin UseComp comp = {
Converb = copula ! Pres ! PPl ++ comp.s ! Masc ! Sg ; Converb = "verið" ++ comp.s ! Masc ! Sg ;
Imperative = \\n => case n of {Sg => "ver" ; Pl => "verið"} ++ comp.s ! Masc ! n ;
Indicative = \\t,pol,g,p => copula ! t ! p ++ Indicative = \\t,pol,g,p => copula ! t ! p ++
negStr pol ++ negStr pol ++
comp.s ! g ! persNumNumber p ; comp.s ! g ! persNumNumber p ;
Finite = copula ;
Remainder = \\pol,g,p => negStr pol ++ comp.s ! g ! persNumNumber p ;
Nonfinite = "vera" ++ comp.s ! Masc ! Sg ; Nonfinite = "vera" ++ comp.s ! Masc ! Sg ;
Participle = \\t => "verið" ++ comp.s ! Masc ! Sg Participle = \\t => "verið" ++ comp.s ! Masc ! Sg
} ; } ;
lin CompAP ap = {s = \\g,n => ap.s ! g ! n ! Nom} ; lin CompAP ap = {s = \\g,n => ap.s ! Strong ! g ! n ! Nom} ;
lin CompNP np = {s = \\_,_ => np.s ! Nom} ; lin CompNP np = {s = \\_,_ => np.s ! Nom} ;
lin CompAdv adv = {s = \\_,_ => adv.s} ; lin CompAdv adv = {s = \\_,_ => adv.s} ;
lin CompCN cn = {s = \\_,n => cn.s ! Indef ! n ! Nom} ; lin CompCN cn = {s = \\_,n => cn.s ! Indef ! n ! Nom} ;
lin UseCopula = { lin UseCopula = {
Converb = "verið" ; Converb = "verið" ;
Imperative = table {Sg => "ver" ; Pl => "verið"} ;
Indicative = \\t,pol,_,p => copula ! t ! p ++ negStr pol ; Indicative = \\t,pol,_,p => copula ! t ! p ++ negStr pol ;
Finite = copula ;
Remainder = \\pol,_,_ => negStr pol ;
Nonfinite = "vera" ; Nonfinite = "vera" ;
Participle = \\_ => "verið" Participle = \\_ => "verið"
} ; } ;
@@ -79,7 +114,7 @@ concrete VerbFao of Verb = CatFao ** open Prelude,ResFao in {
} ; } ;
lin SlashV2A v ap = v ** { lin SlashV2A v ap = v ** {
c2 = v.c2 ; c2 = v.c2 ;
sc = ap.s ! Neuter ! Sg ! Nom sc = ap.s ! Strong ! Neuter ! Sg ! Nom
} ; } ;
lin SlashV2S v s = v ** { lin SlashV2S v s = v ** {
c2 = v.c2 ; c2 = v.c2 ;
@@ -107,14 +142,20 @@ concrete VerbFao of Verb = CatFao ** open Prelude,ResFao in {
lin ReflVP vps = lin ReflVP vps =
let np = mkNP "seg" Masc Sg P3 in { let np = mkNP "seg" Masc Sg P3 in {
Converb = vps.Converb ++ vps.particle ++ vps.c2.s ++ np.s ! vps.c2.c ++ vps.sc ; Converb = vps.Converb ++ vps.particle ++ vps.c2.s ++ np.s ! vps.c2.c ++ vps.sc ;
Imperative = \\n => vps.imperative ! n ++ vps.particle ++ vps.c2.s ++ np.s ! vps.c2.c ++ vps.sc ;
Indicative = \\t,pol,g,p => Indicative = \\t,pol,g,p =>
vps.Indicative ! t ! p ++ vps.particle ++ negStr pol ++ vps.c2.s ++ np.s ! vps.c2.c ++ vps.sc ; vps.Indicative ! t ! p ++ vps.particle ++ negStr pol ++ vps.c2.s ++ np.s ! vps.c2.c ++ vps.sc ;
Finite = vps.Indicative ;
Remainder = \\pol,_,_ => negStr pol ++ vps.particle ++ vps.c2.s ++ np.s ! vps.c2.c ++ vps.sc ;
Nonfinite = vps.Nonfinite ++ vps.particle ++ vps.c2.s ++ np.s ! vps.c2.c ++ vps.sc ; Nonfinite = vps.Nonfinite ++ vps.particle ++ vps.c2.s ++ np.s ! vps.c2.c ++ vps.sc ;
Participle = \\t => vps.Participle ! t ++ vps.particle ++ vps.c2.s ++ np.s ! vps.c2.c ++ vps.sc Participle = \\t => vps.Participle ! t ++ vps.particle ++ vps.c2.s ++ np.s ! vps.c2.c ++ vps.sc
} ; } ;
lin PassV2 v = { lin PassV2 v = {
Converb = "verið" ++ v.Participle ! Past ; Converb = "verið" ++ v.Participle ! Past ;
Imperative = table {Sg => "ver" ++ v.Participle ! Past ; Pl => "verið" ++ v.Participle ! Past} ;
Indicative = \\t,pol,_,p => copula ! t ! p ++ negStr pol ++ v.Participle ! Past ; Indicative = \\t,pol,_,p => copula ! t ! p ++ negStr pol ++ v.Participle ! Past ;
Finite = copula ;
Remainder = \\pol,_,_ => negStr pol ++ v.Participle ! Past ;
Nonfinite = "vera" ++ v.Participle ! Past ; Nonfinite = "vera" ++ v.Participle ! Past ;
Participle = \\_ => "verið" ++ v.Participle ! Past Participle = \\_ => "verið" ++ v.Participle ! Past
} ; } ;
+2 -2
View File
@@ -225,8 +225,8 @@ concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude, Maybe in {
-- warmest -- warmest
OrdSuperl a = { OrdSuperl a = {
s = \\c => case a.hasComp of { s = \\c => case a.hasComp of {
True => a.s ! ASuperl ; True => a.s ! ACompar ;
False => "l-iktar" ++ a.s ! APosit (GSg Masc) --- should agree False => "iktar" ++ a.s ! APosit (GSg Masc) --- should agree
} }
} ; } ;