mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
Maltese RG: refactor participles, add Idiom.Self* lins
This commit is contained in:
@@ -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
|
||||
} ;
|
||||
|
||||
|
||||
@@ -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 ;
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -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'
|
||||
} ;
|
||||
|
||||
|
||||
@@ -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
|
||||
}) ;
|
||||
} ;
|
||||
|
||||
} ;
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
} ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user