Maltese RG: refactor participles, add Idiom.Self* lins

This commit is contained in:
john
2013-12-23 09:16:11 +00:00
parent ba191fb438
commit 60c981d414
7 changed files with 170 additions and 176 deletions

View File

@@ -62,7 +62,7 @@ concrete AdjectiveMlt of Adjective = CatMlt ** open ResMlt, Prelude in {
-- A2 -> AP
-- married to itself
ReflA2 a2 = {
s = \\gn => a2.s ! APosit gn ++ a2.c2.s ! Definite ++ reflPron ! (toVAgr gn) ;
s = \\gn => a2.s ! APosit gn ++ a2.c2.s ! Definite ++ prep_lil.enclitic ! (toAgr gn) ++ reflPron ! (toVAgr gn) ;
isPre = False
} ;

View File

@@ -4,7 +4,7 @@
-- John J. Camilleri 2011 -- 2013
-- Licensed under LGPL
concrete IdiomMlt of Idiom = CatMlt ** open Prelude, ResMlt in {
concrete IdiomMlt of Idiom = CatMlt ** open Prelude, ResMlt, Maybe in {
flags
coding=utf8;
@@ -70,8 +70,8 @@ concrete IdiomMlt of Idiom = CatMlt ** open Prelude, ResMlt in {
-- be sleeping
ProgrVP vp = {
v = CopulaVP.v ;
s2 = \\agr => case vp.v.hasPresPart of {
True => (vp.v.s ! VPresPart (toGenNum agr)).s1 ;
s2 = \\agr => case exists Participle vp.v.presPart of {
True => (fromJust Participle vp.v.presPart) ! (toGenNum agr) ;
False => (vp.v.s ! VImpf (toVAgr agr)).s1
} ;
dir = NullAgr ;
@@ -95,4 +95,21 @@ concrete IdiomMlt of Idiom = CatMlt ** open Prelude, ResMlt in {
}
} ;
-- VP -> VP
-- is at home himself
SelfAdvVP vp = insertObj (\\agr => reflPron ! (toVAgr agr)) vp ;
-- VP -> VP
-- is himself at home
SelfAdVVP vp = insertObjPre (\\agr => reflPron ! (toVAgr agr)) vp ;
-- NP -> NP
-- the president himself (is at home)
SelfNP np = {
s = \\c => np.s ! c ++ "stess" ;
a = np.a ;
isPron = np.isPron ;
isDefn = np.isDefn ;
} ;
}

View File

@@ -659,9 +659,7 @@ resource MorphoMlt = ResMlt ** open Prelude in {
in table {
VPerf agr => perf ! agr ;
VImpf agr => impf ! agr ;
VImp num => imp ! num ;
VPresPart _ => nonExist ;
VPastPart _ => nonExist
VImp num => imp ! num
} ;
conjFormII_quad : VerbInfo -> (VForm => Str) = \i ->
@@ -746,9 +744,7 @@ resource MorphoMlt = ResMlt ** open Prelude in {
in table {
VPerf agr => perf ! agr ;
VImpf agr => impf ! agr ;
VImp num => imp ! num ;
VPresPart _ => nonExist ;
VPastPart _ => nonExist
VImp num => imp ! num
} ;
{- ~~~ Form III verbs ~~~ -}
@@ -788,9 +784,7 @@ resource MorphoMlt = ResMlt ** open Prelude in {
in table {
VPerf agr => perf ! agr ;
VImpf agr => impf ! agr ;
VImp num => imp ! num ;
VPresPart _ => nonExist ;
VPastPart _ => nonExist
VImp num => imp ! num
} ;
{- ~~~ Form VII and VIII verbs ~~~ -}
@@ -859,9 +853,7 @@ resource MorphoMlt = ResMlt ** open Prelude in {
in table {
VPerf agr => perf ! agr ;
VImpf agr => impf ! agr ;
VImp num => imp ! num ;
VPresPart _ => nonExist ;
VPastPart _ => nonExist
VImp num => imp ! num
} ;
{- ~~~ Form IX verbs ~~~ -}
@@ -895,9 +887,7 @@ resource MorphoMlt = ResMlt ** open Prelude in {
in table {
VPerf agr => perf ! agr ;
VImpf agr => impf ! agr ;
VImp num => imp ! num ;
VPresPart _ => nonExist ;
VPastPart _ => nonExist
VImp num => imp ! num
} ;
{- ~~~ Form X verbs ~~~ -}
@@ -989,9 +979,7 @@ resource MorphoMlt = ResMlt ** open Prelude in {
in table {
VPerf agr => perf ! agr ;
VImpf agr => impf ! agr ;
VImp num => imp ! num ;
VPresPart _ => nonExist ;
VPastPart _ => nonExist
VImp num => imp ! num
} ;
}

View File

@@ -5,7 +5,7 @@
-- Angelo Zammit 2012
-- Licensed under LGPL
concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude in {
concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude, Maybe in {
flags
optimize=noexpand ;
@@ -161,8 +161,8 @@ concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude in {
-- NP -> V2 -> NP
-- the man seen
PPartNP np v2 = case v2.hasPastPart of {
True => overwriteNPs np (\\c => np.s ! c ++ (v2.s ! VPastPart (toGenNum np.a)).s1) ; -- raġel rieqed
PPartNP np v2 = case exists Participle v2.pastPart of {
True => overwriteNPs np (\\c => np.s ! c ++ (fromJust Participle v2.pastPart ! (toGenNum np.a))) ; -- raġel rieqed
False => overwriteNPs np (\\c => np.s ! c ++ (v2.s ! VImpf (toVAgr np.a)).s1) -- mara tisma'
} ;

View File

@@ -8,11 +8,8 @@
--# -path=.:../abstract:../../prelude:../common
resource ParadigmsMlt = open
Predef,
Prelude,
MorphoMlt,
ResMlt,
CatMlt
Predef, Prelude, Maybe,
MorphoMlt, ResMlt, CatMlt
in {
flags
@@ -579,16 +576,14 @@ resource ParadigmsMlt = open
VImpf (AgP2 Pl) => impfP2Pl ;
VImpf (AgP3Pl) => impfP3Pl ;
VImp (Pl) => impSg ;
VImp (Sg) => impPl ;
VPresPart _ => nonExist ;
VPastPart _ => nonExist
VImp (Sg) => impPl
} ;
info : VerbInfo = mkVerbInfo class form root vseq impSg ;
in lin V {
s = stemVariantsTbl tbl ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
presPart = noParticiple ;
pastPart = noParticiple ;
} ;
} ; --end of mkV overload
@@ -636,8 +631,8 @@ resource ParadigmsMlt = open
in lin V {
s = stemVariantsTbl (conjFormII newinfo) ;
i = newinfo ;
hasPresPart = False ;
hasPastPart = False ;
presPart = noParticiple ;
pastPart = noParticiple ;
} ;
-- Make a Quadri-Consonantal Form II verb
@@ -651,8 +646,8 @@ resource ParadigmsMlt = open
in lin V {
s = stemVariantsTbl (conjFormII_quad newinfo) ;
i = newinfo ;
hasPresPart = False ;
hasPastPart = False ;
presPart = noParticiple ;
pastPart = noParticiple ;
} ;
derivedV_QuadII : Str -> Str -> Root -> V = \mammaII, imp, root ->
let
@@ -662,8 +657,8 @@ resource ParadigmsMlt = open
in lin V {
s = stemVariantsTbl (conjFormII_quad newinfo) ;
i = newinfo ;
hasPresPart = False ;
hasPastPart = False ;
presPart = noParticiple ;
pastPart = noParticiple ;
} ;
} ;
@@ -677,8 +672,8 @@ resource ParadigmsMlt = open
in lin V {
s = stemVariantsTbl (conjFormIII info) ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
presPart = noParticiple ;
pastPart = noParticiple ;
} ;
-- No point having a paradigm for Form IV
@@ -702,15 +697,13 @@ resource ParadigmsMlt = open
VImpf (AgP1 Pl) => pfx "ni" (pfx_T (dropPfx 1 (get (VImpf (AgP1 Pl))))) ;
VImpf (AgP2 Pl) => pfx "ti" (pfx_T (dropPfx 1 (get (VImpf (AgP2 Pl))))) ;
VImpf (AgP3Pl) => pfx "ji" (pfx_T (dropPfx 1 (get (VImpf (AgP3Pl))))) ;
VImp num => pfx_T (get (VImp num)) ;
VPresPart _ => nonExist ;
VPastPart _ => nonExist
VImp num => pfx_T (get (VImp num))
} ;
in lin V {
s = stemVariantsTbl (tbl) ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
presPart = noParticiple ;
pastPart = noParticiple ;
} ;
-- Make a Form VI verb
@@ -731,15 +724,13 @@ resource ParadigmsMlt = open
VImpf (AgP1 Pl) => pfx "ni" (pfx_T (dropPfx 1 (get (VImpf (AgP1 Pl))))) ;
VImpf (AgP2 Pl) => pfx "ti" (pfx_T (dropPfx 1 (get (VImpf (AgP2 Pl))))) ;
VImpf (AgP3Pl) => pfx "ji" (pfx_T (dropPfx 1 (get (VImpf (AgP3Pl))))) ;
VImp num => pfx_T (get (VImp num)) ;
VPresPart _ => nonExist ;
VPastPart _ => nonExist
VImp num => pfx_T (get (VImp num))
} ;
in lin V {
s = stemVariantsTbl (tbl) ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
presPart = noParticiple ;
pastPart = noParticiple ;
} ;
-- Make a Form VII verb
@@ -760,8 +751,8 @@ resource ParadigmsMlt = open
in lin V {
s = stemVariantsTbl (conjFormVII info c1) ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
presPart = noParticiple ;
pastPart = noParticiple ;
} ;
-- Make a Form VIII verb
@@ -776,8 +767,8 @@ resource ParadigmsMlt = open
in lin V {
s = stemVariantsTbl (conjFormVII info c1) ; -- note we use conjFormVII !
i = info ;
hasPresPart = False ;
hasPastPart = False ;
presPart = noParticiple ;
pastPart = noParticiple ;
} ;
-- Make a Form IX verb
@@ -793,8 +784,8 @@ resource ParadigmsMlt = open
in lin V {
s = stemVariantsTbl (conjFormIX info) ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
presPart = noParticiple ;
pastPart = noParticiple ;
} ;
_ => Predef.error("I don't know how to make a Form IX verb out of" ++ mammaIX)
} ;
@@ -809,8 +800,8 @@ resource ParadigmsMlt = open
in lin V {
s = stemVariantsTbl (conjFormX info) ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
presPart = noParticiple ;
pastPart = noParticiple ;
} ;
{- ~~~ Strong Verb ~~~ -}
@@ -840,16 +831,14 @@ resource ParadigmsMlt = open
tbl : (VForm => Str) = table {
VPerf agr => ( conjStrongPerf root vseq ) ! agr ;
VImpf agr => ( conjStrongImpf (imp ! Sg) (imp ! Pl) ) ! agr ;
VImp n => imp ! n ;
VPresPart _ => nonExist ;
VPastPart _ => nonExist
VImp n => imp ! n
} ;
info : VerbInfo = mkVerbInfo (Strong Regular) (FormI) root vseq (imp ! Sg) ;
in lin V {
s = stemVariantsTbl tbl ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
presPart = noParticiple ;
pastPart = noParticiple ;
} ;
@@ -884,16 +873,14 @@ resource ParadigmsMlt = open
tbl : (VForm => Str) = table {
VPerf agr => ( conjLiquidMedialPerf root vseq ) ! agr ;
VImpf agr => ( conjLiquidMedialImpf (imp ! Sg) (imp ! Pl) ) ! agr ;
VImp n => imp ! n ;
VPresPart _ => nonExist ;
VPastPart _ => nonExist
VImp n => imp ! n
} ;
info : VerbInfo = mkVerbInfo (Strong LiquidMedial) (FormI) root vseq (imp ! Sg) ;
in lin V {
s = stemVariantsTbl tbl ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
presPart = noParticiple ;
pastPart = noParticiple ;
} ;
{- ~~~ Geminated Verb ~~~ -}
@@ -923,16 +910,14 @@ resource ParadigmsMlt = open
tbl : (VForm => Str) = table {
VPerf agr => ( conjGeminatedPerf root vseq ) ! agr ;
VImpf agr => ( conjGeminatedImpf (imp ! Sg) (imp ! Pl) ) ! agr ;
VImp n => imp ! n ;
VPresPart _ => nonExist ;
VPastPart _ => nonExist
VImp n => imp ! n
} ;
info : VerbInfo = mkVerbInfo (Strong Geminated) (FormI) root vseq (imp ! Sg) ;
in lin V {
s = stemVariantsTbl tbl ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
presPart = noParticiple ;
pastPart = noParticiple ;
} ;
{- ~~~ Assimilative Verb ~~~ -}
@@ -962,16 +947,14 @@ resource ParadigmsMlt = open
tbl : (VForm => Str) = table {
VPerf agr => ( conjAssimilativePerf root vseq ) ! agr ;
VImpf agr => ( conjAssimilativeImpf (imp ! Sg) (imp ! Pl) ) ! agr ;
VImp n => imp ! n ;
VPresPart _ => nonExist ;
VPastPart _ => nonExist
VImp n => imp ! n
} ;
info : VerbInfo = mkVerbInfo (Weak Assimilative) (FormI) root vseq (imp ! Sg) ;
in lin V {
s = stemVariantsTbl tbl ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
presPart = noParticiple ;
pastPart = noParticiple ;
} ;
{- ~~~ Hollow Verb ~~~ -}
@@ -1001,16 +984,14 @@ resource ParadigmsMlt = open
tbl : (VForm => Str) = table {
VPerf agr => ( conjHollowPerf root vseq ) ! agr ;
VImpf agr => ( conjHollowImpf (imp ! Sg) (imp ! Pl) ) ! agr ;
VImp n => imp ! n ;
VPresPart _ => nonExist ;
VPastPart _ => nonExist
VImp n => imp ! n
} ;
info : VerbInfo = mkVerbInfo (Weak Hollow) (FormI) root vseq (imp ! Sg) ;
in lin V {
s = stemVariantsTbl tbl ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
presPart = noParticiple ;
pastPart = noParticiple ;
} ;
{- ~~~ Lacking Verb ~~~ -}
@@ -1044,16 +1025,14 @@ resource ParadigmsMlt = open
tbl : (VForm => Str) = table {
VPerf agr => ( conjLackingPerf root vseq ) ! agr ;
VImpf agr => ( conjLackingImpf (imp ! Sg) (imp ! Pl) ) ! agr ;
VImp n => imp ! n ;
VPresPart _ => nonExist ;
VPastPart _ => nonExist
VImp n => imp ! n
} ;
info : VerbInfo = mkVerbInfo (Weak Lacking) (FormI) root vseq (imp ! Sg) ;
in lin V {
s = stemVariantsTbl tbl ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
presPart = noParticiple ;
pastPart = noParticiple ;
} ;
{- ~~~ Defective Verb ~~~ -}
@@ -1083,16 +1062,14 @@ resource ParadigmsMlt = open
tbl : (VForm => Str) = table {
VPerf agr => ( conjDefectivePerf root vseq ) ! agr ;
VImpf agr => ( conjDefectiveImpf (imp ! Sg) (imp ! Pl) ) ! agr ;
VImp n => imp ! n ;
VPresPart _ => nonExist ;
VPastPart _ => nonExist
VImp n => imp ! n
} ;
info : VerbInfo = mkVerbInfo (Weak Defective) (FormI) root vseq (imp ! Sg) ;
in lin V {
s = stemVariantsTbl tbl ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
presPart = noParticiple ;
pastPart = noParticiple ;
} ;
{- ~~~ Quadriliteral Verb (Strong) ~~~ -}
@@ -1122,16 +1099,14 @@ resource ParadigmsMlt = open
tbl : (VForm => Str) = table {
VPerf agr => ( conjQuadPerf root vseq ) ! agr ;
VImpf agr => ( conjQuadImpf (imp ! Sg) (imp ! Pl) ) ! agr ;
VImp n => imp ! n ;
VPresPart _ => nonExist ;
VPastPart _ => nonExist
VImp n => imp ! n
} ;
info : VerbInfo = mkVerbInfo (Quad QStrong) (FormI) root vseq (imp ! Sg) ;
in lin V {
s = stemVariantsTbl tbl ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
presPart = noParticiple ;
pastPart = noParticiple ;
} ;
{- ~~~ Quadriliteral Verb (Weak Final) ~~~ -}
@@ -1164,16 +1139,14 @@ resource ParadigmsMlt = open
tbl : (VForm => Str) = table {
VPerf agr => ( conjQuadWeakPerf root vseq (imp ! Sg) ) ! agr ;
VImpf agr => ( conjQuadWeakImpf (imp ! Sg) (imp ! Pl) ) ! agr ;
VImp n => imp ! n ;
VPresPart _ => nonExist ;
VPastPart _ => nonExist
VImp n => imp ! n
} ;
info : VerbInfo = mkVerbInfo (Quad QWeak) (FormI) root vseq (imp ! Sg) ;
in lin V {
s = stemVariantsTbl tbl ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
presPart = noParticiple ;
pastPart = noParticiple ;
} ;
{- ~~~ Irregular verbs ~~~ -}
@@ -1191,16 +1164,14 @@ resource ParadigmsMlt = open
tbl : (VForm => Str) = table {
VPerf agr => ( conjLoanPerf mamma ) ! agr ;
VImpf agr => ( conjLoanImpf (imp ! Sg) (imp ! Pl) ) ! agr ;
VImp n => imp ! n ;
VPresPart _ => nonExist ;
VPastPart _ => nonExist
VImp n => imp ! n
} ;
info : VerbInfo = mkVerbInfo (Loan) (FormI) (imp ! Sg) ;
in lin V {
s = stemVariantsTbl tbl ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
presPart = noParticiple ;
pastPart = noParticiple ;
} ;
{- Verb --------------------------------------------------------------- -}
@@ -1226,27 +1197,25 @@ resource ParadigmsMlt = open
_ => hiereg+"in"
} ;
in lin V {
s = \\vform => case vform of {
VPresPart (GSg Masc) => mkVerbStems m ;
VPresPart (GSg Fem) => mkVerbStems f ;
VPresPart (GPl) => mkVerbStems p ;
x => v.s ! x
} ;
i = v.i ;
hasPresPart = True ;
hasPastPart = v.hasPastPart ;
s = v.s ;
i = v.i ;
presPart = Just Participle (table {
GSg Masc => m ;
GSg Fem => f ;
GPl => p
}) ;
pastPart = v.pastPart ;
} ;
presPartV : Str -> Str -> Str -> V -> V = \hiereg,hierga,hiergin,v -> lin V {
s = \\vform => case vform of {
VPresPart (GSg Masc) => mkVerbStems hiereg ;
VPresPart (GSg Fem) => mkVerbStems hierga ;
VPresPart (GPl) => mkVerbStems hiergin ;
x => v.s ! x
} ;
s = v.s ;
i = v.i ;
hasPresPart = True ;
hasPastPart = v.hasPastPart ;
presPart = Just Participle (table {
GSg Masc => hiereg ;
GSg Fem => hierga ;
GPl => hiergin
}) ;
pastPart = v.pastPart ;
} ;
} ;
@@ -1271,27 +1240,25 @@ resource ParadigmsMlt = open
_ => miktub+"in"
} ;
in lin V {
s = \\vform => case vform of {
VPastPart (GSg Masc) => mkVerbStems m ;
VPastPart (GSg Fem) => mkVerbStems f ;
VPastPart (GPl) => mkVerbStems p ;
x => v.s ! x
} ;
i = v.i ;
hasPresPart = v.hasPresPart ;
hasPastPart = True ;
s = v.s ;
i = v.i ;
presPart = v.presPart ;
pastPart = Just Participle (table {
GSg Masc => m ;
GSg Fem => f ;
GPl => p
}) ;
} ;
pastPartV : Str -> Str -> Str -> V -> V = \miktub,miktuba,miktubin,v -> lin V {
s = \\vform => case vform of {
VPastPart (GSg Masc) => mkVerbStems miktub ;
VPastPart (GSg Fem) => mkVerbStems miktuba ;
VPastPart (GPl) => mkVerbStems miktubin ;
x => v.s ! x
} ;
s = v.s ;
i = v.i ;
hasPresPart = v.hasPresPart ;
hasPastPart = True ;
presPart = v.presPart ;
pastPart = Just Participle (table {
GSg Masc => miktub ;
GSg Fem => miktuba ;
GPl => miktubin
}) ;
} ;
} ;

View File

@@ -393,6 +393,24 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
joinsVerb = False ;
} ;
prep_lil : Preposition = {
s = table {
Indefinite => "lil" ;
Definite => makePreFull "lill-" "lil" "lil"
} ;
enclitic : Agr => Str = \\agr => case toVAgr agr of {
AgP1 Sg => "lili" ;
AgP2 Sg => "lilek" ;
AgP3Sg Masc => "lilu" ;
AgP3Sg Fem => "lilha" ;
AgP1 Pl => "lilna" ;
AgP2 Pl => "lilkom" ;
AgP2Pl => "lilhom"
} ;
takesDet = True ;
joinsVerb = True ;
} ;
{- Pronoun -------------------------------------------------------------- -}
oper
@@ -522,17 +540,20 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
\\vf => case vf of {
VPerf _ => stemVariantsPerf (tbl ! vf) ;
VImpf _ => stemVariantsImpf (tbl ! vf) ;
VImp _ => stemVariantsImpf (tbl ! vf) ;
_ => mkVerbStems (tbl ! vf)
VImp _ => stemVariantsImpf (tbl ! vf)
} ;
Verb : Type = {
s : VForm => VerbStems ; --- need to store different "stems" already at verb level (ġera/ġerie/ġeri)
i : VerbInfo ;
hasPresPart : Bool ;
hasPastPart : Bool ;
presPart : Maybe Participle ;
pastPart : Maybe Participle ;
} ;
Participle : Type = GenNum => Str ;
noParticiple : Maybe Participle = Nothing Participle (\\_ => nonExist) ;
VerbInfo : Type = {
class : VClass ;
form : VDerivedForm ;
@@ -542,13 +563,10 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
} ;
param
-- Possible verb forms (tense + person)
VForm =
VPerf VAgr -- Perfect tense in all pronoun cases
| VImpf VAgr -- Imperfect tense in all pronoun cases
| VImp Number -- Imperative is always P2, Sg & Pl
| VPresPart GenNum -- Present/active particible, e.g. RIEQED
| VPastPart GenNum -- Passive/past particible, e.g. MAĦBUB
;
VDerivedForm =
@@ -778,11 +796,12 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
} ;
VerbPhrase : Type = {
v : {
s : VForm => VerbStems ;
hasPresPart : Bool ;
hasPastPart : Bool ;
} ;
v : Verb ;
-- v : {
-- s : VForm => VerbStems ;
-- presPart : Maybe Participle ;
-- pastPart : Maybe Participle ;
-- } ;
s2 : Agr => Str ; -- complement
dir : Maybe Agr ; -- direct object clitic
ind : Maybe Agr ; -- indirect object clitic
@@ -866,9 +885,7 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
<VImpf (AgP2 Pl), Neg> => "tkunux" ;
<VImpf (AgP3Pl), Neg> => "jkunux" ;
<VImp (Sg), Neg> => "kunx" ;
<VImp (Pl), Neg> => "kunux" ;
<VPresPart gn, _> => nonExist ;
<VPastPart gn, _> => nonExist
<VImp (Pl), Neg> => "kunux"
}
} ;
@@ -908,13 +925,11 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
VImpf (AgP2 Pl) => mkVerbStems [] "m'intom" ;
VImpf (AgP3Pl) => mkVerbStems "huma" "m'humie" ;
VImp (Sg) => mkVerbStems "kun" ;
VImp (Pl) => mkVerbStems "kunu" ;
VPresPart gn => mkVerbStems nonExist ;
VPastPart gn => mkVerbStems nonExist
VImp (Pl) => mkVerbStems "kunu"
} ;
i = mkVerbInfo Irregular FormI ;
hasPresPart = False ;
hasPastPart = False ;
presPart = noParticiple ;
pastPart = noParticiple ;
} ;
s2 = \\agr => [] ;
dir = NullAgr ;
@@ -949,13 +964,20 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
} ;
reflPron : VAgr => Str = table {
AgP1 Sg => "lili nnifsi" ;
AgP2 Sg => "lilek innifsek" ;
AgP3Sg Masc => "lilu nnifsu" ;
AgP3Sg Fem => "lila nnifisha" ;
AgP1 Pl => "lilna nfusna" ;
AgP2 Pl => "lilkom infuskom" ;
AgP3Pl => "lilhom infushom"
-- AgP1 Sg => "lili nnifsi" ;
-- AgP2 Sg => "lilek innifsek" ;
-- AgP3Sg Masc => "lilu nnifsu" ;
-- AgP3Sg Fem => "lila nnifisha" ;
-- AgP1 Pl => "lilna nfusna" ;
-- AgP2 Pl => "lilkom infuskom" ;
-- AgP3Pl => "lilhom infushom"
AgP1 Sg => "nnifsi" ;
AgP2 Sg => "innifsek" ;
AgP3Sg Masc => "nnifsu" ;
AgP3Sg Fem => "nnifisha" ;
AgP1 Pl => "nfusna" ;
AgP2 Pl => "infuskom" ;
AgP3Pl => "infushom"
} ;
huwa : VAgr => Str = table {

View File

@@ -5,7 +5,7 @@
-- Angelo Zammit 2012
-- Licensed under LGPL
concrete VerbMlt of Verb = CatMlt ** open Prelude, ResMlt in {
concrete VerbMlt of Verb = CatMlt ** open Prelude, ResMlt, Maybe in {
flags optimize=all_subs ;
lin
@@ -136,12 +136,12 @@ concrete VerbMlt of Verb = CatMlt ** open Prelude, ResMlt in {
-- VPSlash -> VP
-- love himself
ReflVP vpslash = insertObjPre (\\agr => vpslash.s2 ! agr ++ reflPron ! toVAgr agr) vpslash ;
ReflVP vpslash = insertObjPre (\\agr => vpslash.s2 ! agr ++ prep_lil.enclitic ! agr ++ reflPron ! toVAgr agr) vpslash ;
-- V2 -> VP
-- be loved
PassV2 v2 = case v2.hasPastPart of {
True => insertObj (\\agr => (v2.s ! VPastPart (toGenNum agr)).s1 ++ v2.c2.s ! Definite) CopulaVP ;
PassV2 v2 = case exists Participle v2.pastPart of {
True => insertObj (\\agr => (fromJust Participle v2.pastPart ! (toGenNum agr)) ++ v2.c2.s ! Definite) CopulaVP ;
False => insertObj (\\agr => (v2.s ! VPerf (toVAgr agr)).s1 ++ v2.c2.s ! Definite) CopulaVP
} ;