1
0
forked from GitHub/gf-core

Maltese RG: first proper release

Of course some bugs remain and more testing is needed,
but all functions are complete and Maltese now builds as part
of the normal GF install.
This commit is contained in:
john
2013-06-10 21:37:10 +00:00
parent 860b25fff3
commit 1366c2a53e
19 changed files with 928 additions and 719 deletions

View File

@@ -251,16 +251,16 @@ langs = map fst langsCoding
-- defaultLangs = langs `only` words "Eng Fre Ger Ita Spa Swe"
-- languagues for which to compile Lang
langsLang = langs -- `except` ["Amh","Ara","Lat","Tur","Mlt"]
langsLang = langs -- `except` ["Amh","Ara","Lat","Tur"]
--langsLang = langs `only` ["Fin"] --test
-- languagues that have notpresent marked
langsPresent = langsLang `except` ["Chi","Gre","Heb","Jpn","Mlt","Nep","Pes","Snd","Tha","Thb"]
-- languages for which to compile Try
langsAPI = langsLang `except` langsIncomplete -- ["Ina","Mlt","Amh","Ara"]
langsAPI = langsLang `except` langsIncomplete -- ["Ina","Amh","Ara"]
langsIncomplete = ["Amh","Ara","Heb","Ina","Lat","Mlt","Tur"]
langsIncomplete = ["Amh","Ara","Heb","Ina","Lat","Tur"]
-- languages for which to compile Symbolic
langsSymbolic = langsAPI `except` ["Jpn"]

View File

@@ -4,14 +4,14 @@ Aarne Ranta
The following table gives the languages currently available in the
The following table gives the languages currently available in the
GF Resource Grammar Library.
For another view, see the
For another view, see the
[The Resource Grammar Library coverage map http://www.postcrashgames.com/gf_world/] .
Corrections and additions are welcome! Notice that only those parts of implementations
that are currently available via http://grammaticalframework.org
that are currently available via http://grammaticalframework.org
are marked in the table
@@ -37,7 +37,7 @@ are marked in the table
| Jpn | Japanese | + | - | ++ | + | + | + | - | - | - | *LZ
| Lat | Latin | + | - | - | - | - | - | - | - | - | *AR
| Lav | Latvian | + | - | ++ | + | + | + | - | - | - | *NG,*PP
| Mlt | Maltese | + | - | - | - | - | - | - | - | - | *JC
| Mlt | Maltese | + | + | ++ | + | + | + | + | - | - | *JC
| Mon | Mongolian | - | - | - | - | - | - | - | - | - | *NE
| Nep | Nepali | + | + | ++ | + | + | - | - | - | - | *DS
| Nor | Norwegian(b) | + | + | ++ | + | + | + | + | + | - | *AR
@@ -55,7 +55,7 @@ are marked in the table
| Tur | Turkish | + | - | ++ | + | - | - | - | - | + | *SC,KA
| Urd | Urdu | + | + | ++ | + | + | + | + | - | - | *SV,MH
ISO = 3-letter ISO language code, used in library file names
ISO = 3-letter ISO language code, used in library file names
(mostly ISO 639-2 B (bibliographic))
Darcs = available in the darcs repository of --http://code.haskell.org/gf-- http://www.grammaticalframework.org/
@@ -76,7 +76,7 @@ Irreg = the ``Irreg`` module with irregular verbs exists
Dict = the ``Dict`` module, large-scale morphological lexicon, exists
authors = main contributors, * means still active
authors = main contributors, * means still active
(ready to fix bugs, answer to questions, etc)
@@ -139,6 +139,3 @@ active authors of it.
Feel free to start a new language that is not yet in the table - but let us know and
contribute some code as soon as you can!

View File

@@ -1,5 +1,5 @@
--# -path=.:present:mathematical:prelude
--# -path=.:alltenses
resource SymbolicMlt = Symbolic with
resource SymbolicMlt = Symbolic with
(Symbol = SymbolMlt),
(Grammar = GrammarMlt) ;

View File

@@ -6,7 +6,7 @@ src:
runghc MkMini.hs
compdemo:
$(compile) Afr Bul Cat Chi Dan Dut Eng Fin Fre Ger Gre Hin Ita Jpn Lav Nep Nor Pes Pnb Pol Ron Rus Snd Spa Swe Tha Urd
$(compile) Afr Bul Cat Chi Dan Dut Eng Fin Fre Ger Gre Hin Ita Jpn Lav Mlt Nep Nor Pes Pnb Pol Ron Rus Snd Spa Swe Tha Urd
linkdemo:
$(compile) -link Afr Bul Cat Chi Dan Dut Eng Fin Fre Ger Gre Hin Ita Jpn Lav Mlt Nep Nor Pes Pnb Pol Ron Rus Snd Spa Swe Tha Urd

View File

@@ -9,13 +9,15 @@ concrete AdjectiveMlt of Adjective = CatMlt ** open ResMlt, Prelude in {
lin
-- A -> AP -- warm
-- A -> AP
-- warm
PositA a = {
s = \\gn => a.s ! (APosit gn) ;
isPre = True
} ;
-- A -> NP -> AP -- warmer than I
-- A -> NP -> AP
-- warmer than I
ComparA a np = {
s = \\gn => case a.hasComp of {
True => a.s ! ACompar ;
@@ -25,7 +27,8 @@ concrete AdjectiveMlt of Adjective = CatMlt ** open ResMlt, Prelude in {
isPre = False
} ;
-- A -> AP ; -- warmer
-- A -> AP
-- warmer
UseComparA a = {
s = \\gn => case a.hasComp of {
True => a.s ! ACompar ;
@@ -34,57 +37,64 @@ concrete AdjectiveMlt of Adjective = CatMlt ** open ResMlt, Prelude in {
isPre = False
} ;
-- Ord -> AP ; -- warmest
-- Ord -> AP
-- warmest
--- Should be: L-IKTAR ĦOBŻA SĦUNA
AdjOrd ord = {
s = \\gn => ord.s ! NumNom ;
isPre = True
} ;
-- CAdv -> AP -> NP -> AP ; -- as cool as John
-- CAdv -> AP -> NP -> AP
-- as cool as John
CAdvAP cadv ap np = {
s = \\gn => cadv.s ++ ap.s ! gn ++ cadv.p ++ np.s ! NPNom ;
isPre = False
} ;
-- A2 -> NP -> AP ; -- married to her
-- A2 -> NP -> AP
-- married to her
ComplA2 a2 np = {
s = \\gn => a2.s ! APosit gn ++ a2.c2.s ! Definite ++ np.s ! NPAcc ;
isPre = False
} ;
-- A2 -> AP ; -- married to itself
-- A2 -> AP
-- married to itself
ReflA2 a2 = {
s = \\gn => a2.s ! APosit gn ++ a2.c2.s ! Definite ++ reflPron ! (toVAgr gn) ;
isPre = False
} ;
-- AP -> SC -> AP ; -- good that she is here
-- AP -> SC -> AP
-- good that she is here
SentAP ap sc = {
s = \\gn => ap.s ! gn ++ sc.s ;
isPre = False
} ;
-- AdA -> AP -> AP ; -- very warm
-- AdA -> AP -> AP
-- very warm
AdAP ada ap = {
s = \\gn => ap.s ! gn ++ ada.s ;
isPre = ap.isPre
} ;
-- A2 -> AP ; -- married
-- A2 -> AP
-- married
UseA2 a2 = {
s = \\gn => a2.s ! APosit gn ;
isPre = True
} ;
-- AP -> Adv -> AP ; -- warm by nature
-- AP -> Adv -> AP
-- warm by nature
AdvAP ap adv = {
s = \\gn => ap.s ! gn ++ adv.s ;
isPre = False
} ;
oper
-- TODO: Don't know where these should go
compMore : Str = "iktar" ;
compLess : Str = "inqas" ;
conjThan : Str = "minn" ;

View File

@@ -96,7 +96,7 @@ concrete CatMlt of Cat = CommonX - [Adv] ** open ResMlt, Prelude in {
Digits = {
s : NumCase => Str ; -- No need for CardOrd, i.e. no 1st, 2nd etc in Maltese
n : NumForm ;
tail : DTail
tail : DTail ;
};
-- Structural

View File

@@ -23,7 +23,7 @@ concrete ConjunctionMlt of Conjunction =
-- Conj -> [NP] -> NP -- "either her or me"
ConjNP conj ss = {
s = \\npcase => conj.s1 ++ ss.np1.s ! npcase ++ conj.s2 ++ ss.np2.s ! npcase ;
a = ss.np2.a ;
a = { p = ss.np2.a.p ; g = ss.np2.a.g ; n = Pl } ; -- make plural
isPron = andB ss.np1.isPron ss.np2.isPron ;
isDefn = andB ss.np1.isDefn ss.np2.isDefn ;
} ;

View File

@@ -357,7 +357,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
;
kamrad_KMRD_1_7014_V = mkV "kamrad" (mkRoot "k-m-r-d") ;
kanga_KNGJ_1_7015_V = mkV "kanġa" (mkRoot "k-n-ġ-j") ;
kanta_KNTJ_1_7016_V = mkV "kanta" "kanta" (mkRoot "k-n-t-j") ;
kanta_KNTJ_1_7016_V = pastPartV "kantat" (mkV "kanta" "kanta" (mkRoot "k-n-t-j")) ;
tkanta_KNTJ_2_7017_V = mkV_II "tkanta" (mkRoot "k-n-t-j") ;
kopra_KPRJ_1_7018_V = mkV "kopra" (mkRoot "k-p-r-j") ;
tkopra_KPRJ_2_7019_V = mkV_II "tkopra" (mkRoot "k-p-r-j") ;
@@ -615,7 +615,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
ssensel_SNSL_2_7265_V = mkV_II "ssensel" (mkRoot "s-n-s-l") ;
sensar_SNSR_1_7266_V = mkV "sensar" (mkRoot "s-n-s-r") ;
ssapna_SPNJ_2_7267_V = mkV_II "ssapna" (mkRoot "s-p-n-j") ;
saqsa_SQSJ_1_7268_V = mkV "saqsa" (mkRoot "s-q-s-j") ;
saqsa_SQSJ_1_7268_V = pastPartV "mistoqsi" (mkV "saqsa" (mkRoot "s-q-s-j")) ;
sarbat_SRBT_1_7270_V = mkV "sarbat" (mkRoot "s-r-b-t") ;
ssarbat_SRBT_2_7271_V = mkV_II "ssarbat" (mkRoot "s-r-b-t") ;
sardan_SRDN_1_7272_V = mkV "sardan" (mkRoot "s-r-d-n") ;
@@ -747,7 +747,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
biggel_BGL_2_7399_V = mkV_II "biġġel" (mkRoot "b-ġ-l") ;
tbiggel_BGL_5_7400_V = mkV_V "tbiġġel" (mkRoot "b-ġ-l") ;
nbigel_BGL_7_7401_V = mkV_VII "biġel" "nbiġel" (mkRoot "b-ġ-l") ;
baghad_BGHD_1_7402_V = mkV "bagħad" (mkRoot "b-għ-d") ;
baghad_BGHD_1_7402_V = pastPartV "mibgħud" (mkV "bagħad" (mkRoot "b-għ-d")) ;
baghghad_BGHD_2_7403_V = mkV_II "bagħgħad" (mkRoot "b-għ-d") ;
baghad_BGHD_3_7404_V = mkV_III "bagħad" (mkRoot "b-għ-d") ;
tbieghad_BGHD_6_7405_V = mkV_VI "tbiegħad" (mkRoot "b-għ-d") ;
@@ -757,7 +757,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
baghghal_BGHL_2_7409_V = mkV_II "bagħgħal" (mkRoot "b-għ-l") ;
tbaghghal_BGHL_5_7410_V = mkV_V "tbagħgħal" (mkRoot "b-għ-l") ;
tbaghal_BGHL_6_7411_V = mkV_VI "tbagħal" (mkRoot "b-għ-l") ;
baghat_BGHT_1_7412_V = mkV "bagħat" (mkRoot "b-għ-t") ;
baghat_BGHT_1_7412_V = pastPartV "mibgħut" (mkV "bagħat" (mkRoot "b-għ-t")) ;
nbaghat_BGHT_7_7413_V = mkV_VII "bagħat" "nbagħat" (mkRoot "b-għ-t") ;
biehem_BHM_3_7414_V = mkV_III "biehem" (mkRoot "b-h-m") ;
tbhejjem_BHM_5_7415_V = mkV_V "tbhejjem" (mkRoot "b-h-m") ;
@@ -861,7 +861,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
berraq_BRQ_2_7501_V = mkV_II "berraq" (mkRoot "b-r-q") ;
tberraq_BRQ_5_7502_V = mkV_V "tberraq" (mkRoot "b-r-q") ;
barr_BRR_1_7503_V = mkV "barr" (mkRoot "b-r-r") ;
barax_BRX_1_7504_V = mkV "barax" "obrox" (mkRoot "b-r-x") ;
barax_BRX_1_7504_V = pastPartV "mibrux" (mkV "barax" "obrox" (mkRoot "b-r-x")) ;
barrax_BRX_2_7505_V = mkV_II "barrax" (mkRoot "b-r-x") ;
tbarrax_BRX_5_7506_V = mkV_V "tbarrax" (mkRoot "b-r-x") ;
nbarax_BRX_7_7507_V = mkV_VII "barax" "nbarax" (mkRoot "b-r-x") ;
@@ -898,7 +898,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
bexxex_BXX_2_7538_V = mkV_II "bexxex" (mkRoot "b-x-x") ;
tbexxex_BXX_5_7539_V = mkV_V "tbexxex" (mkRoot "b-x-x") ;
nbexx_BXX_7_7540_V = mkV_VII "bexx" "nbexx" (mkRoot "b-x-x") ;
beza'_BZGH_1_7541_V = mkV "baża'" (mkRoot "b-ż-għ") ;
beza'_BZGH_1_7541_V = pastPartV "mbeżża'" (mkV "beża'" (mkRoot "b-ż-għ")) ;
bezza'_BZGH_2_7542_V = mkV_II "bażża'" (mkRoot "b-ż-għ") ;
tbezza'_BZGH_5_7543_V = mkV_V "tbażża'" (mkRoot "b-ż-għ") ;
bizel_BZL_1_7544_V = mkV "biżel" (mkRoot "b-ż-l") ;
@@ -906,7 +906,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
tbizzel_BZL_5_7546_V = mkV_V "tbiżżel" (mkRoot "b-ż-l") ;
bezzel_BZL_2_7547_V = mkV_II "beżżel" (mkRoot "b-ż-l") ;
tbezzel_BZL_5_7548_V = mkV_V "tbeżżel" (mkRoot "b-ż-l") ;
bezaq_BZQ_1_7549_V = mkV "beżaq" "obżoq" (mkRoot "b-ż-q") ;
bezaq_BZQ_1_7549_V = pastPartV "mibżuq" (mkV "beżaq" "obżoq" (mkRoot "b-ż-q")) ;
bezzaq_BZQ_2_7550_V = mkV_II "beżżaq" (mkRoot "b-ż-q") ;
tbezzaq_BZQ_5_7551_V = mkV_V "tbeżżaq" (mkRoot "b-ż-q") ;
nbezaq_BZQ_7_7552_V = mkV_VII "beżaq" "nbeżaq" (mkRoot "b-ż-q") ;
@@ -1160,7 +1160,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
dewwaq_DWQ_2_7800_V = mkV_II "dewwaq" (mkRoot "d-w-q") ;
ddewwaq_DWQ_5_7801_V = mkV_V "ddewwaq" (mkRoot "d-w-q") ;
ndaq_DWQ_7_7802_V = mkV_VII "daq" "ndaq" (mkRoot "d-w-q") ;
dar_DWR_1_7803_V = mkV "dar" (mkRoot "d-w-r") ;
dar_DWR_1_7803_V = pastPartV "mdawwar" (mkV "dar" (mkRoot "d-w-r")) ;
dawwar_DWR_2_7804_V = mkV_II "dawwar" (mkRoot "d-w-r") ;
ddawwar_DWR_5_7805_V = mkV_V "ddawwar" (mkRoot "d-w-r") ;
ndar_DWR_7_7806_V = mkV_VII "dar" "ndar" (mkRoot "d-w-r") ;
@@ -1182,7 +1182,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
faggar_FGR_2_7822_V = mkV_II "faġġar" (mkRoot "f-ġ-r") ;
nfagar_FGR_7_7823_V = mkV_VII "faġar" "nfaġar" (mkRoot "f-ġ-r") ;
faghal_FGHL_1_7824_V = mkV "fagħal" (mkRoot "f-għ-l") ;
fehem_FHM_1_10830_V = mkV "fehem" (mkRoot "f-h-m") ;
fehem_FHM_1_10830_V = pastPartV "mifhum" (mkV "fehem" (mkRoot "f-h-m")) ;
fehhem_FHM_2_10832_V = mkV_II "fehhem" (mkRoot "f-h-m") ;
fiehem_FHM_3_10831_V = mkV_III "fiehem" (mkRoot "f-h-m") ;
tfehem_FHM_6_10833_V = mkV_VI "tfehem" (mkRoot "f-h-m") ;
@@ -1293,7 +1293,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
tfessaq_FSQ_5_7929_V = mkV_V "tfessaq" (mkRoot "f-s-q") ;
fisser_FSR_2_7930_V = mkV_II "fisser" (mkRoot "f-s-r") ;
tfisser_FSR_5_7931_V = mkV_V "tfisser" (mkRoot "f-s-r") ;
fetah_FTH_1_7932_V = mkV "fetaħ" (mkRoot "f-t-ħ") ;
fetah_FTH_1_7932_V = pastPartV "miftuħ" (mkV "fetaħ" (mkRoot "f-t-ħ")) ;
fettah_FTH_2_7933_V = mkV_II "fettaħ" (mkRoot "f-t-ħ") ;
tfettah_FTH_5_7934_V = mkV_V "tfettaħ" (mkRoot "f-t-ħ") ;
nfetah_FTH_7_7935_V = mkV_VII "fetaħ" "nfetaħ" (mkRoot "f-t-ħ") ;
@@ -1313,7 +1313,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
tfattar_FTR_5_7949_V = mkV_V "tfattar" (mkRoot "f-t-r") ;
fettet_FTT_2_7950_V = mkV_II "fettet" (mkRoot "f-t-t") ;
tfettet_FTT_5_7951_V = mkV_V "tfettet" (mkRoot "f-t-t") ;
fittex_FTX_2_7952_V = mkV_II "fittex" (mkRoot "f-t-x") ;
fittex_FTX_2_7952_V = pastPartV "mfittex" (mkV_II "fittex" (mkRoot "f-t-x")) ;
tfittex_FTX_5_7953_V = mkV_V "tfittex" (mkRoot "f-t-x") ;
ntfettex_FTX_7_7954_V = mkV_VII "fettex" "ntfettex" (mkRoot "f-t-x") ;
fixel_FXL_1_7955_V = mkV "fixel" (mkRoot "f-x-l") ;
@@ -1370,7 +1370,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
ngideb_GDB_7_8006_V = mkV_VII "gideb" "ngideb" (mkRoot "g-d-b") ;
geddel_GDL_2_8007_V = mkV_II "geddel" (mkRoot "g-d-l") ;
tgeddel_GDL_5_8008_V = mkV_V "tgeddel" (mkRoot "g-d-l") ;
gidem_GDM_1_8009_V = mkV "gidem" (mkRoot "g-d-m") ;
gidem_GDM_1_8009_V = pastPartV "migdum" (mkV "gidem" (mkRoot "g-d-m")) ;
giddem_GDM_2_8010_V = mkV_II "giddem" (mkRoot "g-d-m") ;
tgiddem_GDM_5_8011_V = mkV_V "tgiddem" (mkRoot "g-d-m") ;
tgiedem_GDM_6_8012_V = mkV_VI "tgiedem" (mkRoot "g-d-m") ;
@@ -1404,7 +1404,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
gara_GRJ_3_8040_V = mkV_III "gara" (mkRoot "g-r-j") ;
tgara_GRJ_6_8041_V = mkV_VI "tgara" (mkRoot "g-r-j") ;
gaza_GZJ_1_8042_V = mkV "gaża" (mkRoot "g-ż-j") ;
gibed_GBD_1_8043_V = mkV "ġibed" (mkRoot "ġ-b-d") ;
gibed_GBD_1_8043_V = pastPartV "miġbud" (mkV "ġibed" (mkRoot "ġ-b-d")) ;
gebbed_GBD_2_8044_V = mkV_II "ġebbed" (mkRoot "ġ-b-d") ;
ggebbed_GBD_5_8045_V = mkV_V "ġġebbed" (mkRoot "ġ-b-d") ;
ngibed_GBD_7_8046_V = mkV_VII "ġibed" "nġibed" (mkRoot "ġ-b-d") ;
@@ -1435,7 +1435,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
gileb_GLB_1_8071_V = mkV "ġileb" (mkRoot "ġ-l-b") ;
gelled_GLD_2_8072_V = mkV_II "ġelled" (mkRoot "ġ-l-d") ;
gieled_GLD_3_8073_V = mkV_III "ġieled" (mkRoot "ġ-l-d") ;
ggieled_GLD_6_8074_V = mkV_VI "ġġieled" (mkRoot "ġ-l-d") ;
ggieled_GLD_6_8074_V = pastPartV "miġġieled" "miġġielda" "miġġieldin" (mkV_VI "ġġieled" (mkRoot "ġ-l-d")) ;
gelled_GLD_2_8075_V = mkV_II "ġelled" (mkRoot "ġ-l-d") ;
ggelled_GLD_5_8076_V = mkV_V "ġġelled" (mkRoot "ġ-l-d") ;
gimed_GMD_1_8077_V = mkV "ġimed" (mkRoot "ġ-m-d") ;
@@ -1484,11 +1484,11 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
gezz_GZZ_1_8120_V = mkV "ġeżż" (mkRoot "ġ-ż-ż") ;
gezzez_GZZ_2_8121_V = mkV_II "ġeżżeż" (mkRoot "ġ-ż-ż") ;
ngezz_GZZ_7_8122_V = mkV_VII "ġeżż" "nġeżż" (mkRoot "ġ-ż-ż") ;
gie_GJ'_1_8123_V = irregularV form1 (mkRoot "ġ-j-'") (mkPattern "ie" [])
gie_GJ'_1_8123_V = presPartV "ġej" (pastPartV "miġjub" (irregularV form1 (mkRoot "ġ-j-'") (mkPattern "ie" [])
"ġejt" "ġejt" "ġie" "ġiet" "ġejna" "ġejtu" "ġew"
"niġi" "tiġi" "jiġi" "tiġi" "niġu" "tiġu" "jiġu"
"ejja" "ejjew"
;
));
gab_GJB_1_8124_V = mkV "ġab" (mkRoot "ġ-j-b") ;
ngab_GJB_7_8125_V = mkV_VII "ġab" "nġab" (mkRoot "ġ-j-b") ;
gejjef_GJF_2_8126_V = mkV_II "ġejjef" (mkRoot "ġ-j-f") ;
@@ -1496,7 +1496,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
gela_GLW_1_8128_V = mkV "ġela" (mkRoot "ġ-l-w") ;
ngela_GLW_7_8129_V = mkV_VII "ġela" "nġela" (mkRoot "ġ-l-w") ;
gara_GRJ_1_8130_V = mkV "ġara" (mkRoot "ġ-r-j") ;
gera_GRJ_1_8131_V = mkV "ġera" (mkRoot "ġ-r-j") ;
gera_GRJ_1_8131_V = pastPartV "miġri" (mkV "ġera" (mkRoot "ġ-r-j")) ;
gerra_GRJ_2_8132_V = mkV_II "ġerra" (mkRoot "ġ-r-j") ;
ggerra_GRJ_5_8133_V = mkV_V "ġġerra" (mkRoot "ġ-r-j") ;
ggiera_GRJ_6_8134_V = mkV_VI "ġġiera" (mkRoot "ġ-r-j") ;
@@ -1538,7 +1538,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
therra_HRJ_5_8171_V = mkV_V "therra" (mkRoot "h-r-j") ;
sthewwa_HWJ_10_8172_V = mkV_X "sthewwa" (mkRoot "h-w-j") ;
hezza_HZJ_2_8173_V = mkV_II "heżża" (mkRoot "h-ż-j") ;
habb_HBB_1_8174_V = mkV "ħabb" (mkRoot "ħ-b-b") ;
habb_HBB_1_8174_V = pastPartV "maħbub" (mkV "ħabb" (mkRoot "ħ-b-b")) ;
habbeb_HBB_2_8175_V = mkV_II "ħabbeb" (mkRoot "ħ-b-b") ;
thabbeb_HBB_5_8176_V = mkV_V "tħabbeb" (mkRoot "ħ-b-b") ;
nhabb_HBB_7_8177_V = mkV_VII "ħabb" "nħabb" (mkRoot "ħ-b-b") ;
@@ -1596,10 +1596,10 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
hfief_HFF_9_8230_V = mkV_IX "ħfief" (mkRoot "ħ-f-f") ;
hafen_HFN_1_8231_V = mkV "ħafen" (mkRoot "ħ-f-n") ;
nhafen_HFN_7_8232_V = mkV_VII "ħafen" "nħafen" (mkRoot "ħ-f-n") ;
hafer_HFR_1_8233_V = mkV "ħafer" (mkRoot "ħ-f-r") ;
hafer_HFR_1_8233_V = pastPartV "maħfur" (mkV "ħafer" (mkRoot "ħ-f-r")) ;
nhafer_HFR_7_8234_V = mkV_VII "ħafer" "nħafer" (mkRoot "ħ-f-r") ;
hafer_HFR_1_8235_V = mkV "ħafer" (mkRoot "ħ-f-r") ;
haffer_HFR_2_8236_V = mkV_II "ħaffer" (mkRoot "ħ-f-r") ;
haffer_HFR_2_8236_V = pastPartV "mħaffer" (mkV_II "ħaffer" (mkRoot "ħ-f-r")) ;
thaffer_HFR_5_8237_V = mkV_V "tħaffer" (mkRoot "ħ-f-r") ;
hageb_HGB_1_8238_V = mkV "ħaġeb" (mkRoot "ħ-ġ-b") ;
haggeb_HGB_2_8239_V = mkV_II "ħaġġeb" (mkRoot "ħ-ġ-b") ;
@@ -1730,7 +1730,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
tharrek_HRK_5_8364_V = mkV_V "tħarrek" (mkRoot "ħ-r-k") ;
horom_HRM_1_8365_V = mkV "ħorom" (mkRoot "ħ-r-m") ;
harrem_HRM_2_8366_V = mkV_II "ħarrem" (mkRoot "ħ-r-m") ;
haraq_HRQ_1_8367_V = mkV "ħaraq" (mkRoot "ħ-r-q") ;
haraq_HRQ_1_8367_V = pastPartV "maħruq" (mkV "ħaraq" (mkRoot "ħ-r-q")) ;
harraq_HRQ_2_8368_V = mkV_II "ħarraq" (mkRoot "ħ-r-q") ;
tharraq_HRQ_5_8369_V = mkV_V "tħarraq" (mkRoot "ħ-r-q") ;
nharaq_HRQ_7_8370_V = mkV_VII "ħaraq" "nħaraq" (mkRoot "ħ-r-q") ;
@@ -1750,7 +1750,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
harrax_HRX_2_8384_V = mkV_II "ħarrax" (mkRoot "ħ-r-x") ;
tharrax_HRX_5_8385_V = mkV_V "tħarrax" (mkRoot "ħ-r-x") ;
hrax_HRX_9_8386_V = mkV_IX "ħrax" (mkRoot "ħ-r-x") ;
haseb_HSB_1_8387_V = mkV "ħaseb" (mkRoot "ħ-s-b") ;
haseb_HSB_1_8387_V = pastPartV "maħsub" (mkV "ħaseb" (mkRoot "ħ-s-b")) ;
hasseb_HSB_2_8388_V = mkV_II "ħasseb" (mkRoot "ħ-s-b") ;
thasseb_HSB_5_8389_V = mkV_V "tħasseb" (mkRoot "ħ-s-b") ;
thaseb_HSB_6_8390_V = mkV_VI "tħaseb" (mkRoot "ħ-s-b") ;
@@ -1758,7 +1758,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
hasad_HSD_1_8392_V = mkV "ħasad" (mkRoot "ħ-s-d") ;
hassad_HSD_2_8393_V = mkV_II "ħassad" (mkRoot "ħ-s-d") ;
nhasad_HSD_7_8394_V = mkV_VII "ħasad" "nħasad" (mkRoot "ħ-s-d") ;
hasel_HSL_1_8395_V = mkV "ħasel" (mkRoot "ħ-s-l") ;
hasel_HSL_1_8395_V = pastPartV "maħsul" (mkV "ħasel" (mkRoot "ħ-s-l")) ;
hassel_HSL_2_8396_V = mkV_II "ħassel" (mkRoot "ħ-s-l") ;
nhasel_HSL_7_8397_V = mkV_VII "ħasel" "nħasel" (mkRoot "ħ-s-l") ;
hasel_HSL_1_8398_V = mkV "ħasel" (mkRoot "ħ-s-l") ;
@@ -1871,7 +1871,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
hajjar_HJR_2_8505_V = mkV_II "ħajjar" (mkRoot "ħ-j-r") ;
thajjar_HJR_5_8506_V = mkV_V "tħajjar" (mkRoot "ħ-j-r") ;
htar_HJR_8_8507_V = mkV_VIII "ħtar" (mkRoot "ħ-j-r") ;
hat_HJT_1_8508_V = mkV "ħat" (mkRoot "ħ-j-t") ;
hat_HJT_1_8508_V = pastPartV "meħjut" (mkV "ħat" (mkRoot "ħ-j-t")) ;
nhat_HJT_7_8509_V = mkV_VII "ħât" "nħât" (mkRoot "ħ-j-t") ;
hajjet_HJT_2_8510_V = mkV_II "ħajjet" (mkRoot "ħ-j-t") ;
thajjet_HJT_5_8511_V = mkV_V "tħajjet" (mkRoot "ħ-j-t") ;
@@ -1934,7 +1934,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
tkebbex_KBX_5_8568_V = mkV_V "tkebbex" (mkRoot "k-b-x") ;
kabbaz_KBZ_2_8569_V = mkV_II "kabbaz" (mkRoot "k-b-z") ;
tkabbaz_KBZ_5_8570_V = mkV_V "tkabbaz" (mkRoot "k-b-z") ;
kaccac_KCC_2_8571_V = mkV_II "kaċċaċ" (mkRoot "k-ċ-ċ") ;
kaccac_KCC_2_8571_V = pastPartV "kkaċċjat" (mkV_II "kaċċaċ" (mkRoot "k-ċ-ċ")) ;
kedd_KDD_1_8572_V = mkV "kedd" (mkRoot "k-d-d") ;
kedded_KDD_2_8573_V = mkV_II "kedded" (mkRoot "k-d-d") ;
tkedded_KDD_5_8574_V = mkV_V "tkedded" (mkRoot "k-d-d") ;
@@ -1960,7 +1960,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
kelel_KLL_1_8594_V = mkV "kelel" (mkRoot "k-l-l") ;
kellel_KLL_2_8595_V = mkV_II "kellel" (mkRoot "k-l-l") ;
tkellel_KLL_5_8596_V = mkV_V "tkellel" (mkRoot "k-l-l") ;
kellem_KLM_2_8597_V = mkV_II "kellem" (mkRoot "k-l-m") ;
kellem_KLM_2_8597_V = pastPartV "mitkellem" (mkV_II "kellem" (mkRoot "k-l-m")) ;
tkellem_KLM_5_8598_V = mkV_V "tkellem" (mkRoot "k-l-m") ;
kemmed_KMD_2_8599_V = mkV_II "kemmed" (mkRoot "k-m-d") ;
tkemmed_KMD_5_8600_V = mkV_V "tkemmed" (mkRoot "k-m-d") ;
@@ -1999,12 +1999,12 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
kesah_KSH_1_8633_V = mkV "kesaħ" (mkRoot "k-s-ħ") ;
kessah_KSH_2_8634_V = mkV_II "kessaħ" (mkRoot "k-s-ħ") ;
tkessah_KSH_5_8635_V = mkV_V "tkessaħ" (mkRoot "k-s-ħ") ;
kiser_KSR_1_8636_V = mkV "kiser" (mkRoot "k-s-r") ;
kiser_KSR_1_8636_V = pastPartV "miksur" (mkV "kiser" (mkRoot "k-s-r")) ;
kisser_KSR_2_8637_V = mkV_II "kisser" (mkRoot "k-s-r") ;
tkisser_KSR_5_8638_V = mkV_V "tkisser" (mkRoot "k-s-r") ;
nkiser_KSR_7_8639_V = mkV_VII "kiser" "nkiser" (mkRoot "k-s-r") ;
kess_KSS_1_8640_V = mkV "kess" (mkRoot "k-s-s") ;
kiteb_KTB_1_8641_V = mkV "kiteb" (mkRoot "k-t-b") ;
kiteb_KTB_1_8641_V = pastPartV "miktub" (mkV "kiteb" (mkRoot "k-t-b")) ;
kitteb_KTB_2_8642_V = mkV_II "kitteb" (mkRoot "k-t-b") ;
tkieteb_KTB_6_8643_V = mkV_VI "tkieteb" (mkRoot "k-t-b") ;
nkiteb_KTB_7_8644_V = mkV_VII "kiteb" "nkiteb" (mkRoot "k-t-b") ;
@@ -2035,11 +2035,11 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
tkejjef_KJF_5_8669_V = mkV_V "tkejjef" (mkRoot "k-j-f") ;
kejjel_KJL_2_8670_V = mkV_II "kejjel" (mkRoot "k-j-l") ;
tkejjel_KJL_5_8671_V = mkV_V "tkejjel" (mkRoot "k-j-l") ;
kiel_KJL_1_8672_V = irregularV form1 (mkRoot "k-j-l") (mkPattern "ie" [])
kiel_KJL_1_8672_V = pastPartV "mikul" (irregularV form1 (mkRoot "k-j-l") (mkPattern "ie" [])
"kilt" "kilt" "kiel" "kielet" "kilna" "kiltu" "kielu"
"niekol" "tiekol" "jiekol" "tiekol" "nieklu" "tieklu" "jieklu"
("kul"|"iekol") ("kulu"|"ieklu")
;
);
wikkel_KJL_2_8673_V = mkV_II "wikkel" (mkRoot "k-j-l") ;
twikkel_KJL_5_8674_V = mkV_V "twikkel" (mkRoot "k-j-l") ;
ttiekel_KJL_7_8675_V = mkV_VII "tiekel" "ttiekel" (mkRoot "k-j-l") ;
@@ -2143,7 +2143,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
laqqam_LQM_2_8769_V = mkV_II "laqqam" (mkRoot "l-q-m") ;
tlaqqam_LQM_5_8770_V = mkV_V "tlaqqam" (mkRoot "l-q-m") ;
leqq_LQQ_1_8771_V = mkV "leqq" (mkRoot "l-q-q") ;
laqat_LQT_1_8772_V = mkV "laqat" (mkRoot "l-q-t") ;
laqat_LQT_1_8772_V = pastPartV "milqut" (mkV "laqat" (mkRoot "l-q-t")) ;
laqqat_LQT_2_8773_V = mkV_II "laqqat" (mkRoot "l-q-t") ;
tlaqqat_LQT_5_8774_V = mkV_V "tlaqqat" (mkRoot "l-q-t") ;
ntlaqat_LQT_7_8775_V = mkV_VII "laqat" "ntlaqat" (mkRoot "l-q-t") ;
@@ -2187,7 +2187,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
tmedd_MDD_5_8813_V = mkV_V "tmedd" (mkRoot "m-d-d") ;
tmedd_MDD_6_8814_V = mkV_VI "tmedd" (mkRoot "m-d-d") ;
ntmedd_MDD_7_8815_V = mkV_VII "medd" "ntmedd" (mkRoot "m-d-d") ;
mtedd_MDD_8_8816_V = mkV_VIII "mtedd" (mkRoot "m-d-d") ;
mtedd_MDD_8_8816_V = pastPartV "mimdud" (mkV_VIII "mtedd" (mkRoot "m-d-d")) ;
maghad_MGHD_1_8817_V = mkV "magħad" (mkRoot "m-għ-d") ;
maghghad_MGHD_2_8818_V = mkV_II "magħgħad" (mkRoot "m-għ-d") ;
mieghed_MGHD_3_8819_V = mkV_III "miegħed" (mkRoot "m-għ-d") ;
@@ -2252,7 +2252,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
tmarrar_MRR_5_8878_V = mkV_V "tmarrar" (mkRoot "m-r-r") ;
mrar_MRR_9_8879_V = mkV_IX "mrar" (mkRoot "m-r-r") ;
mirex_MRX_1_8880_V = mkV "mirex" (mkRoot "m-r-x") ;
mesah_MSH_1_8881_V = mkV "mesaħ" (mkRoot "m-s-ħ") ;
mesah_MSH_1_8881_V = pastPartV "mimsuħ" (mkV "mesaħ" (mkRoot "m-s-ħ")) ;
messah_MSH_2_8882_V = mkV_II "messaħ" (mkRoot "m-s-ħ") ;
tmessah_MSH_5_8883_V = mkV_V "tmessaħ" (mkRoot "m-s-ħ") ;
ntmesah_MSH_7_8884_V = mkV_VII "mesaħ" "ntmesaħ" (mkRoot "m-s-ħ") ;
@@ -2289,19 +2289,19 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
tmiera_MRJ_6_8915_V = mkV_VI "tmiera" (mkRoot "m-r-j") ;
mewweg_MWG_2_8916_V = mkV_II "mewweġ" (mkRoot "m-w-ġ") ;
tmewweg_MWG_5_8917_V = mkV_V "tmewweġ" (mkRoot "m-w-ġ") ;
mar_MWR_1_8918_V = irregularV form1 (mkRoot "m-w-r") (mkPattern "a" [])
mar_MWR_1_8918_V = presPartV "sejjer" (irregularV form1 (mkRoot "m-w-r") (mkPattern "a" [])
"mort" "mort" "mar" "marret" "morna" "mortu" "marru"
"mmur" "tmur" "jmur" "tmur" "mmorru" "tmorru" "jmorru"
"mur" "morru"
;
) ;
mawwar_MWR_2_8919_V = mkV_II "mawwar" (mkRoot "m-w-r") ;
tmawwar_MWR_5_8920_V = mkV_V "tmawwar" (mkRoot "m-w-r") ;
mewwes_MWS_2_8921_V = mkV_II "mewwes" (mkRoot "m-w-s") ;
mewwes_MWS_2_8921_V = pastPartV "mmewwes" (mkV_II "mewwes" (mkRoot "m-w-s")) ;
tmewwes_MWS_5_8922_V = mkV_V "tmewwes" (mkRoot "m-w-s") ;
miet_MWT_1_8923_V = mkV "miet" (mkRoot "m-w-t") ;
miet_MWT_1_8923_V = pastPartV "mejjet" (mkV "miet" (mkRoot "m-w-t")) ;
mewwet_MWT_2_8924_V = mkV_II "mewwet" (mkRoot "m-w-t") ;
tmewwet_MWT_5_8925_V = mkV_V "tmewwet" (mkRoot "m-w-t") ;
mexa_MXJ_1_8926_V = mkV "mexa" (mkRoot "m-x-j") ;
mexa_MXJ_1_8926_V = pastPartV "mmexxi" (mkV "mexa" (mkRoot "m-x-j")) ;
mexxa_MXJ_2_8927_V = mkV_II "mexxa" (mkRoot "m-x-j") ;
tmexxa_MXJ_5_8928_V = mkV_V "tmexxa" (mkRoot "m-x-j") ;
ntmexx_MXJ_7_8929_V = mkV_VII "mexx" "ntmexx" (mkRoot "m-x-j") ;
@@ -2341,11 +2341,11 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
niffed_NFD_2_8963_V = mkV_II "niffed" (mkRoot "n-f-d") ;
tniffed_NFD_5_8964_V = mkV_V "tniffed" (mkRoot "n-f-d") ;
ntnifed_NFD_7_8965_V = mkV_VII "nifed" "ntnifed" (mkRoot "n-f-d") ;
nefah_NFH_1_8966_V = mkV "nefaħ" (mkRoot "n-f-ħ") ;
nefah_NFH_1_8966_V = pastPartV "minfuħ" (mkV "nefaħ" (mkRoot "n-f-ħ")) ;
neffah_NFH_2_8967_V = mkV_II "neffaħ" (mkRoot "n-f-ħ") ;
tneffah_NFH_5_8968_V = mkV_V "tneffaħ" (mkRoot "n-f-ħ") ;
ntnefah_NFH_7_8969_V = mkV_VII "nefaħ" "ntnefaħ" (mkRoot "n-f-ħ") ;
ntefah_NFH_8_8970_V = mkV_VIII "ntefaħ" (mkRoot "n-f-ħ") ;
ntefah_NFH_8_8970_V = pastPartV "minfuħ" (mkV_VIII "ntefaħ" (mkRoot "n-f-ħ")) ;
nefaq_NFQ_1_8971_V = mkV "nefaq" (mkRoot "n-f-q") ;
neffaq_NFQ_2_8972_V = mkV_II "neffaq" (mkRoot "n-f-q") ;
tneffaq_NFQ_5_8973_V = mkV_V "tneffaq" (mkRoot "n-f-q") ;
@@ -2501,7 +2501,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
naqa_NQJ_1_9123_V = mkV "naqa" (mkRoot "n-q-j") ;
naqqa_NQJ_2_9124_V = mkV_II "naqqa" (mkRoot "n-q-j") ;
tnaqqa_NQJ_5_9125_V = mkV_V "tnaqqa" (mkRoot "n-q-j") ;
nesa_NSJ_1_9126_V = mkV "nesa" (mkRoot "n-s-j") ;
nesa_NSJ_1_9126_V = pastPartV "minsi" (mkV "nesa" (mkRoot "n-s-j")) ;
nessa_NSJ_2_9127_V = mkV_II "nessa" (mkRoot "n-s-j") ;
tnessa_NSJ_5_9128_V = mkV_V "tnessa" (mkRoot "n-s-j") ;
ntnesa_NSJ_7_9129_V = mkV_VII "nesa" "ntnesa" (mkRoot "n-s-j") ;
@@ -2526,11 +2526,11 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
pannat_PNT_2_9149_V = mkV_II "pannat" (mkRoot "p-n-t") ;
perrec_PRC_2_9150_V = mkV_II "perreċ" (mkRoot "p-r-ċ") ;
tperrec_PRC_5_9151_V = mkV_V "tperreċ" (mkRoot "p-r-ċ") ;
pitter_PTR_2_9152_V = mkV_II "pitter" (mkRoot "p-t-r") ;
pitter_PTR_2_9152_V = pastPartV "mpitter" (mkV_II "pitter" (mkRoot "p-t-r")) ;
tpitter_PTR_5_9153_V = mkV_V "tpitter" (mkRoot "p-t-r") ;
paca_PCJ_3_9155_V = mkV_III "paċa" (mkRoot "p-ċ-j") ;
tpaca_PCJ_6_9156_V = mkV_VI "tpaċa" (mkRoot "p-ċ-j") ;
pogga_PGJ_2_9157_V = mkV_II "poġġa" (mkRoot "p-ġ-j") ;
pogga_PGJ_2_9157_V = pastPartV "poġġut" (mkV_II "poġġa" (mkRoot "p-ġ-j")) ;
tpogga_PGJ_5_9158_V = mkV_V "tpoġġa" (mkRoot "p-ġ-j") ;
pejjep_PJP_2_9159_V = mkV_II "pejjep" (mkRoot "p-j-p") ;
tpejjep_PJP_5_9160_V = mkV_V "tpejjep" (mkRoot "p-j-p") ;
@@ -2555,7 +2555,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
qabbas_QBS_2_9179_V = mkV_II "qabbas" (mkRoot "q-b-s") ;
qebbex_QBX_1_9180_V = mkV "qebbex" (mkRoot "q-b-x") ;
tqebbex_QBX_5_9181_V = mkV_V "tqebbex" (mkRoot "q-b-x") ;
qabez_QBZ_1_9182_V = mkV "qabeż" (mkRoot "q-b-ż") ;
qabez_QBZ_1_9182_V = pastPartV "maqbuż" (mkV "qabeż" (mkRoot "q-b-ż")) ;
qabbez_QBZ_2_9183_V = mkV_II "qabbeż" (mkRoot "q-b-ż") ;
tqabbez_QBZ_5_9184_V = mkV_V "tqabbeż" (mkRoot "q-b-ż") ;
tqabez_QBZ_6_9185_V = mkV_VI "tqabeż" (mkRoot "q-b-ż") ;
@@ -2579,13 +2579,13 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
qadar_QDR_1_9203_V = mkV "qadar" (mkRoot "q-d-r") ;
qaddes_QDS_2_9204_V = mkV_II "qaddes" (mkRoot "q-d-s") ;
tqaddes_QDS_5_9205_V = mkV_V "tqaddes" (mkRoot "q-d-s") ;
qafel_QFL_1_9206_V = mkV "qafel" (mkRoot "q-f-l") ;
qafel_QFL_1_9206_V = pastPartV "maqful" (mkV "qafel" (mkRoot "q-f-l")) ;
qaffel_QFL_2_9207_V = mkV_II "qaffel" (mkRoot "q-f-l") ;
nqafel_QFL_7_9208_V = mkV_VII "qafel" "nqafel" (mkRoot "q-f-l") ;
qaffas_QFS_2_9209_V = mkV_II "qaffas" (mkRoot "q-f-s") ;
qaghad_QGHD_1_9210_V = mkV "qagħad" "oqgħod" (mkRoot "q-għ-d") ;
qaghad_QGHD_1_9210_V = pastPartV "mqiegħed" (mkV "qagħad" "oqgħod" (mkRoot "q-għ-d")) ;
qaghghad_QGHD_2_9211_V = mkV_II "qagħgħad" (mkRoot "q-għ-d") ;
qieghed_QGHD_3_9212_V = mkV_III "qiegħed" (mkRoot "q-għ-d") ;
qieghed_QGHD_3_9212_V = pastPartV "mqiegħed" (mkV_III "qiegħed" (mkRoot "q-għ-d")) ;
tqieghed_QGHD_6_9213_V = mkV_VI "tqiegħed" (mkRoot "q-għ-d") ;
qohob_QHB_1_9214_V = mkV "qoħob" (mkRoot "q-ħ-b") ;
qahhab_QHB_2_9215_V = mkV_II "qaħħab" (mkRoot "q-ħ-b") ;
@@ -2596,7 +2596,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
qalleb_QLB_2_9220_V = mkV_II "qalleb" (mkRoot "q-l-b") ;
tqalleb_QLB_5_9221_V = mkV_V "tqalleb" (mkRoot "q-l-b") ;
nqaleb_QLB_7_9222_V = mkV_VII "qaleb" "nqaleb" (mkRoot "q-l-b") ;
qala'_QLGH_1_9223_V = mkV "qala'" (mkRoot "q-l-għ") ;
qala'_QLGH_1_9223_V = pastPartV "maqlugħ" (mkV "qala'" (mkRoot "q-l-għ")) ;
qalla'_QLGH_2_9224_V = mkV_II "qalla'" (mkRoot "q-l-għ") ;
tqalla'_QLGH_5_9225_V = mkV_V "tqalla'" (mkRoot "q-l-għ") ;
nqala'_QLGH_7_9226_V = mkV_VII "qala'" "nqala'" (mkRoot "q-l-għ") ;
@@ -2665,7 +2665,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
qassab_QSB_2_9289_V = mkV_II "qassab" (mkRoot "q-s-b") ;
tqassab_QSB_5_9290_V = mkV_V "tqassab" (mkRoot "q-s-b") ;
qassab_QSB_2_9291_V = mkV_II "qassab" (mkRoot "q-s-b") ;
qasam_QSM_1_9292_V = mkV "qasam" (mkRoot "q-s-m") ;
qasam_QSM_1_9292_V = pastPartV "maqsum" (mkV "qasam" (mkRoot "q-s-m")) ;
qassam_QSM_2_9293_V = mkV_II "qassam" (mkRoot "q-s-m") ;
tqassam_QSM_5_9294_V = mkV_V "tqassam" (mkRoot "q-s-m") ;
nqasam_QSM_7_9295_V = mkV_VII "qasam" "nqasam" (mkRoot "q-s-m") ;
@@ -2678,14 +2678,14 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
tqasses_QSS_5_9302_V = mkV_V "tqasses" (mkRoot "q-s-s") ;
qassat_QST_2_9303_V = mkV_II "qassat" (mkRoot "q-s-t") ;
tqassat_QST_5_9304_V = mkV_V "tqassat" (mkRoot "q-s-t") ;
qata'_QTGH_1_9305_V = mkV "qata'" (mkRoot "q-t-għ") ;
qata'_QTGH_1_9305_V = pastPartV "maqtugħ" (mkV "qata'" (mkRoot "q-t-għ")) ;
qatta'_QTGH_2_9306_V = mkV_II "qatta'" (mkRoot "q-t-għ") ;
qata'_QTGH_3_9307_V = mkV_III "qata'" (mkRoot "q-t-għ") ;
tqatta'_QTGH_5_9308_V = mkV_V "tqatta'" (mkRoot "q-t-għ") ;
tqata'_QTGH_6_9309_V = mkV_VI "tqata'" (mkRoot "q-t-għ") ;
nqata'_QTGH_7_9310_V = mkV_VII "qata'" "nqata'" (mkRoot "q-t-għ") ;
qietgha_QTGH_3_9311_V = mkV_III "qietgħa" (mkRoot "q-t-għ") ;
qatel_QTL_1_9312_V = mkV "qatel" "oqtol" (mkRoot "q-t-l") ;
qatel_QTL_1_9312_V = pastPartV "maqtul" (mkV "qatel" "oqtol" (mkRoot "q-t-l")) ;
qattel_QTL_2_9313_V = mkV_II "qattel" (mkRoot "q-t-l") ;
tqattel_QTL_5_9314_V = mkV_V "tqattel" (mkRoot "q-t-l") ;
tqatel_QTL_6_9315_V = mkV_VI "tqatel" (mkRoot "q-t-l") ;
@@ -2723,7 +2723,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
tqalla_QLJ_5_9347_V = mkV_V "tqalla" (mkRoot "q-l-j") ;
nqela_QLJ_7_9348_V = mkV_VII "qela" "nqela" (mkRoot "q-l-j") ;
qaqa_QQJ_3_9349_V = mkV_III "qaqa" (mkRoot "q-q-j") ;
qara_QRJ_1_9350_V = mkV "qara" (mkRoot "q-r-j") ;
qara_QRJ_1_9350_V = pastPartV "moqri" (mkV "qara" (mkRoot "q-r-j")) ;
qarra_QRJ_2_9351_V = mkV_II "qarra" (mkRoot "q-r-j") ;
qara_QRJ_3_9352_V = mkV_III "qara" (mkRoot "q-r-j") ;
tqarra_QRJ_5_9353_V = mkV_V "tqarra" (mkRoot "q-r-j") ;
@@ -2748,7 +2748,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
tqawwas_QWS_5_9368_V = mkV_V "tqawwas" (mkRoot "q-w-s") ;
rabbab_RBB_2_9369_V = mkV_II "rabbab" (mkRoot "r-b-b") ;
rabba'_RBGH_2_9370_V = mkV_II "rabba'" (mkRoot "r-b-għ") ;
rebah_RBH_1_9371_V = mkV "rebaħ" (mkRoot "r-b-ħ") ;
rebah_RBH_1_9371_V = pastPartV "mirbuħ" (mkV "rebaħ" (mkRoot "r-b-ħ")) ;
rebbah_RBH_2_9372_V = mkV_II "rebbaħ" (mkRoot "r-b-ħ") ;
trebbah_RBH_5_9373_V = mkV_V "trebbaħ" (mkRoot "r-b-ħ") ;
ntrebah_RBH_7_9374_V = mkV_VII "rebaħ" "ntrebaħ" (mkRoot "r-b-ħ") ;
@@ -2765,7 +2765,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
traddad_RDD_5_9385_V = mkV_V "traddad" (mkRoot "r-d-d") ;
ntradd_RDD_7_9386_V = mkV_VII "radd" "ntradd" (mkRoot "r-d-d") ;
rtadd_RDD_8_9387_V = mkV_VIII "rtadd" (mkRoot "r-d-d") ;
rada'_RDGH_1_9388_V = mkV "rada'" (mkRoot "r-d-għ") ;
rada'_RDGH_1_9388_V = pastPartV "mradda'" (mkV "rada'" (mkRoot "r-d-għ")) ;
radda'_RDGH_2_9389_V = mkV_II "radda'" (mkRoot "r-d-għ") ;
tradda'_RDGH_5_9390_V = mkV_V "tradda'" (mkRoot "r-d-għ") ;
ntrada'_RDGH_7_9391_V = mkV_VII "rada'" "ntrada'" (mkRoot "r-d-għ") ;
@@ -2846,7 +2846,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
trammel_RML_5_9466_V = mkV_V "trammel" (mkRoot "r-m-l") ;
romol_RML_1_9467_V = mkV "romol" (mkRoot "r-m-l") ;
rammal_RML_2_9468_V = mkV_II "rammal" (mkRoot "r-m-l") ;
raqad_RQD_1_9469_V = mkV "raqad" (mkRoot "r-q-d") ;
raqad_RQD_1_9469_V = presPartV "rieqed" (pastPartV "mraqqad" (mkV "raqad" (mkRoot "r-q-d"))) ;
raqqad_RQD_2_9470_V = mkV_II "raqqad" (mkRoot "r-q-d") ;
traqqad_RQD_5_9471_V = mkV_V "traqqad" (mkRoot "r-q-d") ;
trieqed_RQD_6_9472_V = mkV_VI "trieqed" (mkRoot "r-q-d") ;
@@ -2890,11 +2890,11 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
razan_RZN_1_9510_V = mkV "rażan" (mkRoot "r-ż-n") ;
razzan_RZN_2_9511_V = mkV_II "rażżan" (mkRoot "r-ż-n") ;
trazzan_RZN_5_9512_V = mkV_V "trażżan" (mkRoot "r-ż-n") ;
ra_R'J_1_9513_V = irregularV form1 (mkRoot "r-'-j") (mkPattern "a" [])
ra_R'J_1_9513_V = pastPartV "muri" (irregularV form1 (mkRoot "r-'-j") (mkPattern "a" [])
"rajt" "rajt" "ra" "rat" "rajna" "rajtu" "raw"
"nara" "tara" "jara" "tara" "naraw" "taraw" "jaraw"
"ara" "araw"
;
) ;
ntwera_R'J_7_9514_V = irregularV form7 (mkRoot "r-'-j") (mkPattern "e" "e")
"ntwerejt" "ntwerejt" "ntwera" "ntweriet" "ntwerejna" "ntwerejtu" "ntwerew"
"nintwera" "tintwera" "jintwera" "tintwera" "nintwerew" "tintwerew" "jintwerew"
@@ -3083,7 +3083,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
stilet_SLT_8_9695_V = mkV_VIII "stilet" (mkRoot "s-l-t") ;
salat_SLT_1_9696_V = mkV "salat" (mkRoot "s-l-t") ;
semed_SMD_2_9697_V = mkV_II "semed" (mkRoot "s-m-d") ;
sema'_SMGH_1_9698_V = mkV "sema'" (mkRoot "s-m-għ") ;
sema'_SMGH_1_9698_V = pastPartV "mismugħ" (mkV "sema'" (mkRoot "s-m-għ")) ;
semma'_SMGH_2_9699_V = mkV_II "semma'" (mkRoot "s-m-għ") ;
ssemma'_SMGH_5_9700_V = mkV_V "ssemma'" (mkRoot "s-m-għ") ;
nstama'_SMGH_7_9701_V = mkV_VII "stama'" "nstama'" (mkRoot "s-m-għ") ;
@@ -3164,7 +3164,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
ssaffa_SFJ_5_9776_V = mkV_V "ssaffa" (mkRoot "s-f-j") ;
seha_SHJ_1_9777_V = mkV "seha" (mkRoot "s-h-j") ;
saha_SHJ_1_9778_V = mkV "saħa" (mkRoot "s-ħ-j") ;
sab_SJB_1_9779_V = mkV "sab" (mkRoot "s-j-b") ;
sab_SJB_1_9779_V = pastPartV "misjub" (mkV "sab" (mkRoot "s-j-b")) ;
nsab_SJB_7_9780_V = mkV_VII "sab" "nsab" (mkRoot "s-j-b") ;
sejjeb_SJB_2_9781_V = mkV_II "sejjeb" (mkRoot "s-j-b") ;
ssejjeb_SJB_5_9782_V = mkV_V "ssejjeb" (mkRoot "s-j-b") ;
@@ -3182,7 +3182,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
nsieh_SJH_7_9794_V = mkV_VII "sieħ" "nsieħ" (mkRoot "s-j-ħ") ;
sijja_SJJ_2_9795_V = mkV_II "sijja" (mkRoot "s-j-j") ;
siel_SJL_1_9796_V = mkV "siel" (mkRoot "s-j-l") ;
sar_SJR_1_9797_V = mkV "sar" (mkRoot "s-j-r") ;
sar_SJR_1_9797_V = pastPartV "misjur" (mkV "sar" (mkRoot "s-j-r")) ;
sajjar_SJR_2_9798_V = mkV_II "sajjar" (mkRoot "s-j-r") ;
ssajjar_SJR_5_9799_V = mkV_V "ssajjar" (mkRoot "s-j-r") ;
sar_SJR_1_9800_V = mkV "sar" (mkRoot "s-j-r") ;
@@ -3277,9 +3277,9 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
takkan_TKN_2_9890_V = mkV_II "takkan" (mkRoot "t-k-n") ;
talab_TLB_1_9891_V = mkV "talab" (mkRoot "t-l-b") ;
tallab_TLB_2_9892_V = mkV_II "tallab" (mkRoot "t-l-b") ;
ttallab_TLB_5_9893_V = mkV_V "ttallab" (mkRoot "t-l-b") ;
ttallab_TLB_5_9893_V = pastPartV "mitlub" (mkV_V "ttallab" (mkRoot "t-l-b")) ;
ntalab_TLB_7_9894_V = mkV_VII "talab" "ntalab" (mkRoot "t-l-b") ;
tilef_TLF_1_9895_V = mkV "tilef" (mkRoot "t-l-f") ;
tilef_TLF_1_9895_V = pastPartV "mitluf" (mkV "tilef" (mkRoot "t-l-f")) ;
tellef_TLF_2_9896_V = mkV_II "tellef" (mkRoot "t-l-f") ;
ttellef_TLF_5_9897_V = mkV_V "ttellef" (mkRoot "t-l-f") ;
ntilef_TLF_7_9898_V = mkV_VII "tilef" "ntilef" (mkRoot "t-l-f") ;
@@ -3287,7 +3287,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
tella'_TLGH_2_9900_V = mkV_II "tella'" (mkRoot "t-l-għ") ;
ttella'_TLGH_5_9901_V = mkV_V "ttella'" (mkRoot "t-l-għ") ;
ntela'_TLGH_7_9902_V = mkV_VII "tela'" "ntela'" (mkRoot "t-l-għ") ;
telaq_TLQ_1_9903_V = mkV "telaq" (mkRoot "t-l-q") ;
telaq_TLQ_1_9903_V = pastPartV "mitluq" (mkV "telaq" (mkRoot "t-l-q")) ;
tellaq_TLQ_2_9904_V = mkV_II "tellaq" (mkRoot "t-l-q") ;
ttellaq_TLQ_5_9905_V = mkV_V "ttellaq" (mkRoot "t-l-q") ;
ntelaq_TLQ_7_9906_V = mkV_VII "telaq" "ntelaq" (mkRoot "t-l-q") ;
@@ -3356,7 +3356,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
ttarraz_TRZ_5_9957_V = mkV_V "ttarraż" (mkRoot "t-r-ż") ;
tarras_TRZ_2_9958_V = mkV_II "tarras" (mkRoot "t-r-ż") ;
ttiefes_TSF_6_9959_V = mkV_VI "ttiefes" (mkRoot "t-s-f") ;
tefa_TFJ_1_9960_V = mkV "tefa" (mkRoot "t-f-j") ;
tefa_TFJ_1_9960_V = pastPartV "mitfi" (mkV "tefa" (mkRoot "t-f-j")) ;
ntefa_TFJ_7_9961_V = mkV_VII "tefa" "ntefa" (mkRoot "t-f-j") ;
taffa_TFJ_2_9962_V = mkV_II "taffa" (mkRoot "t-f-j") ;
ttaffa_TFJ_5_9963_V = mkV_V "ttaffa" (mkRoot "t-f-j") ;
@@ -3368,7 +3368,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
tejjeg_TJG_2_9969_V = mkV_II "tejjeġ" (mkRoot "t-j-ġ") ;
tajjan_TJN_2_9970_V = mkV_II "tajjan" (mkRoot "t-j-n") ;
ttajjan_TJN_5_9971_V = mkV_V "ttajjan" (mkRoot "t-j-n") ;
tar_TJR_1_9972_V = mkV "tar" (mkRoot "t-j-r") ;
tar_TJR_1_9972_V = pastPartV "mtajjar" (mkV "tar" (mkRoot "t-j-r")) ;
tajjar_TJR_2_9973_V = mkV_II "tajjar" (mkRoot "t-j-r") ;
ttajjar_TJR_5_9974_V = mkV_V "ttajjar" (mkRoot "t-j-r") ;
ttajar_TJR_6_9975_V = mkV_VI "ttajar" (mkRoot "t-j-r") ;
@@ -3423,13 +3423,13 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
twiccec_WCC_5_10024_V = mkV_V "twiċċeċ" (mkRoot "w-ċ-ċ") ;
widdeb_WDB_2_10025_V = mkV_II "widdeb" (mkRoot "w-d-b") ;
twiddeb_WDB_5_10026_V = mkV_V "twiddeb" (mkRoot "w-d-b") ;
waddab_WDB_2_10027_V = mkV_II "waddab" (mkRoot "w-d-b") ;
waddab_WDB_2_10027_V = pastPartV "mqaddab" (mkV_II "waddab" (mkRoot "w-d-b")) ;
twaddab_WDB_5_10028_V = mkV_V "twaddab" (mkRoot "w-d-b") ;
ntwaddab_WDB_7_10029_V = mkV_VII "waddab" "ntwaddab" (mkRoot "w-d-b") ;
widden_WDN_2_10030_V = mkV_II "widden" (mkRoot "w-d-n") ;
twidden_WDN_5_10031_V = mkV_V "twidden" (mkRoot "w-d-n") ;
wiggeb_WGB_2_10032_V = mkV_II "wiġġeb" (mkRoot "w-ġ-b") ;
wiegeb_WGB_3_10033_V = mkV_III "wieġeb" (mkRoot "w-ġ-b") ;
wiegeb_WGB_3_10033_V = pastPartV "mwieġeb" "mwieġba" "mwieġbin" (mkV_III "wieġeb" (mkRoot "w-ġ-b")) ;
twiegeb_WGB_6_10034_V = mkV_VI "twieġeb" (mkRoot "w-ġ-b") ;
ntwiegeb_WGB_7_10035_V = mkV_VII "wieġeb" "ntwieġeb" (mkRoot "w-ġ-b") ;
waga'_WGGH_1_10036_V = mkV "waġa'" (mkRoot "w-ġ-għ") ;
@@ -3467,10 +3467,10 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
twemmen_WMN_5_10064_V = mkV_V "twemmen" (mkRoot "w-m-n") ;
wennes_WNS_2_10065_V = mkV_II "wennes" (mkRoot "w-n-s") ;
twennes_WNS_5_10066_V = mkV_V "twennes" (mkRoot "w-n-s") ;
waqaf_WQF_1_10067_V = mkV "waqaf" "ieqaf" (mkRoot "w-q-f") ;
waqaf_WQF_1_10067_V = presPartV "wieqaf" (pastPartV "mwaqqaf" (mkV "waqaf" "ieqaf" (mkRoot "w-q-f"))) ;
waqqaf_WQF_2_10068_V = mkV_II "waqqaf" (mkRoot "w-q-f") ;
twaqqaf_WQF_5_10069_V = mkV_V "twaqqaf" (mkRoot "w-q-f") ;
waqa'_WQGH_1_10070_V = mkV "waqa'" (mkRoot "w-q-għ") ;
waqa'_WQGH_1_10070_V = pastPartV "mwaqqa'" (mkV "waqa'" (mkRoot "w-q-għ")) ;
waqqa'_WQGH_2_10071_V = mkV_II "waqqa'" (mkRoot "w-q-għ") ;
twaqqa'_WQGH_5_10072_V = mkV_V "twaqqa'" (mkRoot "w-q-għ") ;
waqqat_WQT_2_10073_V = mkV_II "waqqat" (mkRoot "w-q-t") ;
@@ -3555,7 +3555,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
xxiegheb_XGHB_6_10152_V = mkV_VI "xxiegħeb" (mkRoot "x-għ-b") ;
xoghof_XGHF_1_10153_V = mkV "xogħof" (mkRoot "x-għ-f") ;
xieghef_XGHF_3_10154_V = mkV_III "xiegħef" (mkRoot "x-għ-f") ;
xeghel_XGHL_1_10155_V = mkV "xegħel" "ixgħel" (mkRoot "x-għ-l") ;
xeghel_XGHL_1_10155_V = pastPartV "mizgħul" (mkV "xegħel" "ixgħel" (mkRoot "x-għ-l")) ;
xieghel_XGHL_3_10156_V = mkV_III "xiegħel" (mkRoot "x-għ-l") ;
nxeghel_XGHL_7_10157_V = mkV_VII "xegħel" "nxegħel" (mkRoot "x-għ-l") ;
xteghel_XGHL_8_10158_V = mkV_VIII "xtegħel" (mkRoot "x-għ-l") ;
@@ -3607,7 +3607,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
xamma'_XMGH_2_10204_V = mkV_II "xamma'" (mkRoot "x-m-għ") ;
ixxamma'_XMGH_5_10205_V = mkV_V "ixxamma'" (mkRoot "x-m-għ") ;
ximek_XMK_1_10206_V = mkV "ximek" (mkRoot "x-m-k") ;
xamm_XMM_1_10207_V = mkV "xamm" (mkRoot "x-m-m") ;
xamm_XMM_1_10207_V = pastPartV "mixmum" (mkV "xamm" (mkRoot "x-m-m")) ;
xammem_XMM_2_10208_V = mkV_II "xammem" (mkRoot "x-m-m") ;
xxammam_XMM_5_10209_V = mkV_V "xxammam" (mkRoot "x-m-m") ;
nxamm_XMM_7_10210_V = mkV_VII "xamm" "nxamm" (mkRoot "x-m-m") ;
@@ -3631,7 +3631,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
xaqqaq_XQQ_2_10228_V = mkV_II "xaqqaq" (mkRoot "x-q-q") ;
xxaqqar_XQR_5_10229_V = mkV_V "xxaqqar" (mkRoot "x-q-r") ;
xqar_XQR_9_10230_V = mkV_IX "xqar" (mkRoot "x-q-r") ;
xorob_XRB_1_10231_V = mkV "xorob" (mkRoot "x-r-b") ;
xorob_XRB_1_10231_V = pastPartV "mixrub" (mkV "xorob" (mkRoot "x-r-b")) ;
xarrab_XRB_2_10232_V = mkV_II "xarrab" (mkRoot "x-r-b") ;
xxarrab_XRB_5_10233_V = mkV_V "xxarrab" (mkRoot "x-r-b") ;
nxorob_XRB_7_10234_V = mkV_VII "xorob" "nxorob" (mkRoot "x-r-b") ;
@@ -3696,7 +3696,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
xena_XNJ_1_10293_V = mkV "xena" (mkRoot "x-n-j") ;
xara_XRJ_1_10294_V = mkV "xara" (mkRoot "x-r-j") ;
nxara_XRJ_7_10295_V = mkV_VII "xara" "nxara" (mkRoot "x-r-j") ;
xtara_XRJ_8_10296_V = mkV_VIII "xtara" (mkRoot "x-r-j") ;
xtara_XRJ_8_10296_V = pastPartV "mixtri" (mkV_VIII "xtara" (mkRoot "x-r-j")) ;
xita_XTW_1_10297_V = mkV "xita" (mkRoot "x-t-w") ;
xitta_XTW_2_10298_V = mkV_II "xitta" (mkRoot "x-t-w") ;
xaf_XWF_1_10299_V = mkV "xaf" (mkRoot "x-w-f") ;
@@ -3713,7 +3713,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
xewwaq_XWQ_2_10310_V = mkV_II "xewwaq" (mkRoot "x-w-q") ;
xxewwaq_XWQ_5_10311_V = mkV_V "xxewwaq" (mkRoot "x-w-q") ;
nxtaq_XWQ_7_10312_V = mkV_VII "xtaq" "nxtaq" (mkRoot "x-w-q") ;
xtaq_XWQ_8_10313_V = mkV_VIII "xtaq" (mkRoot "x-w-q") ;
xtaq_XWQ_8_10313_V = pastPartV "mixtieq" (mkV_VIII "xtaq" (mkRoot "x-w-q")) ;
xawwar_XWR_2_10314_V = mkV_II "xawwar" (mkRoot "x-w-r") ;
xawwat_XWT_2_10315_V = mkV_II "xawwat" (mkRoot "x-w-t") ;
xxawwat_XWT_5_10316_V = mkV_V "xxawwat" (mkRoot "x-w-t") ;
@@ -3792,7 +3792,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
zemmel_ZML_2_10389_V = mkV_II "żemmel" (mkRoot "ż-m-l") ;
zzemmel_ZML_5_10390_V = mkV_V "żżemmel" (mkRoot "ż-m-l") ;
zziemel_ZML_6_10391_V = mkV_VI "żżiemel" (mkRoot "ż-m-l") ;
zamm_ZMM_1_10392_V = mkV "żamm" (mkRoot "ż-m-m") ;
zamm_ZMM_1_10392_V = pastPartV "miżjum" (mkV "żamm" (mkRoot "ż-m-m")) ;
zammam_ZMM_2_10393_V = mkV_II "żammam" (mkRoot "ż-m-m") ;
nzamm_ZMM_7_10394_V = mkV_VII "żamm" "nżamm" (mkRoot "ż-m-m") ;
zammar_ZMR_2_10395_V = mkV_II "żammar" (mkRoot "ż-m-r") ;
@@ -3824,7 +3824,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
zrieq_ZRQ_9_10421_V = mkV_IX "żrieq" (mkRoot "ż-r-q") ;
zattat_ZTT_2_10422_V = mkV_II "żattat" (mkRoot "ż-t-t") ;
zzattat_ZTT_5_10423_V = mkV_V "żżattat" (mkRoot "ż-t-t") ;
zied_ZJD_1_10424_V = mkV "żied" (mkRoot "ż-j-d") ;
zied_ZJD_1_10424_V = pastPartV "miżjud" (mkV "żied" (mkRoot "ż-j-d")) ;
nzied_ZJD_7_10425_V = mkV_VII "żied" "nżied" (mkRoot "ż-j-d") ;
zdied_ZJD_8_10426_V = mkV_VIII "żdied" (mkRoot "ż-j-d") ;
zief_ZJF_1_10427_V = mkV "żief" (mkRoot "ż-j-f") ;
@@ -3860,7 +3860,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
tghaddab_GHDB_5_10457_V = mkV_V "tgħaddab" (mkRoot "għ-d-b") ;
ghaddeb_GHDB_2_10458_V = mkV_II "għaddeb" (mkRoot "għ-d-b") ;
tghaddeb_GHDB_5_10459_V = mkV_V "tgħaddeb" (mkRoot "għ-d-b") ;
ghadd_GHDD_1_10460_V = mkV "għadd" (mkRoot "għ-d-d") ;
ghadd_GHDD_1_10460_V = pastPartV "mgħadd" (mkV "għadd" (mkRoot "għ-d-d")) ;
ghadded_GHDD_2_10461_V = mkV_II "għadded" (mkRoot "għ-d-d") ;
tghadded_GHDD_5_10462_V = mkV_V "tgħadded" (mkRoot "għ-d-d") ;
nghadd_GHDD_7_10463_V = mkV_VII "għadd" "ngħadd" (mkRoot "għ-d-d") ;
@@ -3926,11 +3926,11 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
ghallel_GHLL_2_10523_V = mkV_II "għallel" (mkRoot "għ-l-l") ;
tghallel_GHLL_5_10524_V = mkV_V "tgħallel" (mkRoot "għ-l-l") ;
nghall_GHLL_7_10525_V = mkV_VII "għall" "ngħall" (mkRoot "għ-l-l") ;
ghallem_GHLM_2_10526_V = mkV_II "għallem" (mkRoot "għ-l-m") ;
ghallem_GHLM_2_10526_V = pastPartV "mgħallem" (mkV_II "għallem" (mkRoot "għ-l-m")) ;
tghallem_GHLM_5_10527_V = mkV_V "tgħallem" (mkRoot "għ-l-m") ;
ntghallem_GHLM_7_10528_V = mkV_VII "għallem" "ntgħallem" (mkRoot "għ-l-m") ;
ghelem_GHLM_1_10529_V = mkV "għelem" (mkRoot "għ-l-m") ;
ghalaq_GHLQ_1_10530_V = mkV "għalaq" "agħlaq" (mkRoot "għ-l-q") ;
ghalaq_GHLQ_1_10530_V = pastPartV "mgħaluq" (mkV "għalaq" "agħlaq" (mkRoot "għ-l-q")) ;
ghallaq_GHLQ_2_10531_V = mkV_II "għallaq" (mkRoot "għ-l-q") ;
nghalaq_GHLQ_7_10532_V = mkV_VII "għalaq" "ngħalaq" (mkRoot "għ-l-q") ;
ntghalaq_GHLQ_7_10533_V = mkV_VII "għalaq" "ntgħalaq" (mkRoot "għ-l-q") ;
@@ -3944,7 +3944,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
tghammad_GHMD_5_10541_V = mkV_V "tgħammad" (mkRoot "għ-m-d") ;
ghammed_GHMD_2_10542_V = mkV_II "għammed" (mkRoot "għ-m-d") ;
tghammed_GHMD_5_10543_V = mkV_V "tgħammed" (mkRoot "għ-m-d") ;
ghamel_GHML_1_10544_V = mkV "għamel" (mkRoot "għ-m-l") ;
ghamel_GHML_1_10544_V = pastPartV "magħmul" (mkV "għamel" (mkRoot "għ-m-l")) ;
ghammel_GHML_2_10545_V = mkV_II "għammel" (mkRoot "għ-m-l") ;
nghamel_GHML_7_10546_V = mkV_VII "għamel" "ngħamel" (mkRoot "għ-m-l") ;
ghammem_GHMM_2_10547_V = mkV_II "għammem" (mkRoot "għ-m-m") ;
@@ -4025,7 +4025,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
tghassed_GHSD_5_10622_V = mkV_V "tgħassed" (mkRoot "għ-s-d") ;
ghassel_GHSL_2_10623_V = mkV_II "għassel" (mkRoot "għ-s-l") ;
tghassel_GHSL_5_10624_V = mkV_V "tgħassel" (mkRoot "għ-s-l") ;
ghasar_GHSR_1_10625_V = mkV "għasar" (mkRoot "għ-s-r") ;
ghasar_GHSR_1_10625_V = pastPartV "mgħasur" (mkV "għasar" (mkRoot "għ-s-r")) ;
ghassar_GHSR_2_10626_V = mkV_II "għassar" (mkRoot "għ-s-r") ;
nghasar_GHSR_7_10627_V = mkV_VII "għasar" "ngħasar" (mkRoot "għ-s-r") ;
ghass_GHSS_1_10628_V = mkV "għass" (mkRoot "għ-s-s") ;
@@ -4079,7 +4079,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
ghezzez_GHZZ_2_10676_V = mkV_II "għeżżeż" (mkRoot "għ-ż-ż") ;
ghabba_GHBJ_2_10677_V = mkV_II "għabba" (mkRoot "għ-b-j") ;
tghabba_GHBJ_5_10678_V = mkV_V "tgħabba" (mkRoot "għ-b-j") ;
ghadda_GHDJ_2_10679_V = mkV_II "għadda" (mkRoot "għ-d-j") ;
ghadda_GHDJ_2_10679_V = pastPartV "mgħoddi" (mkV_II "għadda" (mkRoot "għ-d-j")) ;
tghadda_GHDJ_5_10680_V = mkV_V "tgħadda" (mkRoot "għ-d-j") ;
ghagha_GHGHJ_1_10681_V = mkV "għagħa" (mkRoot "għ-għ-j") ;
gheb_GHJB_1_10682_V = mkV "għeb" (mkRoot "għ-j-b") ;
@@ -4167,11 +4167,11 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
tghazza_GHZW_5_10764_V = mkV_V "tgħażża" (mkRoot "għ-ż-w") ;
hassel_HSL_2_10765_V = mkV_II "ħassel" (mkRoot "ħ-s-l") ;
thassel_HSL_5_10766_V = mkV_V "tħassel" (mkRoot "ħ-s-l") ;
ta_GHTJ_1_10767_V = irregularV form1 (mkRoot "għ-t-j") (mkPattern "a" [])
ta_GHTJ_1_10767_V = pastPartV "mogħti" (irregularV form1 (mkRoot "għ-t-j") (mkPattern "a" [])
"tajt" "tajt" "ta" "tat" "tajna" "tajtu" "taw"
"nagħti" "tagħti" "jagħti" "tagħti" "nagħtu" "tagħtu" "jagħtu"
"agħti" "agħtu"
;
) ;
nghata_GHTJ_7_10768_V = mkV_VII "għata" "ngħata" (mkRoot "għ-t-j") ;
idda_'DJ_8_10771_V = irregularV form8 (mkRoot "'-d-j") (mkPattern "i" "e")
"iddejt" "iddejt" "idda" "iddiet" "iddejna" "iddejtu" "iddew"
@@ -4223,11 +4223,11 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
"namba" "tamba" "jamba" "tamba" "nambaw" "tambaw" "jambaw"
"amba" "ambaw"
;
stenna_'NJ_10_10781_V = irregularV form10 (mkRoot "'-n-j") (mkPattern "e" "a")
stenna_'NJ_10_10781_V = pastPartV "mistenni" (irregularV form10 (mkRoot "'-n-j") (mkPattern "e" "a")
"stennejt" "stennejt" "stenna" "stenniet" "stennejna" "stennejtu" "stennew"
"nistenna" "tistenna" "jistenna" "tistenna" "nistennew" "tistennew" "jistennew"
"stenna" "stennew"
;
) ;
stienes_'NS_10_10782_V = mkV irregular form10 (mkRoot "'-n-s") (mkPattern "ie" "e")
"stienist" "stienist" "stienes" "stienset" "stienisna" "stienistu" "stiensu"
"nistienes" "tistienes" "jistienes" "tistienes" "nistiensu" "tistiensu" "jistiensu"
@@ -4297,9 +4297,9 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
-- Loan verbs
lin
mbotta_V = mkV "mbotta" ;
vvjagga_V = mkV "vvjaġġa" ;
ffriza_V = mkV "ffriża" ;
kkuntempla_V = mkV "kkuntempla" ;
mbotta_V = pastPartV "mbuttat" (mkV "mbotta") ;
vvjagga_V = pastPartV "vvjaġġat" (mkV "vvjaġġa") ;
ffriza_V = pastPartV "ffriżat" (mkV "ffriża") ;
kkuntempla_V = pastPartV "kkuntemplat" (mkV "kkuntempla") ;
}

View File

@@ -10,13 +10,16 @@ concrete IdiomMlt of Idiom = CatMlt ** open Prelude, ResMlt in {
coding=utf8;
lin
-- VP -> Cl ; -- it is hot
-- VP -> Cl
-- it is hot
ImpersCl vp = mkClause "" (agrP3 Sg Masc) vp ;
-- VP -> Cl ; -- one sleeps
-- VP -> Cl
-- one sleeps
GenericCl vp = mkClause "wieħed" (agrP3 Sg Masc) vp ;
-- NP -> RS -> Cl ; -- it is I who did it
-- NP -> RS -> Cl
-- it is I who did it
CleftNP np rs = {
s = \\t,a,p,o => case p of {
Pos => np.s ! NPNom ++ kont ++ "li" ++ rs.s ! np.a ; -- jiena kont li qrajt il-ktieb
@@ -32,42 +35,56 @@ concrete IdiomMlt of Idiom = CatMlt ** open Prelude, ResMlt in {
}
} ;
-- Adv -> S -> Cl ; -- it is here she slept
-- Adv -> S -> Cl
-- it is here she slept
CleftAdv adv s = {
s = \\t,a,p,o => adv.s ++ s.s ;
} ;
-- NP -> Cl ; -- there is a house
-- NP -> Cl
-- there is a house
ExistNP np = {
s = \\t,a,p,o => auxHemm.s ! t ! p ++ np.s ! NPAcc ;
} ;
-- IP -> QCl ; -- which houses are there
-- IP -> QCl
-- which houses are there
ExistIP ip = {
s = \\t,a,p,o => ip.s ++ auxHemm.s ! t ! p ;
} ;
-- NP -> Adv -> Cl ; -- there is a house in Paris
-- NP -> Adv -> Cl
-- there is a house in Paris
ExistNPAdv np adv = {
s = \\t,a,p,o => auxHemm.s ! t ! p ++ np.s ! NPAcc ++ adv.s ;
} ;
-- IP -> Adv -> QCl ; -- which houses are there in Paris
-- IP -> Adv -> QCl
-- which houses are there in Paris
ExistIPAdv ip adv = {
s = \\t,a,p,o => ip.s ++ auxHemm.s ! t ! p ++ adv.s ;
} ;
-- VP -> VP ; -- be sleeping
ProgrVP vp = CopulaVP ** {
s2 = \\agr => joinVP vp (VPIndicat Pres agr) Simul Pos
-- VP -> VP
-- be sleeping
ProgrVP vp = {
v = CopulaVP.v ;
s2 = \\agr => case vp.v.hasPresPart of {
True => (vp.v.s ! VPresPart (toGenNum agr)).s1 ;
False => (vp.v.s ! VImpf (toVAgr agr)).s1
} ;
dir = NullAgr ;
ind = NullAgr ;
} ;
-- VP -> Utt ; -- let's go
-- VP -> Utt
-- let's go
ImpPl1 vp = {
s = "ejja" ++ infVP vp Simul Pos (mkAgr Pl P1 Masc)
} ;
-- NP -> VP -> Utt ; -- let John walk
-- NP -> VP -> Utt
-- let John walk
ImpP3 np vp = {
s = halli ++ np.s ! NPAcc ++ infVP vp Simul Pos np.a
} where {

View File

@@ -13,235 +13,218 @@ concrete LexiconMlt of Lexicon = CatMlt **
optimize=values ;
coding=utf8 ;
-- Nouns
lin
airplane_N = mkN "ajruplan" "ajruplani" ;
animal_N = mkN "annimal" "annimali" ;
apartment_N = mkN "appartament" "appartamenti" ;
apple_N = mkNColl "tuffieħa" "tuffieħ" "tuffieħat" ;
art_N = mkNNoPlural "arti" feminine ;
ashes_N = mkN "rmied" "rmiet" ;
baby_N = mkN "tarbija" "trabi" ;
back_N = possN (mkN "dahar" "dhur") ;
bank_N = mkN "bank" "bankijiet" ;
bark_N = mkN "qoxra" "qoxriet" ;
beer_N = mkN "birra" "birer" ;
belly_N = possN (mkN "żaqq" "żquq") ;
bike_N = mkN "rota" "roti" ;
bird_N = mkN "għasfur" "għasafar" ; -- genderedN
blood_N = possN (mkNColl "demm" "dmija") ;
boat_N = mkN "dgħajsa" "dgħajjes" ;
bone_N = mkNColl "għadma" "għadam" "għadmiet" ;
book_N = mkN "ktieb" "kotba" ;
boot_N = mkNColl "żarbuna" "żarbun" "żraben" ;
boss_N = mkN "mgħallem" "mgħallmin" ;
boy_N = mkN "tifel" "tfal" ;
bread_N = mkNColl "ħobża" "ħobż" "ħobżiet" ;
breast_N = possN (mkN "sider" "sdur") ;
brother_N2 = mkN2 (possN (mkN "ħu" "aħwa")) ;
butter_N = mkNColl "butir" "butirijiet" ;
camera_N = mkN "kamera" "kameras" ;
cap_N = mkN "kappell" "kpiepel" ;
car_N = mkN "karozza" "karozzi" ;
carpet_N = mkN "tapit" "twapet" ;
cat_N = mkN "qattus" "qtates" ; -- genderedN
ceiling_N = mkN "saqaf" "soqfa" ;
chair_N = mkN "siġġu" "siġġijiet" ;
cheese_N = mkNColl "ġobna" "ġobon" "ġobniet" ;
child_N = mkN "tifel / tifla" "tfal" ; -- genderedN
church_N = mkN "knisja" "knejjes" ;
city_N = mkN "belt" "bliet" feminine ;
cloud_N = mkNColl "sħaba" "sħab" "sħabiet" ;
coat_N = mkN "kowt" "kowtijiet" ;
computer_N = mkN "kompjuter" "kompjuters" ;
country_N = possN (mkN "pajjiż" "pajjiżi") ;
cousin_N = mkN "kuġin" "kuġini" ; -- genderedN
cow_N = mkNColl "baqra" "baqar" "baqriet" ;
day_N = mkN "ġurnata" "ġranet" ;
distance_N3 = mkN3 (mkN "distanza") minnP saP ;
doctor_N = mkN "tabib" "tobba" ; -- genderedN
dog_N = mkN "kelb" "klieb" ;
door_N = mkN "bieb" "bibien" ;
dust_N = mkNColl "traba" "trab" "trabiet" ;
ear_N = possN (mkNDual "widna" "widnejn" "widniet") ;
earth_N = mkN "art" "artijiet" feminine ;
egg_N = mkNColl "bajda" "bajd" "bajdiet" ;
enemy_N = mkN "għadu" "għedewwa" ;
eye_N = possN (mkNDual "għajn" "għajnejn" "għajnejn" "għejun" feminine) ;
factory_N = mkN "fabbrika" "fabbriki" ;
fat_N = mkNColl "xaħma" "xaħam" "xaħmiet" "xaħmijiet" ;
father_N2 = mkN2 (possN (mkN "missier" "missirijiet")) ;
feather_N = mkNColl "rixa" "rix" "rixiet" ;
fingernail_N = possN (mkNDual "difer" "difrejn" "dwiefer") ;
fire_N = mkN "nar" "nirien" ;
fish_N = mkNColl "ħuta" "ħut" "ħutiet" ;
floor_N = mkN "art" "artijiet" feminine ;
flower_N = mkN "fjura" "fjuri" ;
fog_N = mkNColl "ċpar" ;
foot_N = possN (mkNDual "sieq" "saqajn" "saqajn" feminine) ;
forest_N = mkN "foresta" "foresti" ;
fridge_N = mkN "friġġ" "friġġijiet" ;
friend_N = possN (mkN "ħabib" "ħbieb") ; -- genderedN
fruit_N = mkNColl "frotta" "frott" "frottiet" "frottijiet" ;
garden_N = mkN "ġnien" "ġonna" ;
girl_N = mkN "tifla" "tfal" ;
glove_N = mkN "ingwanta" "ingwanti" ;
gold_N = mkNColl "deheb" "dehbijiet" ;
grammar_N = mkN "grammatika" "grammatiki" ;
grass_N = mkNColl "ħaxixa" "ħaxix" "ħxejjex" ;
guts_N = possN (mkN "musrana" "musraniet" "msaren") ;
hair_N = possN (mkNColl "xagħara" "xagħar" "xagħariet" "xgħur") ;
hand_N = possN (mkNDual "id" "idejn" "idejn" feminine) ;
harbour_N = mkN "port" "portijiet" ;
hat_N = mkN "kappell" "kpiepel" ;
head_N = possN (mkN "ras" "rjus" feminine) ;
heart_N = possN (mkN "qalb" "qlub" feminine) ;
hill_N = mkN "għolja" "għoljiet" ;
horn_N = mkN "ħorn" "ħornijiet" ;
horse_N = mkN "żiemel" "żwiemel" ;
house_N = mkN "dar" "djar" feminine ;
husband_N = mkN "raġel" "rġiel" ;
ice_N = mkN "silġ" "silġiet" ;
industry_N = mkN "industrija" "industriji" ;
iron_N = mkNColl "ħadida" "ħadid" "ħadidiet" "ħdejjed" ;
king_N = mkN "re" "rejjiet" ;
knee_N = possN (mkNDual "rkoppa" "rkopptejn" "rkoppiet") ;
lake_N = mkN "għadira" "għadajjar" ;
lamp_N = mkN "lampa" "lampi" ;
language_N = mkN "lingwa" "lingwi" ;
leaf_N = mkNDual "werqa" "werqtejn" "werqiet" ;
leather_N = mkN "ġilda" "ġildiet" ;
leg_N = (mkNDual "riġel" "riġlejn" "riġlejn") ;
liver_N = mkN "fwied" "ifdwa" ;
louse_N = mkN "qamla" "qamliet" ;
love_N = mkN "mħabba" "mħabbiet" ;
man_N = mkN "raġel" "rġiel" ;
meat_N = mkNColl "laħma" "laħam" "laħmiet" "laħmijiet" ;
milk_N = mkNColl "ħalib" "ħalibijiet" ;
moon_N = mkN "qamar" "oqmra" ;
mother_N2 = mkN2 (possN (mkN "omm" "ommijiet" feminine)) ;
mountain_N = mkN "muntanja" "muntanji" ;
mouth_N = possN (mkN "ħalq" "ħluq") ;
music_N = mkN "mużika" "mużiki" ;
name_N = possN (mkN "isem" "ismijiet") ;
neck_N = possN (mkN "għonq" "għenuq") ;
newspaper_N = mkN "gazzetta" "gazzetti" ;
night_N = mkN "lejl" "ljieli" ;
nose_N = possN (mkN "mnieħer" "mniħrijiet") ;
number_N = mkN "numru" "numrui" ;
oil_N = mkN "żejt" "żjut" ;
paper_N = mkN "karta" "karti" ;
peace_N = mkN "paċi" "paċijiet" feminine ;
pen_N = mkN "pinna" "pinen" ;
person_N = mkNColl "persuna" "persuni" ;
planet_N = mkN "pjaneta" "pjaneti" ;
plastic_N = mkNNoPlural "plastik" ;
policeman_N = mkNNoPlural "pulizija" ;
priest_N = mkN "qassis" "qassisin" ;
queen_N = mkN "reġina" "rġejjen" ;
question_N = mkN "mistoqsija" "mistoqsijiet" ;
radio_N = mkN "radju" "radjijiet" ;
rain_N = mkNNoPlural "xita" ;
reason_N = mkN "raġun" "raġunijiet" ;
religion_N = mkN "reliġjon" "reliġjonijiet" ;
restaurant_N = mkN "restorant" "restoranti" ;
river_N = mkN "xmara" "xmajjar" ;
road_N = mkN "triq" "triqat" "toroq" feminine ;
rock_N = mkNColl "blata" "blat" "blatiet" ;
roof_N = mkN "saqaf" "soqfa" ;
root_N = mkN "qħerq" "qħeruq" ;
rope_N = mkN "ħabel" "ħbula" ;
rubber_N = mkN "gomma" "gomom" ;
rule_N = mkN "regola" "regoli" ;
salt_N = mkN "melħ" "melħiet" ;
sand_N = mkNColl "ramla" "ramel" "ramliet" ;
school_N = mkN "skola" "skejjel" ;
science_N = mkN "xjenza" "xjenzi" ;
sea_N = mkNDual "baħar" "baħrejn" "ibħra" ;
seed_N = mkN "żerriegħa" "żerrigħat" ;
sheep_N = mkNColl "nagħġa" "ngħaġ" "nagħġiet" ;
ship_N = mkN "vapur" "vapuri" ;
shirt_N = mkN "qmis" "qomos" feminine ;
shoe_N = mkN "żarbun" "żraben" ;
shop_N = mkN "ħanut" "ħwienet" ;
silver_N = mkN "fidda" "fided" ;
sister_N = (mkN "oħt" "aħwa" feminine) ;
skin_N = mkN "ġilda" "ġildiet" ;
sky_N = mkN "sema" "smewwiet" masculine ;
smoke_N = mkN "duħħan" "dħaħen" ;
snake_N = mkN "serp" "sriep" ;
snow_N = mkNColl "borra" ;
sock_N = mkN "kalzetta" "kalzetti" ;
song_N = mkN "kanzunetta" "kanzunetti" ;
star_N = mkN "stilla" "stilel" ;
steel_N = mkNNoPlural "azzar" ;
stick_N = mkN "lasta" "lasti" ;
stone_N = mkNColl "ġebla" "ġebel" "ġebliet" "ġbiel" ;
stove_N = mkN "kuker" "kukers" ;
student_N = mkN "student" "studenti" ;
sun_N = mkN "xemx" "xmux" feminine ;
table_N = mkN "mejda" "mwejjed" ;
tail_N = (mkN "denb" "dnieb") ;
teacher_N = mkN "għalliem" "għalliema" ; -- genderedN
television_N = mkN "televixin" "televixins" ;
tongue_N = possN (mkN "lsien" "ilsna") ;
tooth_N = possN (mkN "sinna" "sinniet" "snien") ;
train_N = mkN "ferrovija" "ferroviji" ;
tree_N = mkNColl "siġra" "siġar" "siġriet" ;
university_N = mkN "università" "universitàjiet" ;
village_N = mkN "raħal" "rħula" ;
war_N = mkN "gwerra" "gwerrer" ;
water_N = mkN "ilma" "ilmijiet" masculine ;
wife_N = mkN "mara" "nisa" ;
wind_N = mkN "riħ" "rjieħ" "rjiħat" ;
window_N = mkN "tieqa" "twieqi" ;
wine_N = mkNColl "nbid" "nbejjed" ;
wing_N = mkN "ġewnaħ" "ġwienaħ" ;
woman_N = mkN "mara" "nisa" ;
wood_N = mkN "injam" "injamiet" ;
worm_N = mkNColl "dudu" "dud" "dudiet" ;
year_N = mkNDual "sena" "sentejn" "snin" ;
airplane_N = mkN "ajruplan" "ajruplani" ;
animal_N = mkN "annimal" "annimali" ;
apartment_N = mkN "appartament" "appartamenti" ;
apple_N = mkNColl "tuffieħa" "tuffieħ" "tuffieħat" ;
art_N = mkNNoPlural "arti" feminine ;
ashes_N = mkN "rmied" "rmiet" ;
baby_N = mkN "tarbija" "trabi" ;
back_N = possN (mkN "dahar" "dhur") ;
bank_N = mkN "bank" "bankijiet" ;
bark_N = mkN "qoxra" "qoxriet" ;
beer_N = mkN "birra" "birer" ;
belly_N = possN (mkN "żaqq" "żquq") ;
bike_N = mkN "rota" "roti" ;
bird_N = mkN "għasfur" "għasafar" ; -- genderedN
blood_N = possN (mkNColl "demm" "dmija") ;
boat_N = mkN "dgħajsa" "dgħajjes" ;
bone_N = mkNColl "għadma" "għadam" "għadmiet" ;
book_N = mkN "ktieb" "kotba" ;
boot_N = mkNColl "żarbuna" "żarbun" "żraben" ;
boss_N = mkN "mgħallem" "mgħallmin" ;
boy_N = mkN "tifel" "tfal" ;
bread_N = mkNColl "ħobża" "ħobż" "ħobżiet" ;
breast_N = possN (mkN "sider" "sdur") ;
brother_N2 = mkN2 (possN (mkN "ħu" "aħwa")) ;
butter_N = mkNColl "butir" "butirijiet" ;
camera_N = mkN "kamera" "kameras" ;
cap_N = mkN "kappell" "kpiepel" ;
car_N = mkN "karozza" "karozzi" ;
carpet_N = mkN "tapit" "twapet" ;
cat_N = mkN "qattus" "qtates" ; -- genderedN
ceiling_N = mkN "saqaf" "soqfa" ;
chair_N = mkN "siġġu" "siġġijiet" ;
cheese_N = mkNColl "ġobna" "ġobon" "ġobniet" ;
child_N = mkN "tifel / tifla" "tfal" ; -- genderedN
church_N = mkN "knisja" "knejjes" ;
city_N = mkN "belt" "bliet" feminine ;
cloud_N = mkNColl "sħaba" "sħab" "sħabiet" ;
coat_N = mkN "kowt" "kowtijiet" ;
computer_N = mkN "kompjuter" "kompjuters" ;
country_N = possN (mkN "pajjiż" "pajjiżi") ;
cousin_N = mkN "kuġin" "kuġini" ; -- genderedN
cow_N = mkNColl "baqra" "baqar" "baqriet" ;
day_N = mkN "ġurnata" "ġranet" ;
distance_N3 = mkN3 (mkN "distanza") minnP saP ;
doctor_N = mkN "tabib" "tobba" ; -- genderedN
dog_N = mkN "kelb" "klieb" ;
door_N = mkN "bieb" "bibien" ;
dust_N = mkNColl "traba" "trab" "trabiet" ;
ear_N = possN (mkNDual "widna" "widnejn" "widniet") ;
earth_N = mkN "art" "artijiet" feminine ;
egg_N = mkNColl "bajda" "bajd" "bajdiet" ;
enemy_N = mkN "għadu" "għedewwa" ;
eye_N = possN (mkNDual "għajn" "għajnejn" "għajnejn" "għejun" feminine) ;
factory_N = mkN "fabbrika" "fabbriki" ;
fat_N = mkNColl "xaħma" "xaħam" "xaħmiet" "xaħmijiet" ;
father_N2 = mkN2 (possN (mkN "missier" "missirijiet")) ;
feather_N = mkNColl "rixa" "rix" "rixiet" ;
fingernail_N = possN (mkNDual "difer" "difrejn" "dwiefer") ;
fire_N = mkN "nar" "nirien" ;
fish_N = mkNColl "ħuta" "ħut" "ħutiet" ;
floor_N = mkN "art" "artijiet" feminine ;
flower_N = mkN "fjura" "fjuri" ;
fog_N = mkNColl "ċpar" ;
foot_N = possN (mkNDual "sieq" "saqajn" "saqajn" feminine) ;
forest_N = mkN "foresta" "foresti" ;
fridge_N = mkN "friġġ" "friġġijiet" ;
friend_N = possN (mkN "ħabib" "ħbieb") ; -- genderedN
fruit_N = mkNColl "frotta" "frott" "frottiet" "frottijiet" ;
garden_N = mkN "ġnien" "ġonna" ;
girl_N = mkN "tifla" "tfal" ;
glove_N = mkN "ingwanta" "ingwanti" ;
gold_N = mkNColl "deheb" "dehbijiet" ;
grammar_N = mkN "grammatika" "grammatiki" ;
grass_N = mkNColl "ħaxixa" "ħaxix" "ħxejjex" ;
guts_N = possN (mkN "musrana" "musraniet" "msaren") ;
hair_N = possN (mkNColl "xagħara" "xagħar" "xagħariet" "xgħur") ;
hand_N = possN (mkNDual "id" "idejn" "idejn" feminine) ;
harbour_N = mkN "port" "portijiet" ;
hat_N = mkN "kappell" "kpiepel" ;
head_N = possN (mkN "ras" "rjus" feminine) ;
heart_N = possN (mkN "qalb" "qlub" feminine) ;
hill_N = mkN "għolja" "għoljiet" ;
horn_N = mkN "ħorn" "ħornijiet" ;
horse_N = mkN "żiemel" "żwiemel" ;
house_N = mkN "dar" "djar" feminine ;
husband_N = mkN "raġel" "rġiel" ;
ice_N = mkN "silġ" "silġiet" ;
industry_N = mkN "industrija" "industriji" ;
iron_N = mkNColl "ħadida" "ħadid" "ħadidiet" "ħdejjed" ;
king_N = mkN "re" "rejjiet" ;
knee_N = possN (mkNDual "rkoppa" "rkopptejn" "rkoppiet") ;
lake_N = mkN "għadira" "għadajjar" ;
lamp_N = mkN "lampa" "lampi" ;
language_N = mkN "lingwa" "lingwi" ;
leaf_N = mkNDual "werqa" "werqtejn" "werqiet" ;
leather_N = mkN "ġilda" "ġildiet" ;
leg_N = (mkNDual "riġel" "riġlejn" "riġlejn") ;
liver_N = mkN "fwied" "ifdwa" ;
louse_N = mkN "qamla" "qamliet" ;
love_N = mkN "mħabba" "mħabbiet" ;
man_N = mkN "raġel" "rġiel" ;
meat_N = mkNColl "laħma" "laħam" "laħmiet" "laħmijiet" ;
milk_N = mkNColl "ħalib" "ħalibijiet" ;
moon_N = mkN "qamar" "oqmra" ;
mother_N2 = mkN2 (possN (mkN "omm" "ommijiet" feminine)) ;
mountain_N = mkN "muntanja" "muntanji" ;
mouth_N = possN (mkN "ħalq" "ħluq") ;
music_N = mkN "mużika" "mużiki" ;
name_N = possN (mkN "isem" "ismijiet") ;
neck_N = possN (mkN "għonq" "għenuq") ;
newspaper_N = mkN "gazzetta" "gazzetti" ;
night_N = mkN "lejl" "ljieli" ;
nose_N = possN (mkN "mnieħer" "mniħrijiet") ;
number_N = mkN "numru" "numrui" ;
oil_N = mkN "żejt" "żjut" ;
paper_N = mkN "karta" "karti" ;
peace_N = mkN "paċi" "paċijiet" feminine ;
pen_N = mkN "pinna" "pinen" ;
person_N = mkNColl "persuna" "persuni" ;
planet_N = mkN "pjaneta" "pjaneti" ;
plastic_N = mkNNoPlural "plastik" ;
policeman_N = mkNNoPlural "pulizija" ;
priest_N = mkN "qassis" "qassisin" ;
queen_N = mkN "reġina" "rġejjen" ;
question_N = mkN "mistoqsija" "mistoqsijiet" ;
radio_N = mkN "radju" "radjijiet" ;
rain_N = mkNNoPlural "xita" ;
reason_N = mkN "raġun" "raġunijiet" ;
religion_N = mkN "reliġjon" "reliġjonijiet" ;
restaurant_N = mkN "restorant" "restoranti" ;
river_N = mkN "xmara" "xmajjar" ;
road_N = mkN "triq" "triqat" "toroq" feminine ;
rock_N = mkNColl "blata" "blat" "blatiet" ;
roof_N = mkN "saqaf" "soqfa" ;
root_N = mkN "qħerq" "qħeruq" ;
rope_N = mkN "ħabel" "ħbula" ;
rubber_N = mkN "gomma" "gomom" ;
rule_N = mkN "regola" "regoli" ;
salt_N = mkN "melħ" "melħiet" ;
sand_N = mkNColl "ramla" "ramel" "ramliet" ;
school_N = mkN "skola" "skejjel" ;
science_N = mkN "xjenza" "xjenzi" ;
sea_N = mkNDual "baħar" "baħrejn" "ibħra" ;
seed_N = mkN "żerriegħa" "żerrigħat" ;
sheep_N = mkNColl "nagħġa" "ngħaġ" "nagħġiet" ;
ship_N = mkN "vapur" "vapuri" ;
shirt_N = mkN "qmis" "qomos" feminine ;
shoe_N = mkN "żarbun" "żraben" ;
shop_N = mkN "ħanut" "ħwienet" ;
silver_N = mkN "fidda" "fided" ;
sister_N = (mkN "oħt" "aħwa" feminine) ;
skin_N = mkN "ġilda" "ġildiet" ;
sky_N = mkN "sema" "smewwiet" masculine ;
smoke_N = mkN "duħħan" "dħaħen" ;
snake_N = mkN "serp" "sriep" ;
snow_N = mkNColl "borra" ;
sock_N = mkN "kalzetta" "kalzetti" ;
song_N = mkN "kanzunetta" "kanzunetti" ;
star_N = mkN "stilla" "stilel" ;
steel_N = mkNNoPlural "azzar" ;
stick_N = mkN "lasta" "lasti" ;
stone_N = mkNColl "ġebla" "ġebel" "ġebliet" "ġbiel" ;
stove_N = mkN "kuker" "kukers" ;
student_N = mkN "student" "studenti" ;
sun_N = mkN "xemx" "xmux" feminine ;
table_N = mkN "mejda" "mwejjed" ;
tail_N = (mkN "denb" "dnieb") ;
teacher_N = mkN "għalliem" "għalliema" ; -- genderedN
television_N = mkN "televixin" "televixins" ;
tongue_N = possN (mkN "lsien" "ilsna") ;
tooth_N = possN (mkN "sinna" "sinniet" "snien") ;
train_N = mkN "ferrovija" "ferroviji" ;
tree_N = mkNColl "siġra" "siġar" "siġriet" ;
university_N = mkN "università" "universitàjiet" ;
village_N = mkN "raħal" "rħula" ;
war_N = mkN "gwerra" "gwerrer" ;
water_N = mkN "ilma" "ilmijiet" masculine ;
wife_N = mkN "mara" "nisa" ;
wind_N = mkN "riħ" "rjieħ" "rjiħat" ;
window_N = mkN "tieqa" "twieqi" ;
wine_N = mkNColl "nbid" "nbejjed" ;
wing_N = mkN "ġewnaħ" "ġwienaħ" ;
woman_N = mkN "mara" "nisa" ;
wood_N = mkN "injam" "injamiet" ;
worm_N = mkNColl "dudu" "dud" "dudiet" ;
year_N = mkNDual "sena" "sentejn" "snin" ;
-- Verbs
lin
add_V3 = mkV3 zied_ZJD_1_10424_V maP ;
alas_Interj = ss "sfortunatament" ;
already_Adv = mkAdv "diġà" ;
answer_V2S = lilV2 (wiegeb_WGB_3_10033_V) ;
ask_V2Q = lilV2 (saqsa_SQSJ_1_7268_V) ;
bad_A = brokenA "ħażin" "hżiena" "agħar" ;
beautiful_A = brokenA "sabiħ" "sbieħ" "isbaħ" ;
become_VA = sar_SJR_1_9797_V ;
beg_V2V = mkV2V ttallab_TLB_5_9893_V ghalP minnP ;
big_A = brokenA "kbir" "kbar" "ikbar" ;
bite_V2 = lilV2 (gidem_GDM_1_8009_V) ;
black_A = mkA "iswed" "sewda" "suwed" ;
blow_V = nefah_NFH_1_8966_V ;
blue_A = sameA "blu" ;
break_V2 = dirV2 (kiser_KSR_1_8636_V) ;
breathe_V = mkV "respira" ; -- ĦA N-NIFS
broad_A = mkA "wiesgħa" "wiesgħa" "wiesgħin" ;
brown_A = sameA "kannella" ;
burn_V = haraq_HRQ_1_8367_V ;
buy_V2 = dirV2 (xtara_XRJ_8_10296_V) ;
clean_A = brokenA "nadif" "nodfa" ;
clever_A = regA "bravu" ;
close_V2 = dirV2 (ghalaq_GHLQ_1_10530_V) ;
cold_A = mkA "kiesaħ" "kiesħa" "kesħin" ;
come_V = gie_GJ'_1_8123_V ;
correct_A = regA "korrett" ;
count_V2 = dirV2 (ghadd_GHDD_1_10460_V) ;
cut_V2 = dirV2 (qata'_QTGH_1_9305_V) ;
die_V = miet_MWT_1_8923_V ;
dig_V = hafer_HFR_1_8233_V ;
dirty_A = regA "maħmuġ" ;
dig_V = haffer_HFR_2_8236_V ;
do_V2 = dirV2 (ghamel_GHML_1_10544_V) ;
drink_V2 = dirV2 (xorob_XRB_1_10231_V) ;
dry_A = regA "niexef" ;
dull_A = sameA "tad-dwejjaq" ;
easy_A2V = dirA2 (sameA "faċli") ;
eat_V2 = dirV2 (kiel_KJL_1_8672_V) ;
empty_A = mkA "vojt" "vojta" "vojta" ;
fall_V = waqa'_WQGH_1_10070_V ;
far_Adv = mkAdv "il-bogħod" ; -- use glue?
fear_V2 = prepV2 (beza'_BZGH_1_7541_V) minnP ;
fear_VS = beza'_BZGH_1_7541_V;
fight_V2 = prepV2 (ggieled_GLD_6_8074_V) maP ;
@@ -251,22 +234,14 @@ concrete LexiconMlt of Lexicon = CatMlt **
fly_V = tar_TJR_1_9972_V ;
forget_V2 = lilV2 (nesa_NSJ_1_9126_V) ;
freeze_V = ffriza_V ;
full_A = regA "mimli" ;
fun_AV = sameA "pjaċevoli" ;
give_V3 = mkV3 ta_GHTJ_1_10767_V lilP ;
go_V = mar_MWR_1_8918_V ;
good_A = mkA "tajjeb" "tajba" "tajbin" ;
green_A = mkA "aħdar" "ħadra" "ħodor" ;
hate_V2 = lilV2 (baghad_BGHD_1_7402_V) ;
hear_V2 = lilV2 (sema'_SMGH_1_9698_V) ;
heavy_A = brokenA "tqil" "tqal" "itqal" ;
hit_V2 = lilV2 (laqat_LQT_1_8772_V) ;
hold_V2 = lilV2 (zamm_ZMM_1_10392_V) ;
hope_VS = xtaq_XWQ_8_10313_V ;
hot_A = mkA "jaħraq" "taħraq" "jaħarqu" ;
hunt_V2 = prepV2 (kaccac_KCC_2_8571_V) ghalP ;
important_A = sameA "importanti" ;
john_PN = mkPN "Ġanni" masculine singular ;
jump_V = qabez_QBZ_1_9182_V ;
kill_V2 = lilV2 (qatel_QTL_1_9312_V) ;
know_V2 = lilV2 (af_''F_1_10774_V) ;
@@ -275,36 +250,21 @@ concrete LexiconMlt of Lexicon = CatMlt **
laugh_V = dahak_DHK_1_7688_V ;
learn_V2 = dirV2 (tghallem_GHLM_5_10527_V) ;
leave_V2 = prepV2 (telaq_TLQ_1_9903_V) minnP ;
left_Ord = mkOrd "xellug" ;
lie_V = mtedd_MDD_8_8816_V ; -- lie down
like_V2 = lilV2 (ghogob_GHGB_1_10485_V) ;
listen_V2 = lilV2 (sema'_SMGH_1_9698_V) ;
live_V = ghex_GHJX_1_10711_V ;
long_A = brokenA "twil" "twal" "itwal" ;
lose_V2 = lilV2 (tilef_TLF_1_9895_V) ;
love_V2 = lilV2 (habb_HBB_1_8174_V) ;
married_A2 = mkA2 (mkA "miżżewweġ" "miżżewġa") lilP ;
narrow_A = mkA "dejjaq" "dejqa" "dojoq" "idjaq" ;
near_A = regA "viċin" ;
new_A = brokenA "ġdid" "ġodda" ;
now_Adv = mkAdv "issa" ;
old_A = brokenA "qadim" "qodma" "eqdem" ;
open_V2 = dirV2 (fetah_FTH_1_7932_V) ;
paint_V2A = dirV2 (pitter_PTR_2_9152_V) ;
paris_PN = mkPN "Pariġi" feminine singular ;
play_V = daqq_DQQ_1_7736_V ;
play_V2 = prepV2 (laghab_LGHB_1_8724_V) maP ;
probable_AS = mkAS (sameA "probabbli") ;
pull_V2 = lilV2 (gibed_GBD_1_8043_V) ;
push_V2 = dirV2 (mbotta_V) ; -- GĦAFAS
put_V2 = lilV2 (qieghed_QGHD_3_9212_V) ;
rain_V0 = xita_XTW_1_10297_V ; -- TAGĦMEL IX-XITA
read_V2 = dirV2 (qara_QRJ_1_9350_V) ;
ready_A = regA "lest" ;
red_A = mkA "aħmar" "ħamra" "ħomor" ;
right_Ord = mkOrd "lemin" ;
rotten_A = mkA "mħassar" "mħassra" "mħassrin" ;
round_A = regA "tond" ;
rub_V2 = dirV2 (ghorok_GHRK_1_10599_V) ;
run_V = gera_GRJ_1_8131_V ;
say_VS = qal_QWL_1_9357_V ;
@@ -314,23 +274,17 @@ concrete LexiconMlt of Lexicon = CatMlt **
sell_V3 = mkV3 biegh_BJGH_1_7565_V lilP ;
send_V3 = mkV3 baghat_BGHT_1_7412_V lilP ;
sew_V = hat_HJT_1_8508_V ;
sharp_A = mkA "jaqta'" "taqta'" "jaqtgħu" ;
short_A = brokenA "qasir" "qosra" "iqsar" ;
sing_V = kanta_KNTJ_1_7016_V ;
sit_V = pogga_PGJ_2_9157_V ;
sleep_V = raqad_RQD_1_9469_V ;
small_A = brokenA "zgħir" "zgħar" "iżgħar" ;
smell_V = xamm_XMM_1_10207_V ;
smooth_A = regA "lixx" ;
speak_V2 = prepV2 (kellem_KLM_2_8597_V) maP ;
spit_V = bezaq_BZQ_1_7549_V ;
split_V2 = lilV2 (qasam_QSM_1_9292_V) ;
squeeze_V2 = dirV2 (ghasar_GHSR_1_10625_V) ;
stab_V2 = lilV2 (mewwes_MWS_2_8921_V) ;
stand_V = qaghad_QGHD_1_9210_V ; ---
stand_V = qaghad_QGHD_1_9210_V ;
stop_V = waqaf_WQF_1_10067_V ;
straight_A = regA "dritt" ;
stupid_A = mkA "iblah" "belha" "boloh" ;
suck_V2 = lilV2 (rada'_RDGH_1_9388_V) ;
swell_V = ntefah_NFH_8_8970_V ;
swim_V = gham_GHWM_1_10750_V ;
@@ -338,33 +292,87 @@ concrete LexiconMlt of Lexicon = CatMlt **
switch8on_V2 = dirV2 (xeghel_XGHL_1_10155_V) ;
talk_V3 = mkV3 kellem_KLM_2_8597_V maP fuqP ; -- PAĊPAĊ, PARLA
teach_V2 = lilV2 (ghallem_GHLM_2_10526_V) ;
thick_A = mkA "oħxon" "ħoxna" "ħoxnin" "eħxen" ;
thin_A = brokenA "rqiq" "rqaq" "rqaq" ;
think_V = haseb_HSB_1_8387_V ;
throw_V2 = dirV2 (waddab_WDB_2_10027_V) ;
tie_V2 = dirV2 (qafel_QFL_1_9206_V) ;
today_Adv = mkAdv "illum" ;
travel_V = vvjagga_V ;
turn_V = dar_DWR_1_7803_V ;
ugly_A = mkA "ikrah" "kerha" "koroh" ;
uncertain_A = regA "inċert" ;
understand_V2 = lilV2 (fehem_FHM_1_10830_V) ;
vomit_V = qala'_QLGH_1_9223_V ;
wait_V2 = lilV2 (stenna_'NJ_10_10781_V) ;
walk_V = mexa_MXJ_1_8926_V ;
warm_A = brokenA "sħun" "sħan" ;
wash_V2 = lilV2 (hasel_HSL_1_8395_V) ;
watch_V2 = dirV2 (ra_R'J_1_9513_V) ;
wet_A = mkA "mxarrab" "mxarrba" "mxarrbin" ;
white_A = mkA "abjad" "bajda" "bojod" ;
wide_A = broad_A ;
win_V2 = dirV2 (rebah_RBH_1_9371_V) ;
wipe_V2 = dirV2 (mesah_MSH_1_8881_V) ;
wonder_VQ = kkuntempla_V ;
write_V2 = dirV2 (kiteb_KTB_1_8641_V) ;
-- Adjectives
lin
bad_A = brokenA "ħażin" "hżiena" "agħar" ;
beautiful_A = brokenA "sabiħ" "sbieħ" "isbaħ" ;
big_A = brokenA "kbir" "kbar" "ikbar" ;
black_A = mkA "iswed" "sewda" "suwed" ;
blue_A = sameA "blu" ;
broad_A = mkA "wiesgħa" "wiesgħa" "wiesgħin" ;
brown_A = sameA "kannella" ;
clean_A = brokenA "nadif" "nodfa" ;
clever_A = regA "bravu" ;
cold_A = mkA "kiesaħ" "kiesħa" "kesħin" ;
correct_A = regA "korrett" ;
dirty_A = regA "maħmuġ" ;
dry_A = regA "niexef" ;
dull_A = sameA "tad-dwejjaq" ;
easy_A2V = dirA2 (sameA "faċli") ;
empty_A = mkA "vojt" "vojta" "vojta" ;
full_A = regA "mimli" ;
fun_AV = sameA "pjaċevoli" ;
good_A = mkA "tajjeb" "tajba" "tajbin" ;
green_A = mkA "aħdar" "ħadra" "ħodor" ;
heavy_A = brokenA "tqil" "tqal" "itqal" ;
hot_A = mkA "jaħraq" "taħraq" "jaħarqu" ;
important_A = sameA "importanti" ;
long_A = brokenA "twil" "twal" "itwal" ;
married_A2 = mkA2 (mkA "miżżewweġ" "miżżewġa") lilP ;
narrow_A = mkA "dejjaq" "dejqa" "dojoq" "idjaq" ;
near_A = regA "viċin" ;
new_A = brokenA "ġdid" "ġodda" ;
old_A = brokenA "qadim" "qodma" "eqdem" ; -- xiħ
probable_AS = mkAS (sameA "probabbli") ;
ready_A = regA "lest" ;
red_A = mkA "aħmar" "ħamra" "ħomor" ;
rotten_A = mkA "mħassar" "mħassra" "mħassrin" ;
round_A = regA "tond" ;
sharp_A = mkA "jaqta'" "taqta'" "jaqtgħu" ;
short_A = brokenA "qasir" "qosra" "iqsar" ;
small_A = brokenA "zgħir" "zgħar" "iżgħar" ;
smooth_A = regA "lixx" ;
straight_A = regA "dritt" ;
stupid_A = mkA "iblah" "belha" "boloh" ;
thick_A = mkA "oħxon" "ħoxna" "ħoxnin" "eħxen" ;
thin_A = brokenA "rqiq" "rqaq" "rqaq" ;
ugly_A = mkA "ikrah" "kerha" "koroh" ;
uncertain_A = regA "inċert" ;
warm_A = brokenA "sħun" "sħan" ;
wet_A = mkA "mxarrab" "mxarrba" "mxarrbin" ;
white_A = mkA "abjad" "bajda" "bojod" ;
wide_A = broad_A ;
yellow_A = mkA "isfar" "safra" "sofor" ;
young_A = small_A ;
-- Others
lin
alas_Interj = ss "sfortunatament" ;
already_Adv = mkAdv "diġà" ;
far_Adv = mkAdv "il-bogħod" ; -- use glue?
john_PN = mkPN "Ġanni" masculine singular ;
left_Ord = mkOrd "xellug" ;
now_Adv = mkAdv "issa" ;
paris_PN = mkPN "Pariġi" feminine singular ;
right_Ord = mkOrd "lemin" ;
today_Adv = mkAdv "illum" ;
oper
fuqP = mkPrep "fuq" ;
ghandP = mkPrep "għand" ;

View File

@@ -606,8 +606,8 @@ resource MorphoMlt = ResMlt ** open Prelude in {
VPerf agr => perf ! agr ;
VImpf agr => impf ! agr ;
VImp num => imp ! num ;
VActivePart _ => "" ; --- TODO
VPassivePart _ => "" --- TODO
VPresPart _ => NONEXIST ;
VPastPart _ => NONEXIST
} ;
conjFormII_quad : VerbInfo -> (VForm => Str) = \i ->
@@ -693,8 +693,8 @@ resource MorphoMlt = ResMlt ** open Prelude in {
VPerf agr => perf ! agr ;
VImpf agr => impf ! agr ;
VImp num => imp ! num ;
VActivePart _ => "" ; --- TODO
VPassivePart _ => "" --- TODO
VPresPart _ => NONEXIST ;
VPastPart _ => NONEXIST
} ;
{- ~~~ Form III verbs ~~~ -}
@@ -735,8 +735,8 @@ resource MorphoMlt = ResMlt ** open Prelude in {
VPerf agr => perf ! agr ;
VImpf agr => impf ! agr ;
VImp num => imp ! num ;
VActivePart _ => "" ; --- TODO
VPassivePart _ => "" --- TODO
VPresPart _ => NONEXIST ;
VPastPart _ => NONEXIST
} ;
{- ~~~ Form VII and VIII verbs ~~~ -}
@@ -806,8 +806,8 @@ resource MorphoMlt = ResMlt ** open Prelude in {
VPerf agr => perf ! agr ;
VImpf agr => impf ! agr ;
VImp num => imp ! num ;
VActivePart _ => "" ; --- TODO
VPassivePart _ => "" --- TODO
VPresPart _ => NONEXIST ;
VPastPart _ => NONEXIST
} ;
{- ~~~ Form IX verbs ~~~ -}
@@ -842,8 +842,8 @@ resource MorphoMlt = ResMlt ** open Prelude in {
VPerf agr => perf ! agr ;
VImpf agr => impf ! agr ;
VImp num => imp ! num ;
VActivePart _ => "" ; --- TODO
VPassivePart _ => "" --- TODO
VPresPart _ => NONEXIST ;
VPastPart _ => NONEXIST
} ;
{- ~~~ Form X verbs ~~~ -}
@@ -884,7 +884,7 @@ resource MorphoMlt = ResMlt ** open Prelude in {
_ + "ie" + #Consonant =>
let
strieh : Str = mamma ;
strih : Str = ie2_ i.patt2.V1 strieh ;
strih : Str = ie2i strieh ;
strihaj : Str = strih + "aj"
in
table {
@@ -936,8 +936,8 @@ resource MorphoMlt = ResMlt ** open Prelude in {
VPerf agr => perf ! agr ;
VImpf agr => impf ! agr ;
VImp num => imp ! num ;
VActivePart _ => "" ; --- TODO
VPassivePart _ => "" --- TODO
VPresPart _ => NONEXIST ;
VPastPart _ => NONEXIST
} ;
}

View File

@@ -9,32 +9,29 @@ concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude in {
flags
optimize=noexpand ;
coding=utf8 ;
oper
-- Used in DetCN below
chooseNounNumForm : Det -> CN -> Str = \det,n ->
let
det' = det.s ! n.g ;
sing = n.s ! Singulative ;
coll = if_then_Str n.hasColl
(n.s ! Collective) -- BAQAR
(n.s ! Plural) -- SNIEN
(n.s ! Collective) -- baqar
(n.s ! Plural) -- snien
;
dual = n.s ! Dual ;
plur = n.s ! Plural ;
-- pind = n.s ! Plural Indeterminate ;
in case det.n of {
NumX Sg => det' ++ sing ; -- BAQRA
NumX Pl => det' ++ coll ; -- BAQAR (coll) / ħafna SNIEN (pdet)
Num0 => det' ++ sing ; -- L-EBDA BAQRA
Num1 => det' ++ sing ; -- BAQRA
Num2 => if_then_Str n.hasDual
dual -- BAQARTEJN
(det' ++ plur) -- ŻEWĠ IRĠIEL
;
Num3_10 => det' ++ coll ; -- TLETT BAQAR
Num11_19 => det' ++ sing ; -- ĦDAX-IL BAQRA
Num20_99 => det' ++ sing -- GĦOXRIN BAQRA
NumX Sg => sing ; -- baqra
NumX Pl => coll ; -- baqar (coll) / ħafna snien (pdet)
Num0 => sing ; -- l-ebda baqra
Num1 => sing ; -- baqra
Num2 => if_then_Str n.hasDual dual plur ; -- sentejn / baqar
Num3_10 => coll ; -- tlett baqar
Num11_19 => sing ; -- ħdax-il baqra
Num20_99 => sing -- għoxrin baqra
} ;
lin
@@ -44,34 +41,40 @@ concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude in {
-- To stop complaining about lock fields
det = lin Det det ;
cn = lin CN cn ;
noun = chooseNounNumForm det cn ;
in {
s = table {
NPCPrep => cn.s ! numform2nounnum det.n ;
_ => case <det.isPron, cn.takesPron> of {
<True,True> => glue (cn.s ! numform2nounnum det.n) det.clitic ;
<True,_> => artDef ++ cn.s ! numform2nounnum det.n ++ det.s ! cn.g ;
_ => chooseNounNumForm det cn
}
} ;
a = case (numform2nounnum det.n) of {
Singulative => mkAgr Sg P3 cn.g ; --- collective?
_ => mkAgr Pl P3 cn.g
s = table {
NPCPrep => noun ;
_ => case <det.isPron, cn.takesPron> of {
<True,True> => glue noun det.clitic ;
<True,_> => artDef ++ noun ++ det.s ! cn.g ;
_ => case <det.n,cn.hasDual> of {
<Num2, True> => noun ; -- sentejn
_ => det.s ! cn.g ++ noun -- tlett baqar
}
}
} ;
a = case (numform2nounnum det.n) of {
Singulative => mkAgr Sg P3 cn.g ; --- collective?
_ => mkAgr Pl P3 cn.g
} ;
isPron = False ;
isDefn = det.isDefn ;
} ;
isPron = False ;
isDefn = det.isDefn ;
} ;
-- Quant -> Num -> Det
DetQuant quant num = {
s = \\gen =>
let gennum = case num.n of { NumX Sg => GSg gen ; _ => GPl }
in case quant.isDemo of {
True => quant.s ! gennum ++ artDef ++ num.s ! NumAdj ;
False => quant.s ! gennum ++ num.s ! NumAdj
in case <quant.isDemo,num.n> of {
<True,_> => quant.s ! gennum ++ artDef ++ num.s ! NumAdj ;
-- <True ,NumX Sg> => ...
<False,NumX Sg> => quant.s ! gennum ;
<False,_> => quant.s ! gennum ++ num.s ! NumAdj
} ;
n = num.n ;
clitic = quant.clitic ;
hasNum = num.hasCard ;
hasNum = True ; -- num.hasCard ?
isPron = quant.isPron ;
isDefn = quant.isDefn ;
} ;
@@ -94,10 +97,6 @@ concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude in {
-- Det -> NP
DetNP det = {
-- s = case det.hasNum of {
-- True => \\_ => det.s ! Masc ;
-- _ => \\c => det.s ! Masc
-- } ;
s = \\c => det.s ! Masc ;
a = agrP3 (numform2num det.n) Masc ;
isPron = False ;
@@ -153,7 +152,10 @@ concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude in {
PredetNP pred np = overwriteNPs np (\\c => pred.s ++ np.s ! c) ;
-- NP -> V2 -> NP
PPartNP np v2 = overwriteNPs np (\\c => np.s ! c ++ (v2.s ! VActivePart (toGenNum np.a)).s1) ;
PPartNP np v2 = case v2.hasPastPart of {
True => overwriteNPs np (\\c => np.s ! c ++ (v2.s ! VPastPart (toGenNum np.a)).s1) ; -- raġel rieqed
False => overwriteNPs np (\\c => np.s ! c ++ (v2.s ! VImpf (toVAgr np.a)).s1) -- mara tisma'
} ;
-- NP -> RS -> NP
RelNP np rs = overwriteNPs np (\\c => np.s ! c ++ "," ++ rs.s ! np.a ) ;
@@ -245,19 +247,18 @@ concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude in {
SentCN cn sc = overwriteCNs cn (\\num => cn.s ! num ++ sc.s) ;
-- CN -> NP -> CN
ApposCN cn np = overwriteCNs cn (\\num => cn.s ! num ++ np.s ! NPNom) ;
PossNP cn np = overwriteCNs cn (\\num => cn.s ! num ++ prepNP prep_ta np) ;
PartNP cn np = overwriteCNs cn (\\num => cn.s ! num ++ prepNP prep_ta np) ;
ApposCN cn np = overwriteCNs cn (\\num => cn.s ! num ++ np.s ! NPNom) ; -- known to be overgenerating
PossNP cn np = overwriteCNs cn (\\num => cn.s ! num ++ prepNP prep_ta np) ;
PartNP cn np = overwriteCNs cn (\\num => cn.s ! num ++ prepNP prep_ta np) ;
-- Det -> NP -> NP
CountNP det np = {
s = \\c => det.s ! np.a.g ++ np.s ! c ;
a = agrP3 (numform2num det.n) np.a.g ;
isPron = False ;
isDefn = np.isDefn ;
} ;
--- LEAKS ?
-- CountNP det np = {
-- s = \\c => det.s ! np.a.g ++ np.s ! c ;
-- a = agrP3 (numform2num det.n) np.a.g ;
-- isPron = False ;
-- isDefn = np.isDefn ;
-- } ;
oper
prep_ta = lin Prep {

View File

@@ -82,7 +82,7 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt
_ => adjectival
} ;
thousand = case num of {
Num1 => "wieħed" ;
Num1 => "elf" ; --- was: wieħed
Num2 => "elfejn" ;
_ => case adjectival of {
_ + "'" => (init adjectival) + "t" ; -- SEBA' -> SEBAT
@@ -94,11 +94,9 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt
s = table {
Unit => table {
NCard => table {
NumNom => unit ; -- TNEJN
NumAdj => case num of {
Num1 => "" ; -- [] baqra
_ => adjectival -- ŻEWĠ baqar
}
NumNom => unit ; -- TNEJN
-- NumAdj => case num of { Num1 => "" ; _ => adjectival } -- ŻEWĠ baqar
NumAdj => adjectival -- ŻEWĠ baqar
} ;
NOrd => \\numcase => ordunit -- TIENI
} ;
@@ -139,13 +137,15 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt
}
}
} ;
-- thou = thousand ;
thou = { s = thousand ; treatAs = Unit } ;
n = num ;
n = case num of {
Num1 => NumX Sg ;
_ => num
} ;
} ;
lin
-- Unit Ord.Unit Adjectival Teen Ten Number
-- Unit Ord.Unit Adjectival Teen Ten Number
n2 = mkNum "tnejn" "tieni" "żewġ" "tnax" "għoxrin" Num2 ;
n3 = mkNum "tlieta" "tielet" "tlett" "tlettax" "tletin" Num3_10 ; --- TODO tlett / tliet ?
n4 = mkNum "erbgħa" "raba'" "erba'" "erbatax" "erbgħin" Num3_10 ;
@@ -209,14 +209,12 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt
num x = x ;
-- Sub10 ; 1
-- Unit Ord.Unit Adjectival Teen Ten Number
pot01 = mkNum "wieħed" "ewwel" "wieħed" [] [] Num1 ;
pot01 = mkNum "wieħed" "ewwel" "wieħed" "ħdax" "għaxra" Num1 ;
-- Digit -> Sub10 ; d * 1
pot0 d = d ** {n = case d.n of { Num2 => Num2 ; _ => Num3_10 }} ;
-- Sub100 ; 10, 11
-- Cardinal Ordinal Adjectival Thousand Form
pot110 = mkForm2 "għaxra" "għaxar" "għaxar" "għaxart" Unit Num3_10 ;
pot111 = mkForm2 "ħdax" "ħdax" (glue "ħdax" "-il") (glue "ħdax" "-il") Teen Num11_19 ;
@@ -235,7 +233,7 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt
pot1 d =
let
numform : NumForm = case d.n of {
Num1 => Num3_10 ;
NumX Sg => Num3_10 ;
_ => Num20_99
}
in mkForm2 (d.s ! Ten) Ten numform ;
@@ -245,7 +243,7 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt
let
unit = (n.s ! Unit ! NCard ! NumNom) ;
numform : NumForm = case d.n of {
Num1 => Num11_19 ;
NumX Sg => Num11_19 ;
_ => Num20_99
}
in
@@ -280,17 +278,17 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt
hund : Str = m.s ! Hund ! NCard ! NumNom ;
in {
s = \\cardord,numcase => case n.n of {
Num1 => hund ++ "u" ;
NumX Sg => hund ++ "u" ;
_ => hund ++ "u" ++ n.s ! NCard ! numcase
} ;
thou = {
s = hund ++ "u" ++ n.thou.s ;
treatAs = case n.n of {
Num1 => Ten ; -- specific case for mija u wiehed elf
NumX Sg => Ten ; -- specific case for mija u wiehed elf
_ => n.f -- So that "106,000" is treated as "6,000"
} ;
} ;
n = case n.n of { Num2 => Num3_10 ; _ => n.n } ;
n = case n.n of { NumX Sg => Num1 ; Num2 => Num3_10 ; _ => n.n } ;
f = Hund ;
} ;
@@ -301,7 +299,7 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt
pot3 m = {
s =
case <m.n, m.thou.treatAs> of {
<Num1,_> => numTable "elf" ; -- 1 * 1000
<NumX Sg,_> => numTable "elf" ; -- 1 * 1000
<Num2,_> => numTable "elfejn" ; -- 2 * 1000
<_,Unit> => numTable m.thou.s "elef" ; -- 3-10 * 1000
<_,_> => numTable m.thou.s "elf" -- 11+ * 1000
@@ -324,7 +322,7 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt
}
in
case <m.n, m.thou.treatAs> of {
<Num1,_> => numTable "elf" ukemm ;
<NumX Sg,_> => numTable "elf" ukemm ;
<Num2,_> => numTable "elfejn" ukemm ;
<_,Unit> => numTable (m.thou.s ++ "elef") ukemm ;
<_,_> => numTable (m.thou.s ++ "elf") ukemm
@@ -333,7 +331,7 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt
s = m.thou.s ;
treatAs = m.f ;
} ;
n = case n.n of { Num2 => Num3_10 ; _ => n.n } ;
n = case n.n of { NumX Sg => Num1 ; Num2 => Num3_10 ; _ => n.n } ;
f = Hund ; -- NOT IMPORTANT
} ;
@@ -377,7 +375,7 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt
-- Helper for making a Dig object.
mkDig : Str -> NumForm -> Dig = \digit,num -> lin Dig {
s = \\numcase => digit ;
n = num
n = case num of {Num1 => NumX Sg ; _ => num } ;
} ;
-- For correct comma placement in Digits
@@ -414,13 +412,13 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt
let
digits = d.s ! NumNom ++ (commaIf i.tail) ++ i.s ! NumNom;
numform = case <d.n,i.n> of {
<Num0,num> => num ; -- 0 x
<Num1,Num0> => Num3_10 ; -- 1 0
<Num1,_> => Num11_19 ; -- 1 1
<Num2,_> => Num20_99 ; -- 2 x
<Num3_10,_> => Num20_99 ; -- [3-9] x
<Num20_99,_> => Num20_99 ;
<_,_> => Num20_99 --- how to handle overwrap? see i:Int in lincat Dig above
<Num0,num> => num ; -- 0 x
<NumX Sg,Num0> => Num3_10 ; -- 1 0
<NumX Sg,_> => Num11_19 ; -- 1 x
<Num2,_> => Num20_99 ; -- 2 x
<Num3_10,_> => Num20_99 ; -- [3-9] x
<Num20_99,_> => Num20_99 ;
<_,_> => Num20_99 --- how to handle overwrap? see i:Int in lincat Dig above
} ;
in {
s = table {

View File

@@ -225,7 +225,6 @@ resource ParadigmsMlt = open
-- Mark a noun as taking possessive enclitic pronouns
possN : N -> N ;
-- possN = \n -> n ** { takesPron = True } ;
possN = \n -> lin N {
s = n.s ;
g = n.g ;
@@ -486,13 +485,15 @@ resource ParadigmsMlt = open
VImpf (AgP3Pl) => impfP3Pl ;
VImp (Pl) => impSg ;
VImp (Sg) => impPl ;
VActivePart _ => "" ; --- TODO
VPassivePart _ => "" --- TODO
VPresPart _ => NONEXIST ;
VPastPart _ => NONEXIST
} ;
info : VerbInfo = mkVerbInfo class form root patt impSg ;
in lin V {
s = stemVariantsTbl tbl ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
} ;
} ; --end of mkV overload
@@ -540,6 +541,8 @@ resource ParadigmsMlt = open
in lin V {
s = stemVariantsTbl (conjFormII newinfo) ;
i = newinfo ;
hasPresPart = False ;
hasPastPart = False ;
} ;
-- Make a Quadri-Consonantal Form II verb
@@ -553,6 +556,8 @@ resource ParadigmsMlt = open
in lin V {
s = stemVariantsTbl (conjFormII_quad newinfo) ;
i = newinfo ;
hasPresPart = False ;
hasPastPart = False ;
} ;
derivedV_QuadII : Str -> Str -> Root -> V = \mammaII, imp, root ->
let
@@ -562,6 +567,8 @@ resource ParadigmsMlt = open
in lin V {
s = stemVariantsTbl (conjFormII_quad newinfo) ;
i = newinfo ;
hasPresPart = False ;
hasPastPart = False ;
} ;
} ;
@@ -569,13 +576,14 @@ resource ParadigmsMlt = open
-- e.g.: derivedV_III "qiegħed" (mkRoot "q-għ-d")
derivedV_III : Str -> Root -> V = \mammaIII, root ->
let
vowels : Pattern = extractPattern mammaIII ;
vowels2 : Pattern = vowelChangesIE root vowels ;
patt : Pattern = extractPattern mammaIII ;
class : VClass = classifyRoot root ;
info : VerbInfo = mkVerbInfo class FormIII root vowels vowels2 mammaIII ; --- assumption: mamma III is also imperative
info : VerbInfo = mkVerbInfo class FormIII root patt mammaIII ; --- assumption: mamma III is also imperative
in lin V {
s = stemVariantsTbl (conjFormIII info) ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
} ;
-- No point having a paradigm for Form IV
@@ -600,12 +608,14 @@ resource ParadigmsMlt = open
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)) ;
VActivePart _ => "" ; --- TODO
VPassivePart _ => "" --- TODO
VPresPart _ => NONEXIST ;
VPastPart _ => NONEXIST
} ;
in lin V {
s = stemVariantsTbl (tbl) ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
} ;
-- Make a Form VI verb
@@ -627,12 +637,14 @@ resource ParadigmsMlt = open
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)) ;
VActivePart _ => "" ; --- TODO
VPassivePart _ => "" --- TODO
VPresPart _ => NONEXIST ;
VPastPart _ => NONEXIST
} ;
in lin V {
s = stemVariantsTbl (tbl) ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
} ;
-- Make a Form VII verb
@@ -653,6 +665,8 @@ resource ParadigmsMlt = open
in lin V {
s = stemVariantsTbl (conjFormVII info c1) ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
} ;
-- Make a Form VIII verb
@@ -667,6 +681,8 @@ resource ParadigmsMlt = open
in lin V {
s = stemVariantsTbl (conjFormVII info c1) ; -- note we use conjFormVII !
i = info ;
hasPresPart = False ;
hasPastPart = False ;
} ;
-- Make a Form IX verb
@@ -682,6 +698,8 @@ resource ParadigmsMlt = open
in lin V {
s = stemVariantsTbl (conjFormIX info) ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
} ;
_ => Predef.error("I don't know how to make a Form IX verb out of" ++ mammaIX)
} ;
@@ -692,11 +710,12 @@ resource ParadigmsMlt = open
let
class : VClass = classifyRoot root ;
patt : Pattern = extractPattern mammaX ;
patt2 : Pattern = vowelChangesIE root patt ;
info : VerbInfo = mkVerbInfo class FormX root patt patt2 mammaX ;
info : VerbInfo = mkVerbInfo class FormX root patt mammaX ;
in lin V {
s = stemVariantsTbl (conjFormX info) ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
} ;
{- ~~~ Strong Verb ~~~ -}
@@ -727,13 +746,15 @@ resource ParadigmsMlt = open
VPerf agr => ( conjStrongPerf root patt ) ! agr ;
VImpf agr => ( conjStrongImpf (imp ! Sg) (imp ! Pl) ) ! agr ;
VImp n => imp ! n ;
VActivePart _ => "" ; --- TODO
VPassivePart _ => "" --- TODO
VPresPart _ => NONEXIST ;
VPastPart _ => NONEXIST
} ;
info : VerbInfo = mkVerbInfo (Strong Regular) (FormI) root patt (imp ! Sg) ;
in lin V {
s = stemVariantsTbl tbl ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
} ;
@@ -769,13 +790,15 @@ resource ParadigmsMlt = open
VPerf agr => ( conjLiquidMedialPerf root patt ) ! agr ;
VImpf agr => ( conjLiquidMedialImpf (imp ! Sg) (imp ! Pl) ) ! agr ;
VImp n => imp ! n ;
VActivePart _ => "" ; --- TODO
VPassivePart _ => "" --- TODO
VPresPart _ => NONEXIST ;
VPastPart _ => NONEXIST
} ;
info : VerbInfo = mkVerbInfo (Strong LiquidMedial) (FormI) root patt (imp ! Sg) ;
in lin V {
s = stemVariantsTbl tbl ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
} ;
{- ~~~ Geminated Verb ~~~ -}
@@ -806,13 +829,15 @@ resource ParadigmsMlt = open
VPerf agr => ( conjGeminatedPerf root patt ) ! agr ;
VImpf agr => ( conjGeminatedImpf (imp ! Sg) (imp ! Pl) ) ! agr ;
VImp n => imp ! n ;
VActivePart _ => "" ; --- TODO
VPassivePart _ => "" --- TODO
VPresPart _ => NONEXIST ;
VPastPart _ => NONEXIST
} ;
info : VerbInfo = mkVerbInfo (Strong Geminated) (FormI) root patt (imp ! Sg) ;
in lin V {
s = stemVariantsTbl tbl ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
} ;
{- ~~~ Assimilative Verb ~~~ -}
@@ -843,17 +868,15 @@ resource ParadigmsMlt = open
VPerf agr => ( conjAssimilativePerf root patt ) ! agr ;
VImpf agr => ( conjAssimilativeImpf (imp ! Sg) (imp ! Pl) ) ! agr ;
VImp n => imp ! n ;
VActivePart _ => "" ; --- TODO
VPassivePart _ => "" --- TODO
VPresPart _ => NONEXIST ;
VPastPart _ => NONEXIST
} ;
patt2 : Pattern = case (imp!Sg) of {
"ie"+_ => mkPattern "i" patt.V2 ; -- (WAQAF) IEQAF > TIQAFLI
_ => patt -- (WASAL) ASAL > TASALLI
} ;
info : VerbInfo = mkVerbInfo (Weak Assimilative) (FormI) root patt patt2 (imp ! Sg) ;
info : VerbInfo = mkVerbInfo (Weak Assimilative) (FormI) root patt (imp ! Sg) ;
in lin V {
s = stemVariantsTbl tbl ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
} ;
{- ~~~ Hollow Verb ~~~ -}
@@ -884,17 +907,15 @@ resource ParadigmsMlt = open
VPerf agr => ( conjHollowPerf root patt ) ! agr ;
VImpf agr => ( conjHollowImpf (imp ! Sg) (imp ! Pl) ) ! agr ;
VImp n => imp ! n ;
VActivePart _ => "" ; --- TODO
VPassivePart _ => "" --- TODO
VPresPart _ => NONEXIST ;
VPastPart _ => NONEXIST
} ;
patt2 : Pattern = case patt.V1 of {
"ie" => mkPattern "i" patt.V2 ; -- (ŻIED) ŻID > ŻIDLI
_ => patt -- (MAR) MUR > MURLI
} ;
info : VerbInfo = mkVerbInfo (Weak Hollow) (FormI) root patt patt2 (imp ! Sg) ;
info : VerbInfo = mkVerbInfo (Weak Hollow) (FormI) root patt (imp ! Sg) ;
in lin V {
s = stemVariantsTbl tbl ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
} ;
{- ~~~ Lacking Verb ~~~ -}
@@ -929,13 +950,15 @@ resource ParadigmsMlt = open
VPerf agr => ( conjLackingPerf root patt ) ! agr ;
VImpf agr => ( conjLackingImpf (imp ! Sg) (imp ! Pl) ) ! agr ;
VImp n => imp ! n ;
VActivePart _ => "" ; --- TODO
VPassivePart _ => "" --- TODO
VPresPart _ => NONEXIST ;
VPastPart _ => NONEXIST
} ;
info : VerbInfo = mkVerbInfo (Weak Lacking) (FormI) root patt (imp ! Sg) ;
in lin V {
s = stemVariantsTbl tbl ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
} ;
{- ~~~ Defective Verb ~~~ -}
@@ -966,13 +989,15 @@ resource ParadigmsMlt = open
VPerf agr => ( conjDefectivePerf root patt ) ! agr ;
VImpf agr => ( conjDefectiveImpf (imp ! Sg) (imp ! Pl) ) ! agr ;
VImp n => imp ! n ;
VActivePart _ => "" ; --- TODO
VPassivePart _ => "" --- TODO
VPresPart _ => NONEXIST ;
VPastPart _ => NONEXIST
} ;
info : VerbInfo = mkVerbInfo (Weak Defective) (FormI) root patt (imp ! Sg) ;
in lin V {
s = stemVariantsTbl tbl ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
} ;
{- ~~~ Quadriliteral Verb (Strong) ~~~ -}
@@ -1003,13 +1028,15 @@ resource ParadigmsMlt = open
VPerf agr => ( conjQuadPerf root patt ) ! agr ;
VImpf agr => ( conjQuadImpf (imp ! Sg) (imp ! Pl) ) ! agr ;
VImp n => imp ! n ;
VActivePart _ => "" ; --- TODO
VPassivePart _ => "" --- TODO
VPresPart _ => NONEXIST ;
VPastPart _ => NONEXIST
} ;
info : VerbInfo = mkVerbInfo (Quad QStrong) (FormI) root patt (imp ! Sg) ;
in lin V {
s = stemVariantsTbl tbl ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
} ;
{- ~~~ Quadriliteral Verb (Weak Final) ~~~ -}
@@ -1043,13 +1070,15 @@ resource ParadigmsMlt = open
VPerf agr => ( conjQuadWeakPerf root patt (imp ! Sg) ) ! agr ;
VImpf agr => ( conjQuadWeakImpf (imp ! Sg) (imp ! Pl) ) ! agr ;
VImp n => imp ! n ;
VActivePart _ => "" ; --- TODO
VPassivePart _ => "" --- TODO
VPresPart _ => NONEXIST ;
VPastPart _ => NONEXIST
} ;
info : VerbInfo = mkVerbInfo (Quad QWeak) (FormI) root patt (imp ! Sg) ;
in lin V {
s = stemVariantsTbl tbl ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
} ;
{- ~~~ Irregular verbs ~~~ -}
@@ -1068,17 +1097,110 @@ resource ParadigmsMlt = open
VPerf agr => ( conjLoanPerf mamma ) ! agr ;
VImpf agr => ( conjLoanImpf (imp ! Sg) (imp ! Pl) ) ! agr ;
VImp n => imp ! n ;
VActivePart _ => "" ; --- TODO
VPassivePart _ => "" --- TODO
VPresPart _ => NONEXIST ;
VPastPart _ => NONEXIST
} ;
info : VerbInfo = mkVerbInfo (Loan) (FormI) (imp ! Sg) ;
in lin V {
s = stemVariantsTbl tbl ;
i = info ;
hasPresPart = False ;
hasPastPart = False ;
} ;
{- Verb --------------------------------------------------------------- -}
-- Add the present participle to a verb
presPartV = overload {
presPartV : Str -> V -> V = \hiereg,v ->
let
m : Str = hiereg ;
f : Str = case hiereg of {
miex+"i" => miex+"ja" ;
ge+"j" => ge+"jja" ;
sej+"jer" => sej+"ra" ;
r+"ie"+q@#Cns+e@#Vwl+d@#Cns => r+"ie"+q+d+"a" ;
_ => hiereg+"a"
} ;
p : Str = case hiereg of {
miex+"i" => miex+"jin" ;
ge+"j" => ge+"jjin" ;
sej+"jer" => sej+"rin" ;
r+"ie"+q@#Cns+e@#Vwl+d@#Cns => r+"ie"+q+d+"in" ;
_ => 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 ;
} ;
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
} ;
i = v.i ;
hasPresPart = True ;
hasPastPart = v.hasPastPart ;
} ;
} ;
-- Add the past participle to a verb
pastPartV = overload {
pastPartV : Str -> V -> V = \miktub,v ->
let
m : Str = miktub ;
f : Str = case miktub of {
mixtr+"i" => mixtr+"ija" ;
mdaww+"ar" => mdaww+"ra" ;
mwaqq+"a'" => mwaqq+"għa" ;
_ => miktub+"a"
} ;
p : Str = case miktub of {
mixtr+"i" => mixtr+"ijin" ;
mdaww+"ar" => mdaww+"rin" ;
mwaqq+"a'" => mwaqq+"għin" ;
ffriz+"at" => ffriz+"ati" ;
_ => 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 ;
} ;
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
} ;
i = v.i ;
hasPresPart = v.hasPresPart ;
hasPastPart = True ;
} ;
} ;
hasCompl : Prep -> Compl = \p -> p ** { isPresent = True } ;
noCompl : Compl = noPrep ** { isPresent = False } where { noPrep : Prep = mkPrep [] };

View File

@@ -97,12 +97,6 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
agrP3 : Number -> Gender -> Agr = \n,g -> mkAgr n P3 g;
VPForm2VAgr : VPForm -> VAgr = \vpform ->
case vpform of {
VPIndicat _ vagr => vagr ;
VPImperat n => AgP2 n
};
sing : VAgr -> Bool = \agr ->
case toAgr agr of {
{n=Sg; p=_; g=_} => True ;
@@ -158,25 +152,14 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
s : Tense => Anteriority => Polarity => Agr => Str
} ;
-- Clause
mkClause : Str -> Agr -> VerbPhrase -> Clause = \subj,agr,vp -> {
s = \\t,a,p,o =>
s = \\tense,ant,pol,ord =>
let
-- verb = vp.s ! t ! a ! p ! o ! agr ;
-- vform = case <t,agr> of {
-- _ => VPres
-- } ;
vpform : VPForm = VPIndicat t (toVAgr agr) ;
verb : Str = joinVP vp vpform a p ;
compl : Str = vp.s2 ! agr ;
in
case o of {
-- ODir => subj ++ verb.aux ++ verb.adv ++ vp.ad ++ verb.fin ++ verb.inf ++ vp.p ++ compl ;
-- OQuest => verb.aux ++ subj ++ verb.adv ++ vp.ad ++ verb.fin ++ verb.inf ++ vp.p ++ compl
-- ABSOLUTELY NOT CORRECT: in progress
ODir => subj ++ verb ++ compl ;
OQuest => subj ++ verb ++ compl
verb : Str = joinVP vp tense ant pol agr ;
obj : Str = vp.s2 ! agr ;
in case ord of {
ODir => subj ++ verb ++ obj ; -- Ġanni jiekol ħut
OQuest => verb ++ obj ++ subj -- jiekol ħut Ġanni ?
}
} ;
@@ -206,11 +189,12 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
;
-- Indicate how a corresponding object should be treated
--- Overlap between Num Sg and Num1, but leaving as is for now
-- Num Sg is exactly 1
-- Num1 is anything "treated as" 1 (eg 101)
NumForm =
NumX Number -- Sg | Pl
| Num0 -- 0 (l-edba SIEGĦA)
| Num1 -- 1, 101... (SIEGĦA, mija u SIEGĦA)
| Num1 -- 101... (mija u SIEGĦA)
| Num2 -- 2 (SAGĦTEJN)
| Num3_10 -- 3..10, 102, 103... (tlett SIEGĦAT, għaxar SIEGĦAT, mija u żewġ SIEGĦAT, mija u tlett SIEGĦAT)
| Num11_19 -- 11..19, 111... (ħdax-il SIEGĦA, mija u dsatax-il SIEGĦA)
@@ -261,7 +245,6 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
{- Determiners etc. ----------------------------------------------------- -}
oper
-- [AZ]
Determiner : Type = {
s : Gender => Str ;
n : NumForm ;
@@ -270,16 +253,7 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
isPron : Bool ; -- is a pronoun
isDefn : Bool ; -- is definite
} ;
-- Determiner = {
-- s : NPCase => Gender => NumCase => Str ;
-- s2 : NPCase => Gender => Str ; -- tieghi (possessive pronoun)
-- -- size : Num_Size ; -- One (agreement feature for noun)
-- isNum : Bool ; -- True (a numeral is present)
-- isDemo : Bool ; -- True (is a demostrative)
-- isDefn : Bool ;-- True (is definite)
-- } ;
-- [AZ]
Quantifier : Type = {
s : GenNum => Str ;
clitic : Str ;
@@ -287,12 +261,6 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
isDemo : Bool ; -- Demonstrative (this/that/those/these)
isDefn : Bool ; -- is definite
} ;
-- Quantifier = {
-- s : NPCase => Gender => NumForm => Str ;
-- s2 : NPCase => Gender => NumForm => Str ;
-- isDemo : Bool ; -- Demonstrative (this/that/those/these)
-- isDefn : Bool ;
-- } ;
{- Noun ----------------------------------------------------------------- -}
@@ -371,11 +339,6 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
} ;
Compl : Type = Preposition ** {isPresent : Bool} ;
-- Compl : Type = {
-- s : Str ;
-- -- c : NPForm ;
-- -- isPre : Bool
-- } ;
noCompl : Compl = {
s = \\_ => [] ;
@@ -425,18 +388,15 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
{- Verb ----------------------------------------------------------------- -}
oper
-- Generic variants (used for verb stems)
Variants3 : Type = {s1, s2, s3 : Str} ;
-- Stem variants
VerbStems : Type = {s1, s2, s3 : Str} ;
mkVariants3 : Variants3 = overload {
mkVariants3 : (s1 : Str) -> Variants3 = \a -> { s1 = a ; s2 = a ; s3 = a } ;
mkVariants3 : (s1, s2, s3 : Str) -> Variants3 = \a,b,c -> { s1 = a ; s2 = b ; s3 = c } ;
mkVerbStems : VerbStems = overload {
mkVerbStems : (s1 : Str) -> VerbStems = \a -> { s1 = a ; s2 = a ; s3 = a } ;
mkVerbStems : (s1, s2 : Str) -> VerbStems = \a,b -> { s1 = a ; s2 = b ; s3 = b } ;
mkVerbStems : (s1, s2, s3 : Str) -> VerbStems = \a,b,c -> { s1 = a ; s2 = b ; s3 = c } ;
} ;
mkMaybeVariants3 : Str -> Maybe Variants3 = \s -> Just Variants3 (mkVariants3 s) ;
NullVariants3 : Maybe Variants3 = Nothing Variants3 { s1 = [] ; s2 = [] ; s3 = [] } ;
NullAgr : Maybe Agr = Nothing Agr (agrP3 Sg Masc) ;
-- Direct object clitic
@@ -484,7 +444,7 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
-- Produce stem variants as needed (only call on compile-time strings!)
-- Refer to doc/stems.org
stemVariantsPerf : Str -> Variants3 = \s ->
stemVariantsPerf : Str -> VerbStems = \s ->
let
ftahna : Str = s ;
ftahnie : Str = case s of {
@@ -501,7 +461,7 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
s1 = ftahna ; s2 = ftahnie ; s3 = ftahni ;
} ;
stemVariantsImpf : Str -> Variants3 = \s ->
stemVariantsImpf : Str -> VerbStems = \s ->
let
jiftah : Str = s ;
jifth : Str = case s of {
@@ -513,16 +473,18 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
} ;
-- Convert old verb form table into one with stem variants
stemVariantsTbl : (VForm => Str) -> (VForm => Variants3) = \tbl ->
stemVariantsTbl : (VForm => Str) -> (VForm => VerbStems) = \tbl ->
\\vf => case vf of {
VPerf _ => stemVariantsPerf (tbl ! vf) ;
VImpf _ => stemVariantsImpf (tbl ! vf) ;
_ => mkVariants3 (tbl ! vf)
_ => mkVerbStems (tbl ! vf)
} ;
Verb : Type = {
s : VForm => Variants3 ; --- need to store different "stems" already at verb level (ġera/ġerie/ġeri)
s : VForm => VerbStems ; --- need to store different "stems" already at verb level (ġera/ġerie/ġeri)
i : VerbInfo ;
hasPresPart : Bool ;
hasPastPart : Bool ;
} ;
VerbInfo : Type = {
@@ -530,9 +492,6 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
form : VDerivedForm ;
root : Root ; -- radicals
patt : Pattern ; -- vowels extracted from mamma
patt2 : Pattern ; -- vowel changes; default to patt (experimental)
-- in particular, patt2 is used to indicate whether an IE sould be shortened
-- to an I or an E (same for entire verb)
imp : Str ; -- Imperative Sg. Gives so much information jaħasra!
} ;
@@ -542,9 +501,8 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
VPerf VAgr -- Perfect tense in all pronoun cases
| VImpf VAgr -- Imperfect tense in all pronoun cases
| VImp Number -- Imperative is always P2, Sg & Pl
| VActivePart GenNum -- Present/active particible, e.g. RIEQED
| VPassivePart GenNum -- Passive/past particible, e.g. MAĦBUB
-- | VVerbalNoun -- Verbal Noun
| VPresPart GenNum -- Present/active particible, e.g. RIEQED
| VPastPart GenNum -- Passive/past particible, e.g. MAĦBUB
;
VDerivedForm =
@@ -595,13 +553,48 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
oper
-- Join verp phrase components into a string
joinVP : VerbPhrase -> VPForm -> Anteriority -> Polarity -> Str = \vp,form,ant,pol ->
--- TEMP FUNCTION
pickVerbForm : {s : VForm => VerbStems} -> Tense -> Anteriority -> Polarity -> Agr -> VerbParts = \verb,tense,ant,pol,agr ->
let
vagr : VAgr = toVAgr agr ;
ma = makePreVowel "ma" "m'" ;
b1 : VerbStems -> VerbParts = \vs -> mkVerbParts vs ;
b2 : Str -> VerbStems -> VerbParts = \s,vs -> mkVerbParts s vs ;
kien = copula_kien.s ! (VPerf vagr) ! Pos ;
kienx = copula_kien.s ! (VPerf vagr) ! Neg ;
nkun = copula_kien.s ! (VImpf vagr) ! Pos ;
in
case <tense,ant,pol> of {
<Pres,Simul,Pos> => b1 (verb.s ! VImpf vagr) ; -- norqod
<Pres,Simul,Neg> => b2 ma (verb.s ! VImpf vagr) ; -- ma norqodx
<Past,Simul,Pos> => b1 (verb.s ! VPerf vagr) ; -- rqadt
<Past,Simul,Neg> => b2 ma (verb.s ! VPerf vagr) ; -- ma rqadtx
<Fut, Simul,Pos> => b2 "se" (verb.s ! VImpf vagr) ; -- se norqod
<Fut, Simul,Neg> => b2 (mhux ! vagr ++ "se") (verb.s ! VImpf vagr) ; -- m'iniex se norqod
<Cond, _ ,Pos> => b2 kien (verb.s ! VImpf vagr) ; -- kont norqod
<Cond, _ ,Neg> => b2 (ma ++ kienx) (verb.s ! VImpf vagr) ; -- ma kontx norqod
-- Same as Past Simul
<Pres,Anter,Pos> => b1 (verb.s ! VPerf vagr) ; -- rqadt
<Pres,Anter,Neg> => b2 ma (verb.s ! VPerf vagr) ; -- ma rqadtx
<Past,Anter,Pos> => b2 kien (verb.s ! VPerf vagr) ; -- kont rqadt
<Past,Anter,Neg> => b2 (ma ++ kienx) (verb.s ! VPerf vagr) ; -- ma kontx rqadt
<Fut, Anter,Pos> => b2 ("se" ++ nkun) (verb.s ! VPerf vagr) ; -- se nkun rqadt
<Fut, Anter,Neg> => b2 (mhux ! vagr ++ "se" ++ nkun) (verb.s ! VPerf vagr) -- m'iniex se nkun rqadt
} ;
-- Join verb phrase components into a string
joinVP : VerbPhrase -> Tense -> Anteriority -> Polarity -> Agr -> Str = \vp,tense,ant,pol,agr ->
let
stems = (vp.s ! form ! ant ! pol).main ;
aux = (vp.s ! form ! ant ! pol).aux ;
stems = (pickVerbForm vp.v tense ant pol agr).main ;
aux = (pickVerbForm vp.v tense ant pol agr).aux ;
x : Str = "x" ;
agr : VAgr = VPForm2VAgr form ;
vagr : VAgr = toVAgr agr ;
dir_a : Agr = fromJust Agr vp.dir ; -- These are lazy
ind_a : Agr = fromJust Agr vp.ind ;
dir = dirObjSuffix dir_a ;
@@ -616,7 +609,7 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
_ => ind.s2 -- hie-lekx
} ;
in
case takesAux form ant of {
case takesAux tense ant of {
-- aux is already negated for us
True => aux ++ case <exists Agr vp.dir, exists Agr vp.ind> of {
@@ -636,7 +629,7 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
} ;
-- No aux part to handle
False => aux ++ case isPerf form ant of {
False => aux ++ case isPerf tense ant of {
True => case <exists Agr vp.dir, exists Agr vp.ind, pol> of {
@@ -649,12 +642,12 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
<True ,False,Neg> => stems.s3 ++ BIND ++ dir.s2 ++ BIND ++ x ;
-- ftaħnie-lha / ftaħni-lhie-x
<False,True ,Pos> => case <sing agr, femOrPlural ind_a> of {
<False,True ,Pos> => case <sing vagr, femOrPlural ind_a> of {
<True,True> => stems.s2 ++ BIND ++ ind.s3 ; -- fetħ-ilha
<False,True> => stems.s2 ++ BIND ++ ind.s1 ; -- ftaħnie-lha
_ => stems.s1 ++ BIND ++ ind.s1 -- fetaħ-li
} ;
<False,True ,Neg> => case <sing agr, femOrPlural ind_a> of {
<False,True ,Neg> => case <sing vagr, femOrPlural ind_a> of {
<True,True> => stems.s2 ++ BIND ++ ind.s4 ++ BIND ++ x ; -- fetħ-ilhiex
<False,True> => stems.s3 ++ BIND ++ ind.s2 ++ BIND ++ x ; -- ftaħni-lhiex
_ => stems.s1 ++ BIND ++ ind.s2 ++ BIND ++ x -- fetaħ-lix
@@ -677,12 +670,12 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
<True ,False,Neg> => stems.s1 ++ BIND ++ dir.s2 ++ BIND ++ x ;
-- jiftħ-ilha / jiftħ-ilhie-x
<False,True ,Pos> => case <sing agr, femOrPlural ind_a> of {
<False,True ,Pos> => case <sing vagr, femOrPlural ind_a> of {
<True,True> => stems.s2 ++ BIND ++ ind.s3 ; -- jiftħ-ilha
<False,True> => stems.s2 ++ BIND ++ ind.s1 ; -- jiftħu-lha
_ => stems.s1 ++ BIND ++ ind.s1 -- jiftaħ-li
} ;
<False,True ,Neg> => case <sing agr, femOrPlural ind_a> of {
<False,True ,Neg> => case <sing vagr, femOrPlural ind_a> of {
<True,True> => stems.s2 ++ BIND ++ ind.s4 ++ BIND ++ x ; -- jiftħ-ilhiex
<False,True> => stems.s2 ++ BIND ++ ind.s2 ++ BIND ++ x ; -- jiftħu-lhiex
_ => stems.s1 ++ BIND ++ ind.s2 ++ BIND ++ x -- jiftaħ-lix
@@ -699,74 +692,69 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
-- Does a tense + ant take an auxiliary verb?
-- This affects where (if) the negation is applied
-- This is a workaround to avoid having a bool param in VerbParts
-- Must match with the logic in predV
takesAux : VPForm -> Anteriority -> Bool = \vpf,ant ->
case <vpf,ant> of {
<VPIndicat Pres _, Simul> => False ;
<VPIndicat Past _, Simul> => False ;
<VPIndicat Fut _, Simul> => True ;
<VPIndicat Cond _, Simul> => True ;
<VPIndicat Pres _, Anter> => False ;
<VPIndicat Past _, Anter> => True ;
<VPIndicat Fut _, Anter> => True ;
<VPIndicat Cond _, Anter> => True ;
<VPImperat _, _> => False
-- Must match with the logic in pickVerbForm
takesAux : Tense -> Anteriority -> Bool = \tense,ant ->
case <tense,ant> of {
<Pres, Simul> => False ;
<Past, Simul> => False ;
<Fut , Simul> => True ;
<Cond, Simul> => True ;
<Pres, Anter> => False ;
<Past, Anter> => True ;
<Fut , Anter> => True ;
<Cond, Anter> => True
} ;
-- Does a tense + ant give a perfective verb?
-- Must match with the logic in predV
isPerf : VPForm -> Anteriority -> Bool = \vpf,ant ->
case <vpf,ant> of {
<VPIndicat Pres _, Simul> => False ;
<VPIndicat Past _, Simul> => True ;
<VPIndicat Fut _, Simul> => False ;
<VPIndicat Cond _, Simul> => False ;
<VPIndicat Pres _, Anter> => True ;
<VPIndicat Past _, Anter> => True ;
<VPIndicat Fut _, Anter> => True ;
<VPIndicat Cond _, Anter> => False ;
<VPImperat _, _> => False
-- Must match with the logic in pickVerbForm
isPerf : Tense -> Anteriority -> Bool = \tense,ant ->
case <tense,ant> of {
<Pres, Simul> => False ;
<Past, Simul> => True ;
<Fut , Simul> => False ;
<Cond, Simul> => False ;
<Pres, Anter> => True ;
<Past, Anter> => True ;
<Fut , Anter> => True ;
<Cond, Anter> => False
} ;
VerbParts : Type = {
aux : Str ; -- when present, negation is applied here
main : Variants3 ; -- enclitics always applied here
main : VerbStems ; -- enclitics always applied here
} ;
mkVerbParts = overload {
mkVerbParts : Variants3 -> VerbParts = \vs -> { aux = [] ; main = vs } ;
mkVerbParts : Str -> VerbParts = \m -> { aux = [] ; main = mkVariants3 m } ;
mkVerbParts : Str -> Variants3 -> VerbParts = \a,vs -> { aux = a ; main = vs } ;
mkVerbParts : Str -> Str -> VerbParts = \a,m -> { aux = a ; main = mkVariants3 m } ;
mkVerbParts : VerbStems -> VerbParts = \vs -> { aux = [] ; main = vs } ;
mkVerbParts : Str -> VerbParts = \m -> { aux = [] ; main = mkVerbStems m } ;
mkVerbParts : Str -> VerbStems -> VerbParts = \a,vs -> { aux = a ; main = vs } ;
mkVerbParts : Str -> Str -> VerbParts = \a,m -> { aux = a ; main = mkVerbStems m } ;
} ;
VerbPhrase : Type = {
s : VPForm => Anteriority => Polarity => VerbParts ;
s2 : Agr => Str ; -- complement
v : {
s : VForm => VerbStems ;
hasPresPart : Bool ;
hasPastPart : Bool ;
} ;
s2 : Agr => Str ; -- complement
dir : Maybe Agr ; -- direct object clitic
ind : Maybe Agr ; -- indirect object clitic
} ;
SlashVerbPhrase : Type = VerbPhrase ** {c2 : Compl} ;
param
-- [AZ]
VPForm =
VPIndicat Tense VAgr
| VPImperat Number
;
oper
insertObj : (Agr => Str) -> VerbPhrase -> VerbPhrase = \obj,vp -> {
s = vp.s ;
v = vp.v ;
s2 = \\agr => vp.s2 ! agr ++ obj ! agr ;
dir = vp.dir ;
ind = vp.ind ;
} ;
insertObjPre : (Agr => Str) -> VerbPhrase -> VerbPhrase = \obj,vp -> {
s = vp.s ;
v = vp.v ;
s2 = \\agr => obj ! agr ++ vp.s2 ! agr ;
dir = vp.dir ;
ind = vp.ind ;
@@ -776,21 +764,21 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
insertObj obj vp ** {c2 = vp.c2} ;
insertDirObj : Agr -> VerbPhrase -> VerbPhrase = \dir,vp -> {
s = vp.s ;
v = vp.v ;
s2 = vp.s2 ;
dir = Just Agr dir ;
ind = vp.ind ;
};
insertIndObj : Agr -> VerbPhrase -> VerbPhrase = \ind,vp -> {
s = vp.s ;
v = vp.v ;
s2 = vp.s2 ;
dir = vp.dir ;
ind = Just Agr ind ;
};
insertAdV : Str -> VerbPhrase -> VerbPhrase = \adv,vp -> {
s = vp.s ;
v = vp.v ;
s2 = \\agr => vp.s2 ! agr ++ adv ;
dir = vp.dir ;
ind = vp.ind ;
@@ -817,7 +805,6 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
<VImpf (AgP3Pl), Pos> => "jkunu" ;
<VImp (Pl), Pos> => "kun" ;
<VImp (Sg), Pos> => "kunu" ;
<VPerf (AgP1 Sg), Neg> => "kontx" ;
<VPerf (AgP2 Sg), Neg> => "kontx" ;
<VPerf (AgP3Sg Masc), Neg> => "kienx" ;
@@ -834,73 +821,62 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
<VImpf (AgP3Pl), Neg> => "jkunux" ;
<VImp (Pl), Neg> => "kunx" ;
<VImp (Sg), Neg> => "kunux" ;
<VActivePart gn, _> => "" ;
<VPassivePart gn, _> => ""
<VPresPart gn, _> => NONEXIST ;
<VPastPart gn, _> => NONEXIST
}
} ;
-- Adapted from [AZ]
CopulaVP : VerbPhrase = {
s = \\vpf,ant,pol =>
--- We are ignoring the anteriority
case <vpf, pol> of {
--- Here we are bypassing VerbParts by putting negatives in the stem
<VPIndicat Past vagr, Pos> => mkVerbParts (copula_kien.s ! VPerf vagr ! Pos) [] ; -- kien
<VPIndicat Pres vagr, Pos> => mkVerbParts (copula_kien.s ! VImpf vagr ! Pos) [] ; -- jkun
<VPIndicat Fut vagr, Pos> => mkVerbParts ("se" ++ copula_kien.s ! VImpf vagr ! Pos) [] ; -- se jkun
<VPIndicat Cond vagr, Pos> => mkVerbParts ("kieku" ++ copula_kien.s ! VPerf vagr ! Pos) [] ; -- kieku kien
<VPImperat num, Pos> => mkVerbParts (copula_kien.s ! VImp num ! Pos) [] ; -- kun
<VPIndicat Past vagr, Neg> => mkVerbParts (copula_kien.s ! VPerf vagr ! Neg) [] ; -- ma kienx
<VPIndicat Pres vagr, Neg> => mkVerbParts (copula_kien.s ! VImpf vagr ! Neg) [] ; -- ma jkunx
<VPIndicat Fut vagr, Neg> => mkVerbParts (mhux ! vagr ++ "se" ++ copula_kien.s ! VImpf vagr ! Pos) [] ; -- mhux se jkun
<VPIndicat Cond vagr, Neg> => mkVerbParts ("kieku" ++ "ma" ++ copula_kien.s ! VPerf vagr ! Neg) [] ; -- kieku ma kienx
<VPImperat num, Neg> => mkVerbParts (copula_kien.s ! VImp num ! Neg) [] -- kunx
-- s = \\vpf,ant,pol =>
-- --- We are ignoring the anteriority
-- case <vpf, pol> of {
-- --- Here we are bypassing VerbParts by putting negatives in the stem
-- -- <VPIndicat Pres vagr, Pos> => mkVerbParts (copula_kien.s ! VImpf vagr ! Pos) [] ; -- jkun
-- -- <VPIndicat Pres vagr, Neg> => mkVerbParts (copula_kien.s ! VImpf vagr ! Neg) [] ; -- ma jkunx
-- <VPIndicat Pres vagr, Pos> => mkVerbParts (huwa ! vagr) [] ; -- huwa
-- <VPIndicat Pres vagr, Neg> => mkVerbParts (mhux ! vagr) [] ; -- m'huwiex
-- <VPIndicat Past vagr, Pos> => mkVerbParts (copula_kien.s ! VPerf vagr ! Pos) [] ; -- kien
-- <VPIndicat Past vagr, Neg> => mkVerbParts (copula_kien.s ! VPerf vagr ! Neg) [] ; -- ma kienx
-- <VPIndicat Fut vagr, Pos> => mkVerbParts ("se" ++ copula_kien.s ! VImpf vagr ! Pos) [] ; -- se jkun
-- <VPIndicat Fut vagr, Neg> => mkVerbParts (mhux ! vagr ++ "se" ++ copula_kien.s ! VImpf vagr ! Pos) [] ; -- mhux se jkun
-- <VPIndicat Cond vagr, Pos> => mkVerbParts ("kieku" ++ copula_kien.s ! VPerf vagr ! Pos) [] ; -- kieku kien
-- <VPIndicat Cond vagr, Neg> => mkVerbParts ("kieku" ++ "ma" ++ copula_kien.s ! VPerf vagr ! Neg) [] ; -- kieku ma kienx
-- <VPImperat num, Pos> => mkVerbParts (copula_kien.s ! VImp num ! Pos) [] ; -- kun
-- <VPImperat num, Neg> => mkVerbParts (copula_kien.s ! VImp num ! Neg) [] -- kunx
-- } ;
v = {
s = table {
VPerf (AgP1 Sg) => mkVerbStems "kont" ;
VPerf (AgP2 Sg) => mkVerbStems "kont" ;
VPerf (AgP3Sg Masc) => mkVerbStems "kien" ;
VPerf (AgP3Sg Fem) => mkVerbStems "kienet" "kinit" ;
VPerf (AgP1 Pl) => mkVerbStems "konna" "konnie" ;
VPerf (AgP2 Pl) => mkVerbStems "kontu" ;
VPerf (AgP3Pl) => mkVerbStems "kienu" ;
VImpf (AgP1 Sg) => mkVerbStems [] "m'inie" ;
VImpf (AgP2 Sg) => mkVerbStems [] "m'inti";
VImpf (AgP3Sg Masc) => mkVerbStems "huwa" "m'hu" ;
VImpf (AgP3Sg Fem) => mkVerbStems "hija" "m'hi" ;
VImpf (AgP1 Pl) => mkVerbStems [] "m'aħnie" ;
VImpf (AgP2 Pl) => mkVerbStems [] "m'intom" ;
VImpf (AgP3Pl) => mkVerbStems "huma" "m'humie" ;
VImp (Pl) => mkVerbStems "kun" ;
VImp (Sg) => mkVerbStems "kunu" ;
VPresPart gn => mkVerbStems NONEXIST ;
VPastPart gn => mkVerbStems NONEXIST
} ;
i = mkVerbInfo Irregular FormI ;
hasPresPart = False ;
hasPastPart = False ;
} ;
s2 = \\agr => [] ;
dir = NullAgr ;
ind = NullAgr ;
} ;
-- [AZ]
predV : Verb -> VerbPhrase = \verb -> {
s = \\vpf,ant,pol =>
let
ma = makePreVowel "ma" "m'" ;
b1 : Variants3 -> VerbParts = \vs -> mkVerbParts vs ;
b2 : Str -> Variants3 -> VerbParts = \s,vs -> mkVerbParts s vs ;
in
case vpf of {
VPIndicat tense vagr =>
let
kien = copula_kien.s ! (VPerf vagr) ! Pos ;
kienx = copula_kien.s ! (VPerf vagr) ! Neg ;
nkun = copula_kien.s ! (VImpf vagr) ! Pos ;
in
case <tense,ant,pol> of {
<Pres,Simul,Pos> => b1 (verb.s ! VImpf vagr) ; -- norqod
<Pres,Simul,Neg> => b2 ma (verb.s ! VImpf vagr) ; -- ma norqodx
<Past,Simul,Pos> => b1 (verb.s ! VPerf vagr) ; -- rqadt
<Past,Simul,Neg> => b2 ma (verb.s ! VPerf vagr) ; -- ma rqadtx
<Fut, Simul,Pos> => b2 "se" (verb.s ! VImpf vagr) ; -- se norqod
<Fut, Simul,Neg> => b2 (mhux ! vagr ++ "se") (verb.s ! VImpf vagr) ; -- m'iniex se norqod
<Cond, _ ,Pos> => b2 kien (verb.s ! VImpf vagr) ; -- kont norqod
<Cond, _ ,Neg> => b2 (ma ++ kienx) (verb.s ! VImpf vagr) ; -- ma kontx norqod
-- Same as Past Simul
<Pres,Anter,Pos> => b1 (verb.s ! VPerf vagr) ; -- rqadt
<Pres,Anter,Neg> => b2 ma (verb.s ! VPerf vagr) ; -- ma rqadtx
<Past,Anter,Pos> => b2 kien (verb.s ! VPerf vagr) ; -- kont rqadt
<Past,Anter,Neg> => b2 (ma ++ kienx) (verb.s ! VPerf vagr) ; -- ma kontx rqadt
<Fut, Anter,Pos> => b2 ("se" ++ nkun) (verb.s ! VPerf vagr) ; -- se nkun rqadt
<Fut, Anter,Neg> => b2 (mhux ! vagr ++ "se" ++ nkun) (verb.s ! VPerf vagr) -- m'iniex se nkun rqadt
} ;
VPImperat num => b1 (verb.s ! VImp num) -- torqodx
};
v = verb ;
s2 = \\agr => [] ;
dir = NullAgr ;
ind = NullAgr ;
@@ -908,10 +884,7 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
-- There is no infinitive in Maltese; use perfective
infVP : VerbPhrase -> Anteriority -> Polarity -> Agr -> Str = \vp,ant,pol,agr ->
let
vpform : VPForm = VPIndicat Past (toVAgr agr) ;
in
joinVP vp vpform ant pol ++ vp.s2 ! agr ;
joinVP vp Past ant pol agr ++ vp.s2 ! agr ;
Aux = {
s : Tense => Polarity => Str ;
@@ -939,6 +912,16 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
AgP3Pl => "lilhom infushom"
} ;
huwa : VAgr => Str = table {
AgP1 Sg => "jiena" ;
AgP2 Sg => "inti" ;
AgP3Sg Masc => "huwa" ;
AgP3Sg Fem => "hija" ;
AgP1 Pl => "aħna" ;
AgP2 Pl => "intom" ;
AgP3Pl => "huma"
} ;
mhux : VAgr => Str = table {
AgP1 Sg => "m'iniex" ;
AgP2 Sg => "m'intix" ;
@@ -1064,15 +1047,15 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
-- Create a VerbInfo record, optionally omitting various fields
mkVerbInfo : VerbInfo = overload {
mkVerbInfo : VClass -> VDerivedForm -> VerbInfo = \c,f ->
{ class=c ; form=f ; root=mkRoot ; patt=mkPattern ; patt2=mkPattern ; imp=[] } ;
{ class=c ; form=f ; root=mkRoot ; patt=mkPattern ; imp=[] } ;
mkVerbInfo : VClass -> VDerivedForm -> Str -> VerbInfo = \c,f,i ->
{ class=c ; form=f ; root=mkRoot ; patt=mkPattern ; patt2=mkPattern ; imp=i } ;
{ class=c ; form=f ; root=mkRoot ; patt=mkPattern ; imp=i } ;
mkVerbInfo : VClass -> VDerivedForm -> Root -> Pattern -> VerbInfo = \c,f,r,p ->
{ class=c ; form=f ; root=r ; patt=p ; patt2=p ; imp=[] } ;
{ class=c ; form=f ; root=r ; patt=p ; imp=[] } ;
mkVerbInfo : VClass -> VDerivedForm -> Root -> Pattern -> Str -> VerbInfo = \c,f,r,p,i ->
{ class=c ; form=f ; root=r ; patt=p ; patt2=p ; imp=i } ;
mkVerbInfo : VClass -> VDerivedForm -> Root -> Pattern -> Pattern -> Str -> VerbInfo = \c,f,r,p,p2,i ->
{ class=c ; form=f ; root=r ; patt=p ; patt2=p2 ; imp=i } ;
{ class=c ; form=f ; root=r ; patt=p ; imp=i } ;
-- mkVerbInfo : VClass -> VDerivedForm -> Root -> Pattern -> Pattern -> Str -> VerbInfo = \c,f,r,p,p2,i ->
-- { class=c ; form=f ; root=r ; patt=p ; patt2=p2 ; imp=i } ;
} ;
-- Change certain fields of a VerbInfo record
@@ -1080,20 +1063,22 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
-- Root
updateVerbInfo : VerbInfo -> Root -> VerbInfo = \i,r ->
{ class=i.class ; form=i.form ; root=r ; patt=i.patt ; patt2=i.patt2 ; imp=i.imp } ;
{ class=i.class ; form=i.form ; root=r ; patt=i.patt ; imp=i.imp } ;
-- DerivedForm
updateVerbInfo : VerbInfo -> VDerivedForm -> VerbInfo = \i,f ->
{ class=i.class ; form=f ; root=i.root ; patt=i.patt ; patt2=i.patt2 ; imp=i.imp } ;
{ class=i.class ; form=f ; root=i.root ; patt=i.patt ; imp=i.imp } ;
-- DerivedForm, Imperative
updateVerbInfo : VerbInfo -> VDerivedForm -> Str -> VerbInfo = \i,f,imp ->
{ class=i.class ; form=f ; root=i.root ; patt=i.patt ; patt2=i.patt2 ; imp=imp } ;
{ class=i.class ; form=f ; root=i.root ; patt=i.patt ; imp=imp } ;
} ;
{- ~~~ Useful helper functions ~~~ -}
NONEXIST : Str = "#NONEXIST#" ;
-- New names for the drop/take operations
takePfx = Predef.take ;
dropPfx = Predef.drop ;
@@ -1179,7 +1164,7 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in {
_ => False
} ;
artIndef : Str = "" ;
artIndef : Str = [] ; --- is this a source of leaks?
artDef : Str =
makePreFull

View File

@@ -17,21 +17,14 @@ concrete SentenceMlt of Sentence = CatMlt ** open
lin
-- NP -> VP -> Cl
-- John walks
PredVP np vp = {
s = \\tense,ant,pol,ord =>
case ord of {
ODir => (s ++ v ++ o) ; -- ĠANNI JIEKOL ĦUT
OQuest => (v ++ o ++ s) -- JIEKOL ĦUT ĠANNI ?
}
where {
s : Str = case np.isPron of {
True => [] ; -- omit subject pronouns
False => np.s ! NPNom
} ;
v : Str = joinVP vp (VPIndicat tense (toVAgr np.a)) ant pol ;
o : Str = vp.s2 ! np.a ;
} ;
} ;
PredVP np vp =
let
subj : Str = case np.isPron of {
True => [] ; -- omit subject pronouns
False => np.s ! NPNom
} ;
in
mkClause subj np.a vp ;
-- SC -> VP -> Cl
-- that she goes is good
@@ -39,7 +32,11 @@ concrete SentenceMlt of Sentence = CatMlt ** open
-- VP -> Imp
ImpVP vp = {
s = \\pol,n => joinVP vp (VPImperat n) Simul pol
-- s = \\pol,n => joinVP vp (VPImperat n) Simul pol ;
s = \\pol,n => case pol of {
Pos => (vp.v.s ! VImp n).s1 ++ vp.s2 ! agrP3 n Masc ;
Neg => (vp.v.s ! VImp n).s2 ++ BIND ++ "x" ++ vp.s2 ! agrP3 n Masc
} ;
} ;
-- NP -> VPSlash -> ClSlash

View File

@@ -88,7 +88,7 @@ concrete StructuralMlt of Structural = CatMlt **
on_Prep = mkPrep "fuq" ;
part_Prep = possess_Prep ;
possess_Prep = mkPrep "ta'" "t'" "tal-" "tat-" "tal-" ;
through_Prep = mkPrep "minn ġo" "minn ġol-" "minn ġol-" "minn ġot-" "minn ġol-"
through_Prep = mkPrep "minn ġo" "minn ġo" "minn ġol-" "minn ġot-" "minn ġol-"
"minn ġo fija" "minn ġo fik" "minn ġo fih" "minn ġo fiha" "minn ġo fina" "minn ġo fikom" "minn ġo fihom"
False ;
to_Prep = mkPrep "lil" "lill-" "lit-" ;

View File

@@ -8,6 +8,78 @@
concrete SymbolMlt of Symbol = CatMlt ** open Prelude, ResMlt in {
oper
symAgr : Agr = { n = Sg ; p = P3 ; g = Masc } ;
lin
-- SymbPN -> PN
-- x
SymbPN i = {s = i.s ; a = symAgr} ;
-- Int -> PN
-- 27
IntPN i = {s = i.s ; a = symAgr} ;
-- Float -> PN
-- 3.14159
FloatPN i = {s = i.s ; a = symAgr} ;
-- Card -> PN ;
NumPN i = {s = i.s ! NumNom ; a = symAgr} ;
-- CN -> Int -> NP
-- level 53 (covered by CNNumNP)
CNIntNP cn i = {
s = \\c => cn.s ! num2nounnum Sg ++ i.s;
a = agrP3 Sg cn.g ;
isPron = False ;
isDefn = False ;
} ;
-- Det -> CN -> [Symb] -> NP
-- (the) (2) numbers x and y
CNSymbNP det cn xs = {
s = \\c => det.s ! cn.g ++ cn.s ! (numform2nounnum det.n) ++ xs.s ;
a = agrP3 (numform2num det.n) cn.g ;
isPron = False ;
isDefn = False ;
} ;
-- CN -> Card -> NP
-- level five ; level 5
CNNumNP cn i = {
s = \\c => cn.s ! num2nounnum Sg ++ i.s ! NumNom ;
a = agrP3 Sg cn.g ;
isPron = False ;
isDefn = False ;
} ;
-- Symb -> S
-- A
SymbS sy = sy ;
-- Symb -> Card
-- n
SymbNum sy = {
s = \\_ => sy.s ;
n = NumX Pl ;
} ;
-- Symb -> Ord
-- n'th
SymbOrd sy = {
s = \\c => sy.s ;
} ;
lincat
Symb, [Symb] = SS ;
lin
-- String -> Symb
MkSymb s = s ;
BaseSymb = infixSS "u" ;
ConsSymb = infixSS "," ;
}

View File

@@ -66,7 +66,7 @@ concrete VerbMlt of Verb = CatMlt ** open Prelude, ResMlt in {
-- Get enclitic version of c2
<True,True> => {
s = vp.s ;
v = vp.v ;
s2 = \\agr => vp.s2 ! agr ++ vp.c2.enclitic ! np.a ;
dir = NullAgr ;
ind = NullAgr ;
@@ -136,7 +136,10 @@ concrete VerbMlt of Verb = CatMlt ** open Prelude, ResMlt in {
-- V2 -> VP
-- be loved
PassV2 v2 = insertObj (\\agr => (v2.s ! VPassivePart (toGenNum agr)).s1 ++ v2.c2.s ! Definite) CopulaVP ;
PassV2 v2 = case v2.hasPastPart of {
True => insertObj (\\agr => (v2.s ! VPastPart (toGenNum agr)).s1 ++ v2.c2.s ! Definite) CopulaVP ;
False => insertObj (\\agr => (v2.s ! VPerf (toVAgr agr)).s1 ++ v2.c2.s ! Definite) CopulaVP
} ;
-- AP -> Comp
-- (be) small
@@ -172,7 +175,6 @@ concrete VerbMlt of Verb = CatMlt ** open Prelude, ResMlt in {
-- VP -> Prep -> VPSlash
-- live in (it)
VPSlashPrep vp p = vp ** {
-- c2 = lin Compl (p ** {isPresent = True}) ;
c2 = {
s = p.s ;
enclitic = p.enclitic ;