diff --git a/src/macedonian/AdjectiveMkd.gf b/src/macedonian/AdjectiveMkd.gf index 681d21b0..9f1f527b 100644 --- a/src/macedonian/AdjectiveMkd.gf +++ b/src/macedonian/AdjectiveMkd.gf @@ -1,4 +1,21 @@ concrete AdjectiveMkd of Adjective = CatMkd ** open Prelude,ResMkd in { + lin AdAP a ap = {s = \\s,g => a.s ++ ap.s ! s ! g; + isPre = ap.isPre} ; + lin AdjOrd o = {s = \\s,g => o.s; isPre = False} ; + lin AdvAP ap a = {s = \\s,g => ap.s ! s ! g ++ a.s; + isPre = ap.isPre} ; + lin CAdvAP c ap np = {s = \\s,g => c.s + ++ ap.s ! s ! g ++ np.s ! RSubj; + isPre = ap.isPre} ; + lin ComparA a np = {s = \\s,g => a.s ! s ! g ++ np.s ! RSubj; + isPre = False} ; + lin ComplA2 a2 np = {s = \\s,g => a2.s ! s ! g ++ np.s ! RSubj; + isPre = False} ; lin PositA a = a ** {isPre = True} ; + lin ReflA2 a2 = {s = \\s,g => a2.s ! s ! g; isPre = False} ; + lin SentAP ap sc = {s = \\s,g => ap.s ! s ! g ++ sc.s; + isPre = ap.isPre} ; + lin UseA2 a2 = {s = \\s,g => a2.s ! s ! g; isPre = False} ; + lin UseComparA a = {s = \\s,g => a.s ! s ! g; isPre = False} ; } diff --git a/src/macedonian/AdverbMkd.gf b/src/macedonian/AdverbMkd.gf index 847c703a..e41b07b0 100644 --- a/src/macedonian/AdverbMkd.gf +++ b/src/macedonian/AdverbMkd.gf @@ -1,3 +1,12 @@ concrete AdverbMkd of Adverb = CatMkd ** open Prelude,ResMkd in { + lin AdAdv a a2 = {s = a.s ++ a2.s} ; + lin AdnCAdv c = {s = c.s} ; + lin ComparAdvAdj c a np = {s = c.s + ++ a.s ! Indef ! np.a.g ++ np.s ! RSubj} ; + lin ComparAdvAdjS c a s = {s = c.s + ++ a.s ! Indef ! GSg Masc ++ s.s} ; + lin PositAdAAdj a = {s = a.s ! Indef ! GSg Masc} ; + lin PositAdvAdj a = {s = a.s ! Indef ! GSg Masc} ; lin PrepNP p np = {s = p.s ++ np.s ! RPrep} ; + lin SubjS s s2 = {s = s.s ++ s2.s} ; } diff --git a/src/macedonian/GrammarMkd.gf b/src/macedonian/GrammarMkd.gf index 0da258da..4d593af1 100644 --- a/src/macedonian/GrammarMkd.gf +++ b/src/macedonian/GrammarMkd.gf @@ -1,2 +1,2 @@ -concrete GrammarMkd of Grammar = VerbMkd,SentenceMkd,QuestionMkd,NounMkd,AdverbMkd,AdjectiveMkd,IdiomMkd,NumeralMkd,PhraseMkd,RelativeMkd,TextMkd,StructuralMkd,TenseMkd ** { +concrete GrammarMkd of Grammar = NamesMkd,VerbMkd,SentenceMkd,QuestionMkd,NounMkd,AdverbMkd,AdjectiveMkd,IdiomMkd,NumeralMkd,PhraseMkd,RelativeMkd,TextMkd,StructuralMkd,TenseMkd ** { } diff --git a/src/macedonian/IdiomMkd.gf b/src/macedonian/IdiomMkd.gf index 7e7a30ec..770e1577 100644 --- a/src/macedonian/IdiomMkd.gf +++ b/src/macedonian/IdiomMkd.gf @@ -1,6 +1,20 @@ concrete IdiomMkd of Idiom = CatMkd ** open Prelude,ResMkd in { -lin ProgrVP vp = vp ** { + lin CleftAdv a s = {s = \\t,a2,p,o => a.s ++ s.s} ; + lin CleftNP np rs = {s = \\t,a,p,o => np.s ! RSubj + ++ rs.s ! np.a.g} ; + lin ExistIP ip = {s = \\t,a,p => ip.s} ; + lin ExistIPAdv ip a = {s = \\t,a2,p => ip.s ++ a.s} ; + lin ExistNP np = {s = \\t,a,p,o => np.s ! RSubj} ; + lin ExistNPAdv np a = {s = \\t,a2,p,o => np.s ! RSubj ++ a.s} ; + lin GenericCl vp = {s = \\t,a,p,o => vp.present ! Imperfective ! Sg + ! P1} ; + lin ImpP3 np vp = {s = np.s ! RSubj + ++ vp.present ! Imperfective ! Sg ! np.a.p} ; + lin ImpPl1 vp = {s = vp.present ! Imperfective ! Sg ! P1} ; + lin ImpersCl vp = {s = \\t,a,p,o => vp.present ! Imperfective ! Sg + ! P1} ; + lin ProgrVP vp = vp ** { present = \\a,n,p => vp.present ! Imperfective ! n ! p ; imperfect = \\a,n,p => vp.imperfect ! Imperfective ! n ! p ; imperative = \\a,n => vp.imperative ! Imperfective ! n ; @@ -11,4 +25,28 @@ lin ProgrVP vp = vp ** { adverbial = vp.participle.adverbial} } ; + lin SelfAdVVP vp = {present = \\a,n,p => vp.present ! a ! n ! p; + aorist = \\n,p => vp.aorist ! n ! p; + imperfect = \\a,n,p => vp.imperfect ! a ! n ! p; + imperative = \\a,n => vp.imperative ! a ! n; + participle = {aorist = \\a,g => vp.participle.aorist ! a ! g; + imperfect = \\a,g => vp.participle.imperfect ! a ! g; + perfect = \\a => vp.participle.perfect ! a; + adjectival = \\a => vp.participle.adjectival ! a; + adverbial = vp.participle.adverbial}; + noun_from_verb = vp.noun_from_verb; vtype = vp.vtype; + compl = \\v => vp.compl ! {g = GSg Masc; p = P1}} ; + lin SelfAdvVP vp = {present = \\a,n,p => vp.present ! a ! n ! p; + aorist = \\n,p => vp.aorist ! n ! p; + imperfect = \\a,n,p => vp.imperfect ! a ! n ! p; + imperative = \\a,n => vp.imperative ! a ! n; + participle = {aorist = \\a,g => vp.participle.aorist ! a ! g; + imperfect = \\a,g => vp.participle.imperfect ! a ! g; + perfect = \\a => vp.participle.perfect ! a; + adjectival = \\a => vp.participle.adjectival ! a; + adverbial = vp.participle.adverbial}; + noun_from_verb = vp.noun_from_verb; vtype = vp.vtype; + compl = \\v => vp.compl ! {g = GSg Masc; p = P1}} ; + lin SelfNP np = {s = \\r => np.s ! r; vocative = np.vocative; + a = {g = np.a.g; p = np.a.p}} ; } diff --git a/src/macedonian/NamesMkd.gf b/src/macedonian/NamesMkd.gf new file mode 100644 index 00000000..db236ee7 --- /dev/null +++ b/src/macedonian/NamesMkd.gf @@ -0,0 +1,20 @@ +concrete NamesMkd of Names = CatMkd ** open Prelude,ResMkd in { + flags + coding = "UTF-8" ; + lin AdjLN ap ln = {s = ap.s ! Indef ! GSg Masc ++ ln.s} ; + lin FemaleSurname sn = {s = \\r => sn.s; vocative = sn.s; + a = {g = GSg Masc; p = P1}} ; + lin FullName gn sn = {s = \\r => gn.s ++ sn.s; + vocative = gn.s ++ sn.s; a = {g = GSg Masc; p = P1}} ; + lin GivenName gn = {s = \\r => gn.s; vocative = gn.s; + a = {g = GSg Masc; p = P1}} ; + lin InLN ln = {s = ln.s} ; + lin MaleSurname sn = {s = \\r => sn.s; vocative = sn.s; + a = {g = GSg Masc; p = P1}} ; + lin PlSurname sn = {s = \\r => sn.s; vocative = sn.s; + a = {g = GSg Masc; p = P1}} ; + lin PlainLN ln = {s = \\r => ln.s; vocative = ln.s; + a = {g = GSg Masc; p = P1}} ; + lin UseLN ln = {s = \\r => ln.s; vocative = ln.s; + a = {g = GSg Masc; p = P1}} ; +} \ No newline at end of file diff --git a/src/macedonian/NounMkd.gf b/src/macedonian/NounMkd.gf index db435390..05e70b08 100644 --- a/src/macedonian/NounMkd.gf +++ b/src/macedonian/NounMkd.gf @@ -1,4 +1,5 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { + lin AdNum a c = {s = a.s ++ c.s} ; lin AdjCN ap cn = { s = case ap.isPre of { True => \\s,n => ap.s ! s @@ -21,12 +22,30 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { } ++ cn.vocative ! n; count_form = ap.s ! Indef ! GPl ++ cn.count_form; g = cn.g} ; + lin AdjDAP d ap = {s = d.s ++ ap.s ! Indef ! GSg Masc} ; lin AdvCN cn adv = { s = \\s,n => cn.s ! s ! n ++ adv.s; count_form = cn.count_form ++ adv.s; vocative = \\n => cn.vocative ! n ++ adv.s; g = cn.g } ; + lin AdvNP np a = {s = \\r => np.s ! r ++ a.s; + vocative = np.vocative ++ a.s; a = {g = np.a.g; p = np.a.p}} ; + lin ApposCN cn np = {s = \\s,n => cn.s ! s ! n ++ np.s ! RSubj; + count_form = cn.count_form ++ np.s ! RSubj; + vocative = \\n => cn.vocative ! n ++ np.vocative; g = cn.g} ; + lin ComplN2 n2 np = {s = \\s,n => n2.s ! s ! n ++ np.s ! RSubj; + count_form = n2.count_form ++ np.s ! RSubj; + vocative = \\n => n2.vocative ! n ++ np.vocative; g = n2.g} ; + lin ComplN3 n3 np = {s = \\s,n => n3.s ! s ! n ++ np.s ! RSubj; + count_form = n3.count_form ++ np.s ! RSubj; + vocative = \\n => n3.vocative ! n ++ np.vocative; + rel = \\s,g => n3.rel ! s ! g ++ np.s ! RSubj; + relType = n3.relType; g = n3.g; + c2 = {s = n3.c2.s ++ np.s ! RSubj; c = n3.c2.c}} ; + lin CountNP d np = {s = \\r => d.s ! Masc ++ np.s ! r; + vocative = d.s ! Masc ++ np.vocative; + a = {g = np.a.g; p = np.a.p}} ; lin DefArt = {s = \\_=>[]; sp = Def Unspecified} ; lin DetCN det cn = { s = \\r => case det.n of { @@ -37,10 +56,23 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { a = {g = genNum cn.g (nnum2num det.n) ; p = P3}; } ; + lin DetDAP d = {s = d.s ! Masc} ; + lin DetNP d = {s = \\r => d.s ! Masc; vocative = d.s ! Masc; + a = {g = GSg Masc; p = P1}} ; lin DetQuant q num = {s = \\g => q.s ! genNum g (nnum2num num.n) ++ num.s; n = num.n; sp = q.sp} ; + lin DetQuantOrd q n o = {s = \\g => q.s ! GSg Masc ++ n.s ++ o.s; + n = n.n; sp = q.sp} ; + lin ExtAdvNP np a = {s = \\r => np.s ! r ++ a.s; + vocative = np.vocative ++ a.s; a = {g = np.a.g; p = np.a.p}} ; lin IndefArt = {s = \\_=>[]; sp = Indef} ; + lin MassNP cn = {s = \\r => cn.s ! Indef ! Sg; + vocative = cn.vocative ! Sg; a = {g = GSg Masc; p = P1}} ; + lin NumCard c = {s = c.s; n = NNum Sg} ; + lin NumDecimal d = {s = d.s} ; + lin NumDigits d = {s = d.s} ; + lin NumNumeral n = {s = n.s} ; lin NumPl = {s = []; n = NNum Pl} ; lin NumSg = {s = []; n = NNum Sg} ; lin UseN s = s ; @@ -51,10 +83,45 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in { vocative = np.vocative ++ rs.s ! np.a.g ; a = np.a; } ; + lin OrdDigits d = {s = d.s} ; + lin OrdNumeral n = {s = n.s} ; + lin OrdNumeralSuperl n a = {s = n.s ++ a.s ! Indef ! GSg Masc} ; + lin OrdSuperl a = {s = a.s ! Indef ! GSg Masc} ; + lin PPartNP np v2 = {s = \\r => np.s ! r + ++ v2.present ! Imperfective ! Sg ! np.a.p; + vocative = np.vocative ++ v2.present ! Imperfective ! Sg ! np.a.p; + a = {g = np.a.g; p = np.a.p}} ; + lin PartNP cn np = {s = \\s,n => cn.s ! s ! n ++ np.s ! RSubj; + count_form = cn.count_form ++ np.s ! RSubj; + vocative = \\n => cn.vocative ! n ++ np.vocative; g = cn.g} ; + lin PossNP cn np = {s = \\s,n => cn.s ! s ! n ++ np.s ! RSubj; + count_form = cn.count_form ++ np.s ! RSubj; + vocative = \\n => cn.vocative ! n ++ np.vocative; g = cn.g} ; + lin PossPron p = {s = \\g => p.s ! RSubj; sp = Indef} ; + lin PredetNP p np = {s = \\r => p.s ++ np.s ! r; + vocative = p.s ++ np.vocative; a = {g = np.a.g; p = np.a.p}} ; + lin QuantityNP d mu = {s = \\r => d.s ++ mu.s; + vocative = d.s ++ mu.s; a = {g = GSg Masc; p = P1}} ; lin RelCN cn rs = { s = \\sp,n => cn.s ! sp ! n ++ rs.s ! genNum cn.g n ; count_form = cn.count_form ++ rs.s ! GPl ; vocative = \\n => cn.vocative ! n ++ rs.s ! genNum cn.g n ; g = cn.g; } ; + lin SentCN cn sc = {s = \\s,n => cn.s ! s ! n ++ sc.s; + count_form = cn.count_form ++ sc.s; + vocative = \\n => cn.vocative ! n ++ sc.s; g = cn.g} ; + lin Use2N3 n3 = {s = \\s,n => n3.s ! s ! n; + count_form = n3.count_form; vocative = \\n => n3.vocative ! n; + rel = \\s,g => n3.rel ! s ! g; relType = n3.relType; g = n3.g; + c2 = {s = n3.c2.s; c = n3.c2.c}} ; + lin Use3N3 n3 = {s = \\s,n => n3.s ! s ! n; + count_form = n3.count_form; vocative = \\n => n3.vocative ! n; + rel = \\s,g => n3.rel ! s ! g; relType = n3.relType; g = n3.g; + c2 = {s = n3.c2.s; c = n3.c2.c}} ; + lin UseN2 n2 = {s = \\s,n => n2.s ! s ! n; + count_form = n2.count_form; vocative = \\n => n2.vocative ! n; + g = n2.g} ; + lin UsePN pn = {s = \\r => pn.s; vocative = pn.s; + a = {g = GSg Masc; p = P1}} ; } diff --git a/src/macedonian/PhraseMkd.gf b/src/macedonian/PhraseMkd.gf index 74263846..e88bc653 100644 --- a/src/macedonian/PhraseMkd.gf +++ b/src/macedonian/PhraseMkd.gf @@ -1,15 +1,21 @@ concrete PhraseMkd of Phrase = CatMkd ** open Prelude, ResMkd in { - - lin - PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ; - - UttS s = s ; - UttQS s = s ; - UttInterj i = i ; - - NoPConj = {s = []} ; - - NoVoc = {s = []} ; - VocNP np = {s = SOFT_BIND++"," ++ np.vocative} ; - + lin NoPConj = {s : Str = []} ; + lin NoVoc = {s : Str = []} ; + lin PConjConj c = {s = c.s} ; + lin PhrUtt pconj utt voc = {s : Str = pconj.s ++ utt.s ++ voc.s} ; + lin UttAP ap = {s = ap.s ! Indef ! GSg Masc} ; + lin UttAdv a = {s = a.s} ; + lin UttCN cn = {s = cn.s ! Indef ! Sg} ; + lin UttCard c = {s = c.s} ; + lin UttIAdv i = {s = i.s} ; + lin UttIP ip = {s = ip.s} ; + lin UttImpPl p i = {s = p.s ++ i.s} ; + lin UttImpPol p i = {s = p.s ++ i.s} ; + lin UttImpSg p i = {s = p.s ++ i.s} ; + lin UttInterj i = i ; + lin UttNP np = {s = np.s ! RSubj} ; + lin UttQS s = s ; + lin UttS s = s ; + lin UttVP vp = {s = vp.present ! Imperfective ! Sg ! P1} ; + lin VocNP np = {s : Str = SOFT_BIND ++ "," ++ np.vocative} ; } diff --git a/src/macedonian/QuestionMkd.gf b/src/macedonian/QuestionMkd.gf index e36e7d8c..a6c50c0d 100644 --- a/src/macedonian/QuestionMkd.gf +++ b/src/macedonian/QuestionMkd.gf @@ -1,3 +1,19 @@ concrete QuestionMkd of Question = CatMkd ** open Prelude,ResMkd in { + lin AdvIAdv i a = {s = i.s ++ a.s} ; + lin AdvIP ip a = {s = ip.s ++ a.s; g = ip.g} ; + lin CompIAdv i = {s = i.s} ; + lin CompIP ip = {s = ip.s} ; + lin IdetCN i cn = {s = i.s ! cn.g ++ cn.s ! Indef ! i.n; + g = GSg Masc} ; + lin IdetIP i = {s = i.s ! Masc; g = GSg Masc} ; + lin IdetQuant i n = {s = \\g => i.s ! GSg Masc ++ n.s; n = Sg} ; + lin PrepIP p ip = {s = p.s ++ ip.s} ; + lincat QVP = {s : Str} ; lin QuestCl cl = {s = \\t,a,p => cl.s ! t ! a ! p ! Quest} ; + lin QuestIAdv i cl = {s = \\t,a,p => i.s + ++ cl.s ! t ! a ! p ! Main} ; + lin QuestIComp i np = {s = \\t,a,p => i.s ++ np.s ! RSubj} ; + lin QuestSlash ip c = {s = \\t,a,p => ip.s ++ c.s} ; + lin QuestVP ip vp = {s = \\t,a,p => ip.s + ++ vp.present ! Imperfective ! Sg ! P1} ; } diff --git a/src/macedonian/RelativeMkd.gf b/src/macedonian/RelativeMkd.gf index 533d8b04..5cb027d6 100644 --- a/src/macedonian/RelativeMkd.gf +++ b/src/macedonian/RelativeMkd.gf @@ -1,4 +1,5 @@ concrete RelativeMkd of Relative = CatMkd ** open Prelude,ResMkd in { + lin FunRP p np rp = {s = \\g => p.s ++ np.s ! RSubj ++ rp.s ! g} ; lin IdRP = {s = table { GSg Masc => "кој" ; GSg Fem => "која" ; @@ -6,6 +7,8 @@ concrete RelativeMkd of Relative = CatMkd ** open Prelude,ResMkd in { GPl => "кои" } } ; + lin RelCl cl = {s = \\g,t,a,p => cl.s ! t ! a ! p ! Main} ; + lin RelSlash rp c = {s = \\g,t,a,p => rp.s ! g ++ c.s} ; lin RelVP rp vp = { s = \\gn,t,a,p => mkClause (rp.s ! gn) {g=gn; p=P3} vp ! t ! a ! p ! Main } ; diff --git a/src/macedonian/SentenceMkd.gf b/src/macedonian/SentenceMkd.gf index afa634a0..cfe0a256 100644 --- a/src/macedonian/SentenceMkd.gf +++ b/src/macedonian/SentenceMkd.gf @@ -1,15 +1,25 @@ concrete SentenceMkd of Sentence = CatMkd ** open Prelude,ResMkd in { - -lin PredVP np vp = {s = mkClause (np.s ! RSubj) np.a vp} ; - - UseCl t p cl = { - s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! Main - } ; - UseQCl t p cl = { - s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p - } ; - UseRCl t p cl = { - s = \\gn => t.s ++ p.s ++ cl.s ! gn ! t.t ! t.a ! p.p - } ; - + lin AdvImp a i = {s = a.s ++ i.s} ; + lin AdvS a s = {s = a.s ++ s.s} ; + lin AdvSlash c a = {s = c.s ++ a.s} ; + lin EmbedQS qs = {s = qs.s} ; + lin EmbedS s = {s = s.s} ; + lin EmbedVP vp = {s = vp.present ! Imperfective ! Sg ! P1} ; + lin ExtAdvS a s = {s = a.s ++ s.s} ; + lin ImpVP vp = {s = vp.present ! Imperfective ! Sg ! P1} ; + lin PredSCVP sc vp = {s = \\t,a,p,o => sc.s + ++ vp.present ! Imperfective ! Sg ! P1} ; + lin PredVP np vp = {s = mkClause (np.s ! RSubj) np.a vp} ; + lin RelS s rs = {s = s.s ++ rs.s ! GSg Masc} ; + lin SSubjS s s2 s3 = {s = s.s ++ s2.s ++ s3.s} ; + lin SlashPrep cl p = {s = cl.s ! VPresent ! Simul ! Pos ! Main + ++ p.s} ; + lin SlashVP np v = {s = np.s ! RSubj + ++ v.present ! Imperfective ! Sg ! np.a.p} ; + lin SlashVS np vs s = {s = np.s ! RSubj + ++ vs.present ! Imperfective ! Sg ! np.a.p ++ s.s} ; + lin UseCl t p cl = {s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! Main} ; + lin UseQCl t p cl = {s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p} ; + lin UseRCl t p cl = {s = \\gn => t.s ++ p.s ++ cl.s ! gn ! t.t ! t.a ! p.p} ; + lin UseSlash t p c = {s = t.s ++ p.s ++ c.s} ; } diff --git a/src/macedonian/VerbMkd.gf b/src/macedonian/VerbMkd.gf index 4286e48e..c9314fff 100644 --- a/src/macedonian/VerbMkd.gf +++ b/src/macedonian/VerbMkd.gf @@ -1,7 +1,351 @@ concrete VerbMkd of Verb = CatMkd ** open Prelude,ResMkd in { - lin UseV v = v ** {compl = \\_ => []}; + lin AdVVP a vp = {present = \\a2,n,p => a.s + ++ vp.present ! a2 ! n ! p; + aorist = \\n,p => a.s ++ vp.aorist ! n ! p; + imperfect = \\a2,n,p => a.s ++ vp.imperfect ! a2 ! n ! p; + imperative = \\a2,n => a.s ++ vp.imperative ! a2 ! n; + participle = {aorist = \\a2,g => a.s + ++ vp.participle.aorist ! a2 ! g; + imperfect = \\a2,g => a.s ++ vp.participle.imperfect ! a2 ! g; + perfect = \\a2 => a.s ++ vp.participle.perfect ! a2; + adjectival = \\a2 => a.s ++ vp.participle.adjectival ! a2; + adverbial = a.s ++ vp.participle.adverbial}; + noun_from_verb = a.s ++ vp.noun_from_verb; vtype = vp.vtype; + compl = \\v => a.s ++ vp.compl ! {g = GSg Masc; p = P1}} ; + lin AdVVPSlash a v = {present = \\a2,n,p => a.s + ++ v.present ! a2 ! n ! p; + aorist = \\n,p => a.s ++ v.aorist ! n ! p; + imperfect = \\a2,n,p => a.s ++ v.imperfect ! a2 ! n ! p; + imperative = \\a2,n => a.s ++ v.imperative ! a2 ! n; + participle = {aorist = \\a2,g => a.s + ++ v.participle.aorist ! a2 ! g; + imperfect = \\a2,g => a.s ++ v.participle.imperfect ! a2 ! g; + perfect = \\a2 => a.s ++ v.participle.perfect ! a2; + adjectival = \\a2 => a.s ++ v.participle.adjectival ! a2; + adverbial = a.s ++ v.participle.adverbial}; + noun_from_verb = a.s ++ v.noun_from_verb; vtype = v.vtype; + compl = \\v2 => a.s ++ v.compl ! {g = GSg Masc; p = P1}; + c2 = {s = a.s ++ v.c2.s; c = v.c2.c}} ; + lin AdvVP vp a = {present = \\a2,n,p => vp.present ! a2 ! n ! p + ++ a.s; + aorist = \\n,p => vp.aorist ! n ! p ++ a.s; + imperfect = \\a2,n,p => vp.imperfect ! a2 ! n ! p ++ a.s; + imperative = \\a2,n => vp.imperative ! a2 ! n ++ a.s; + participle = {aorist = \\a2,g => vp.participle.aorist ! a2 ! g + ++ a.s; + imperfect = \\a2,g => vp.participle.imperfect ! a2 ! g ++ a.s; + perfect = \\a2 => vp.participle.perfect ! a2 ++ a.s; + adjectival = \\a2 => vp.participle.adjectival ! a2 ++ a.s; + adverbial = vp.participle.adverbial ++ a.s}; + noun_from_verb = vp.noun_from_verb ++ a.s; vtype = vp.vtype; + compl = \\v => vp.compl ! {g = GSg Masc; p = P1} ++ a.s} ; + lin AdvVPSlash v a = {present = \\a2,n,p => v.present ! a2 ! n ! p + ++ a.s; + aorist = \\n,p => v.aorist ! n ! p ++ a.s; + imperfect = \\a2,n,p => v.imperfect ! a2 ! n ! p ++ a.s; + imperative = \\a2,n => v.imperative ! a2 ! n ++ a.s; + participle = {aorist = \\a2,g => v.participle.aorist ! a2 ! g + ++ a.s; + imperfect = \\a2,g => v.participle.imperfect ! a2 ! g ++ a.s; + perfect = \\a2 => v.participle.perfect ! a2 ++ a.s; + adjectival = \\a2 => v.participle.adjectival ! a2 ++ a.s; + adverbial = v.participle.adverbial ++ a.s}; + noun_from_verb = v.noun_from_verb ++ a.s; vtype = v.vtype; + compl = \\v2 => v.compl ! {g = GSg Masc; p = P1} ++ a.s; + c2 = {s = v.c2.s ++ a.s; c = v.c2.c}} ; + lin CompAP ap = {s = ap.s ! Indef ! GSg Masc} ; + lin CompAdv a = {s = a.s} ; + lin CompCN cn = {s = cn.s ! Indef ! Sg} ; + lin CompNP np = {s = np.s ! RSubj} ; lin ComplSlash vp np = vp ** {compl = \\a => vp.compl ! a ++ vp.c2.s ++ np.s ! RObj vp.c2.c} ; + lin ComplVA va ap = {present = \\a,n,p => va.present ! a ! n ! p + ++ ap.s ! Indef ! GSg Masc; + aorist = \\n,p => va.aorist ! n ! p ++ ap.s ! Indef ! GSg Masc; + imperfect = \\a,n,p => va.imperfect ! a ! n ! p + ++ ap.s ! Indef ! GSg Masc; + imperative = \\a,n => va.imperative ! a ! n + ++ ap.s ! Indef ! GSg Masc; + participle = {aorist = \\a,g => va.participle.aorist ! a ! g + ++ ap.s ! Indef ! g; + imperfect = \\a,g => va.participle.imperfect ! a ! g + ++ ap.s ! Indef ! g; + perfect = \\a => va.participle.perfect ! a + ++ ap.s ! Indef ! GSg Masc; + adjectival = \\a => va.participle.adjectival ! a + ++ ap.s ! Indef ! GSg Masc; + adverbial = va.participle.adverbial + ++ ap.s ! Indef ! GSg Masc}; + noun_from_verb = va.noun_from_verb ++ ap.s ! Indef ! GSg Masc; + vtype = va.vtype; + compl = \\v => va.present ! Imperfective ! Sg ! v.p + ++ ap.s ! Indef ! v.g} ; + lin ComplVQ vq qs = {present = \\a,n,p => vq.present ! a ! n ! p + ++ qs.s; + aorist = \\n,p => vq.aorist ! n ! p ++ qs.s; + imperfect = \\a,n,p => vq.imperfect ! a ! n ! p ++ qs.s; + imperative = \\a,n => vq.imperative ! a ! n ++ qs.s; + participle = {aorist = \\a,g => vq.participle.aorist ! a ! g + ++ qs.s; + imperfect = \\a,g => vq.participle.imperfect ! a ! g ++ qs.s; + perfect = \\a => vq.participle.perfect ! a ++ qs.s; + adjectival = \\a => vq.participle.adjectival ! a ++ qs.s; + adverbial = vq.participle.adverbial ++ qs.s}; + noun_from_verb = vq.noun_from_verb ++ qs.s; vtype = vq.vtype; + compl = \\v => vq.present ! Imperfective ! Sg ! v.p ++ qs.s} ; + lin ComplVS vs s = {present = \\a,n,p => vs.present ! a ! n ! p + ++ s.s; + aorist = \\n,p => vs.aorist ! n ! p ++ s.s; + imperfect = \\a,n,p => vs.imperfect ! a ! n ! p ++ s.s; + imperative = \\a,n => vs.imperative ! a ! n ++ s.s; + participle = {aorist = \\a,g => vs.participle.aorist ! a ! g + ++ s.s; + imperfect = \\a,g => vs.participle.imperfect ! a ! g ++ s.s; + perfect = \\a => vs.participle.perfect ! a ++ s.s; + adjectival = \\a => vs.participle.adjectival ! a ++ s.s; + adverbial = vs.participle.adverbial ++ s.s}; + noun_from_verb = vs.noun_from_verb ++ s.s; vtype = vs.vtype; + compl = \\v => vs.present ! Imperfective ! Sg ! v.p ++ s.s} ; + lin ComplVV vv vp = {present = \\a,n,p => vv.present ! a ! n ! p + ++ vp.present ! a ! n ! p; + aorist = \\n,p => vv.aorist ! n ! p ++ vp.aorist ! n ! p; + imperfect = \\a,n,p => vv.imperfect ! a ! n ! p + ++ vp.imperfect ! a ! n ! p; + imperative = \\a,n => vv.imperative ! a ! n + ++ vp.imperative ! a ! n; + participle = {aorist = \\a,g => vv.participle.aorist ! a ! g + ++ vp.participle.aorist ! a ! g; + imperfect = \\a,g => vv.participle.imperfect ! a ! g + ++ vp.participle.imperfect ! a ! g; + perfect = \\a => vv.participle.perfect ! a + ++ vp.participle.perfect ! a; + adjectival = \\a => vv.participle.adjectival ! a + ++ vp.participle.adjectival ! a; + adverbial = vv.participle.adverbial + ++ vp.participle.adverbial}; + noun_from_verb = vv.noun_from_verb ++ vp.noun_from_verb; + vtype = vp.vtype; + compl = \\v => vv.present ! Imperfective ! Sg ! v.p + ++ vp.compl ! {g = GSg Masc; p = P1}} ; + lin ExtAdvVP vp a = {present = \\a2,n,p => vp.present ! a2 ! n ! p + ++ a.s; + aorist = \\n,p => vp.aorist ! n ! p ++ a.s; + imperfect = \\a2,n,p => vp.imperfect ! a2 ! n ! p ++ a.s; + imperative = \\a2,n => vp.imperative ! a2 ! n ++ a.s; + participle = {aorist = \\a2,g => vp.participle.aorist ! a2 ! g + ++ a.s; + imperfect = \\a2,g => vp.participle.imperfect ! a2 ! g ++ a.s; + perfect = \\a2 => vp.participle.perfect ! a2 ++ a.s; + adjectival = \\a2 => vp.participle.adjectival ! a2 ++ a.s; + adverbial = vp.participle.adverbial ++ a.s}; + noun_from_verb = vp.noun_from_verb ++ a.s; vtype = vp.vtype; + compl = \\v => vp.compl ! {g = GSg Masc; p = P1} ++ a.s} ; + lin PassV2 v2 = {present = \\a,n,p => v2.present ! a ! n ! p; + aorist = \\n,p => v2.aorist ! n ! p; + imperfect = \\a,n,p => v2.imperfect ! a ! n ! p; + imperative = \\a,n => v2.imperative ! a ! n; + participle = {aorist = \\a,g => v2.participle.aorist ! a ! g; + imperfect = \\a,g => v2.participle.imperfect ! a ! g; + perfect = \\a => v2.participle.perfect ! a; + adjectival = \\a => v2.participle.adjectival ! a; + adverbial = v2.participle.adverbial}; + noun_from_verb = v2.noun_from_verb; vtype = v2.vtype; + compl = \\v => v2.present ! Imperfective ! Sg ! v.p} ; + lin ReflVP v = {present = \\a,n,p => v.present ! a ! n ! p; + aorist = \\n,p => v.aorist ! n ! p; + imperfect = \\a,n,p => v.imperfect ! a ! n ! p; + imperative = \\a,n => v.imperative ! a ! n; + participle = {aorist = \\a,g => v.participle.aorist ! a ! g; + imperfect = \\a,g => v.participle.imperfect ! a ! g; + perfect = \\a => v.participle.perfect ! a; + adjectival = \\a => v.participle.adjectival ! a; + adverbial = v.participle.adverbial}; + noun_from_verb = v.noun_from_verb; vtype = v.vtype; + compl = \\v2 => v.compl ! {g = GSg Masc; p = P1}} ; + lin Slash2V3 v3 np = {present = \\a,n,p => v3.present ! a ! n ! p + ++ np.s ! RSubj; + aorist = \\n,p => v3.aorist ! n ! p ++ np.s ! RSubj; + imperfect = \\a,n,p => v3.imperfect ! a ! n ! p ++ np.s ! RSubj; + imperative = \\a,n => v3.imperative ! a ! n ++ np.s ! RSubj; + participle = {aorist = \\a,g => v3.participle.aorist ! a ! g + ++ np.s ! RSubj; + imperfect = \\a,g => v3.participle.imperfect ! a ! g + ++ np.s ! RSubj; + perfect = \\a => v3.participle.perfect ! a ++ np.s ! RSubj; + adjectival = \\a => v3.participle.adjectival ! a + ++ np.s ! RSubj; + adverbial = v3.participle.adverbial ++ np.s ! RSubj}; + noun_from_verb = v3.noun_from_verb ++ np.s ! RSubj; + vtype = v3.vtype; + compl = \\v => v3.present ! Imperfective ! Sg ! v.p + ++ np.s ! RSubj; + c2 = {s = v3.c2.s ++ np.s ! RSubj; c = v3.c2.c}} ; + lin Slash3V3 v3 np = {present = \\a,n,p => v3.present ! a ! n ! p + ++ np.s ! RSubj; + aorist = \\n,p => v3.aorist ! n ! p ++ np.s ! RSubj; + imperfect = \\a,n,p => v3.imperfect ! a ! n ! p ++ np.s ! RSubj; + imperative = \\a,n => v3.imperative ! a ! n ++ np.s ! RSubj; + participle = {aorist = \\a,g => v3.participle.aorist ! a ! g + ++ np.s ! RSubj; + imperfect = \\a,g => v3.participle.imperfect ! a ! g + ++ np.s ! RSubj; + perfect = \\a => v3.participle.perfect ! a ++ np.s ! RSubj; + adjectival = \\a => v3.participle.adjectival ! a + ++ np.s ! RSubj; + adverbial = v3.participle.adverbial ++ np.s ! RSubj}; + noun_from_verb = v3.noun_from_verb ++ np.s ! RSubj; + vtype = v3.vtype; + compl = \\v => v3.present ! Imperfective ! Sg ! v.p + ++ np.s ! RSubj; + c2 = {s = v3.c2.s ++ np.s ! RSubj; c = v3.c2.c}} ; + lin SlashV2A v ap = {present = \\a,n,p => v.present ! a ! n ! p + ++ ap.s ! Indef ! GSg Masc; + aorist = \\n,p => v.aorist ! n ! p ++ ap.s ! Indef ! GSg Masc; + imperfect = \\a,n,p => v.imperfect ! a ! n ! p + ++ ap.s ! Indef ! GSg Masc; + imperative = \\a,n => v.imperative ! a ! n + ++ ap.s ! Indef ! GSg Masc; + participle = {aorist = \\a,g => v.participle.aorist ! a ! g + ++ ap.s ! Indef ! g; + imperfect = \\a,g => v.participle.imperfect ! a ! g + ++ ap.s ! Indef ! g; + perfect = \\a => v.participle.perfect ! a + ++ ap.s ! Indef ! GSg Masc; + adjectival = \\a => v.participle.adjectival ! a + ++ ap.s ! Indef ! GSg Masc; + adverbial = v.participle.adverbial ++ ap.s ! Indef ! GSg Masc}; + noun_from_verb = v.noun_from_verb ++ ap.s ! Indef ! GSg Masc; + vtype = v.vtype; + compl = \\v2 => v.present ! Imperfective ! Sg ! v2.p + ++ ap.s ! Indef ! v2.g; + c2 = {s = v.c2.s ++ ap.s ! Indef ! GSg Masc; c = v.c2.c}} ; + lin SlashV2Q v qs = {present = \\a,n,p => v.present ! a ! n ! p + ++ qs.s; + aorist = \\n,p => v.aorist ! n ! p ++ qs.s; + imperfect = \\a,n,p => v.imperfect ! a ! n ! p ++ qs.s; + imperative = \\a,n => v.imperative ! a ! n ++ qs.s; + participle = {aorist = \\a,g => v.participle.aorist ! a ! g + ++ qs.s; + imperfect = \\a,g => v.participle.imperfect ! a ! g ++ qs.s; + perfect = \\a => v.participle.perfect ! a ++ qs.s; + adjectival = \\a => v.participle.adjectival ! a ++ qs.s; + adverbial = v.participle.adverbial ++ qs.s}; + noun_from_verb = v.noun_from_verb ++ qs.s; vtype = v.vtype; + compl = \\v2 => v.present ! Imperfective ! Sg ! v2.p ++ qs.s; + c2 = {s = v.c2.s ++ qs.s; c = v.c2.c}} ; + lin SlashV2S v s = {present = \\a,n,p => v.present ! a ! n ! p + ++ s.s; + aorist = \\n,p => v.aorist ! n ! p ++ s.s; + imperfect = \\a,n,p => v.imperfect ! a ! n ! p ++ s.s; + imperative = \\a,n => v.imperative ! a ! n ++ s.s; + participle = {aorist = \\a,g => v.participle.aorist ! a ! g ++ s.s; + imperfect = \\a,g => v.participle.imperfect ! a ! g ++ s.s; + perfect = \\a => v.participle.perfect ! a ++ s.s; + adjectival = \\a => v.participle.adjectival ! a ++ s.s; + adverbial = v.participle.adverbial ++ s.s}; + noun_from_verb = v.noun_from_verb ++ s.s; vtype = v.vtype; + compl = \\v2 => v.present ! Imperfective ! Sg ! v2.p ++ s.s; + c2 = {s = v.c2.s ++ s.s; c = v.c2.c}} ; + lin SlashV2V v vp = {present = \\a,n,p => v.present ! a ! n ! p + ++ vp.present ! a ! n ! p; + aorist = \\n,p => v.aorist ! n ! p ++ vp.aorist ! n ! p; + imperfect = \\a,n,p => v.imperfect ! a ! n ! p + ++ vp.imperfect ! a ! n ! p; + imperative = \\a,n => v.imperative ! a ! n + ++ vp.imperative ! a ! n; + participle = {aorist = \\a,g => v.participle.aorist ! a ! g + ++ vp.participle.aorist ! a ! g; + imperfect = \\a,g => v.participle.imperfect ! a ! g + ++ vp.participle.imperfect ! a ! g; + perfect = \\a => v.participle.perfect ! a + ++ vp.participle.perfect ! a; + adjectival = \\a => v.participle.adjectival ! a + ++ vp.participle.adjectival ! a; + adverbial = v.participle.adverbial ++ vp.participle.adverbial}; + noun_from_verb = v.noun_from_verb ++ vp.noun_from_verb; + vtype = vp.vtype; + compl = \\v2 => v.present ! Imperfective ! Sg ! v2.p + ++ vp.compl ! {g = GSg Masc; p = P1}; + c2 = {s = v.c2.s ++ vp.present ! Imperfective ! Sg ! P1; + c = v.c2.c}} ; + lin SlashV2VNP v np v2 = {present = \\a,n,p => v.present ! a ! n + ! p + ++ np.s ! RSubj ++ v2.present ! a ! n ! p; + aorist = \\n,p => v.aorist ! n ! p + ++ np.s ! RSubj ++ v2.aorist ! n ! p; + imperfect = \\a,n,p => v.imperfect ! a ! n ! p + ++ np.s ! RSubj ++ v2.imperfect ! a ! n ! p; + imperative = \\a,n => v.imperative ! a ! n + ++ np.s ! RSubj ++ v2.imperative ! a ! n; + participle = {aorist = \\a,g => v.participle.aorist ! a ! g + ++ np.s ! RSubj + ++ v2.participle.aorist ! a ! g; + imperfect = \\a,g => v.participle.imperfect ! a ! g + ++ np.s ! RSubj + ++ v2.participle.imperfect ! a + ! g; + perfect = \\a => v.participle.perfect ! a + ++ np.s ! RSubj + ++ v2.participle.perfect ! a; + adjectival = \\a => v.participle.adjectival ! a + ++ np.s ! RSubj + ++ v2.participle.adjectival + ! a; + adverbial = v.participle.adverbial + ++ np.s ! RSubj ++ v2.participle.adverbial}; + noun_from_verb = v.noun_from_verb + ++ np.s ! RSubj ++ v2.noun_from_verb; + vtype = v2.vtype; + compl = \\v3 => v.present ! Imperfective ! Sg ! v3.p + ++ np.s ! RSubj ++ v2.compl ! {g = GSg Masc; p = P1}; + c2 = {s = v.c2.s ++ np.s ! RSubj ++ v2.c2.s; c = v2.c2.c}} ; lin SlashV2a v = v ** {compl = \\_ => []} ; - + lin SlashVV vv v = {present = \\a,n,p => vv.present ! a ! n ! p + ++ v.present ! a ! n ! p; + aorist = \\n,p => vv.aorist ! n ! p ++ v.aorist ! n ! p; + imperfect = \\a,n,p => vv.imperfect ! a ! n ! p + ++ v.imperfect ! a ! n ! p; + imperative = \\a,n => vv.imperative ! a ! n + ++ v.imperative ! a ! n; + participle = {aorist = \\a,g => vv.participle.aorist ! a ! g + ++ v.participle.aorist ! a ! g; + imperfect = \\a,g => vv.participle.imperfect ! a ! g + ++ v.participle.imperfect ! a ! g; + perfect = \\a => vv.participle.perfect ! a + ++ v.participle.perfect ! a; + adjectival = \\a => vv.participle.adjectival ! a + ++ v.participle.adjectival ! a; + adverbial = vv.participle.adverbial ++ v.participle.adverbial}; + noun_from_verb = vv.noun_from_verb ++ v.noun_from_verb; + vtype = v.vtype; + compl = \\v2 => vv.present ! Imperfective ! Sg ! v2.p + ++ v.compl ! {g = GSg Masc; p = P1}; + c2 = {s = vv.present ! Imperfective ! Sg ! P1 ++ v.c2.s; + c = v.c2.c}} ; + lin UseComp c = {present = \\a,n,p => c.s; aorist = \\n,p => c.s; + imperfect = \\a,n,p => c.s; imperative = \\a,n => c.s; + participle = {aorist = \\a,g => c.s; imperfect = \\a,g => c.s; + perfect = \\a => c.s; adjectival = \\a => c.s; adverbial = c.s}; + noun_from_verb = c.s; vtype = VNormal; compl = \\v => c.s} ; + lin UseCopula = {present = \\a,n,p => []; aorist = \\n,p => []; + imperfect = \\a,n,p => []; imperative = \\a,n => []; + participle = {aorist = \\a,g => []; imperfect = \\a,g => []; + perfect = \\a => []; adjectival = \\a => []; adverbial = []}; + noun_from_verb = []; vtype = VNormal; compl = \\v => []} ; + lin UseV v = v ** {compl = \\_ => []} ; + lin VPSlashPrep vp p = {present = \\a,n,p2 => vp.present ! a ! n + ! p2 + ++ p.s; + aorist = \\n,p2 => vp.aorist ! n ! p2 ++ p.s; + imperfect = \\a,n,p2 => vp.imperfect ! a ! n ! p2 ++ p.s; + imperative = \\a,n => vp.imperative ! a ! n ++ p.s; + participle = {aorist = \\a,g => vp.participle.aorist ! a ! g + ++ p.s; + imperfect = \\a,g => vp.participle.imperfect ! a ! g ++ p.s; + perfect = \\a => vp.participle.perfect ! a ++ p.s; + adjectival = \\a => vp.participle.adjectival ! a ++ p.s; + adverbial = vp.participle.adverbial ++ p.s}; + noun_from_verb = vp.noun_from_verb ++ p.s; vtype = vp.vtype; + compl = \\v => vp.compl ! {g = GSg Masc; p = P1} ++ p.s; + c2 = {s = vp.present ! Imperfective ! Sg ! P1 ++ p.s; c = p.c}} ; }