diff --git a/lib/src/maltese/AllMlt.gf b/lib/src/maltese/AllMlt.gf index 3d766ddfb..019ee0d7c 100644 --- a/lib/src/maltese/AllMlt.gf +++ b/lib/src/maltese/AllMlt.gf @@ -8,6 +8,7 @@ concrete AllMlt of AllMltAbs = LangMlt, + DictMlt, IrregMlt, ExtraMlt ** { diff --git a/lib/src/maltese/AllMltAbs.gf b/lib/src/maltese/AllMltAbs.gf index ca42e8c0f..5a545fc6b 100644 --- a/lib/src/maltese/AllMltAbs.gf +++ b/lib/src/maltese/AllMltAbs.gf @@ -8,12 +8,7 @@ abstract AllMltAbs = Lang, + DictMltAbs, IrregMltAbs, ExtraMltAbs ** {} ; - -{- - IrregMltAbs-[ - blow_V,burn_V,come_V,dig_V,fall_V,fly_V,freeze_V,go_V,lie_V,run_V, - sew_V,sing_V,sit_V,sleep_V,spit_V,stand_V,swell_V,swim_V,think_V], --} diff --git a/lib/src/maltese/CatMlt.gf b/lib/src/maltese/CatMlt.gf index 94d1957ee..7860a721f 100644 --- a/lib/src/maltese/CatMlt.gf +++ b/lib/src/maltese/CatMlt.gf @@ -97,7 +97,7 @@ concrete CatMlt of Cat = CommonX - [Adv] ** open ResMlt, Prelude in { s : NumCase => Str ; -- No need for CardOrd, i.e. no 1st, 2nd etc in Maltese n : NumForm ; tail : DTail ; - }; + } ; -- Structural diff --git a/lib/src/maltese/DictMlt.gf b/lib/src/maltese/DictMlt.gf index aedc894bb..8a2e1f603 100644 --- a/lib/src/maltese/DictMlt.gf +++ b/lib/src/maltese/DictMlt.gf @@ -648,7 +648,6 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in { tentex_TNTX_1_7299_V = mkV "tentex" (mkRoot "t-n-t-x") ; ttentex_TNTX_2_7300_V = mkV_II "ttentex" (mkRoot "t-n-t-x") ; taptap_TPTP_1_7301_V = mkV "taptap" (mkRoot "t-p-t-p") ; - staqsa_TPTP_1_7302_V = mkV "staqsa" (mkRoot "t-p-t-p") ; volga_VLGJ_1_7303_V = mkV "volġa" (mkRoot "v-l-ġ-j") ; vilja_VLJJ_1_7304_V = mkV "vilja" (mkRoot "v-l-j-j") ; vilja_VLJJ_1_7305_V = mkV "vilja" (mkRoot "v-l-j-j") ; diff --git a/lib/src/maltese/DictMltAbs.gf b/lib/src/maltese/DictMltAbs.gf index 4f5374886..1e1b8bd46 100644 --- a/lib/src/maltese/DictMltAbs.gf +++ b/lib/src/maltese/DictMltAbs.gf @@ -624,7 +624,6 @@ abstract DictMltAbs = Cat ** { tentex_TNTX_1_7299_V : V ; ttentex_TNTX_2_7300_V : V ; taptap_TPTP_1_7301_V : V ; - staqsa_TPTP_1_7302_V : V ; volga_VLGJ_1_7303_V : V ; vilja_VLJJ_1_7304_V : V ; vilja_VLJJ_1_7305_V : V ; diff --git a/lib/src/maltese/ExtraMlt.gf b/lib/src/maltese/ExtraMlt.gf index 86e44b17e..8a9a9c885 100644 --- a/lib/src/maltese/ExtraMlt.gf +++ b/lib/src/maltese/ExtraMlt.gf @@ -5,8 +5,23 @@ -- Licensed under LGPL concrete ExtraMlt of ExtraMltAbs = CatMlt ** - open ResMlt, ParadigmsMlt in { + open (R=ResMlt), ParadigmsMlt in { flags coding=utf8 ; + lin + SlashVa v = (R.predV v) ** { c2 = noCompl } ; -- See Verb.SlashV2a + + -- VasV2 v = v ** { c2 = noCompl } ; + + -- ProDrop : Pron -> Pron + -- unstressed subject pronoun becomes []: "(jiena) norqod" + ProDrop p = { + s = table { + R.Personal => [] ; + c => p.s ! c + } ; + a = p.a ; + } ; + } diff --git a/lib/src/maltese/ExtraMltAbs.gf b/lib/src/maltese/ExtraMltAbs.gf index e05947e2e..aa907d3fe 100644 --- a/lib/src/maltese/ExtraMltAbs.gf +++ b/lib/src/maltese/ExtraMltAbs.gf @@ -4,6 +4,12 @@ -- John J. Camilleri 2011 -- 2013 -- Licensed under LGPL -abstract ExtraMltAbs = Cat ** { +abstract ExtraMltAbs = Cat, Extra [Pron, ProDrop] ** { + + fun + -- SlashV2a : V2 -> VPSlash ; -- love (it) + SlashVa : V -> VPSlash ; -- jump (it) + + -- VasV2 : V -> V2 ; --- too general for my liking } diff --git a/lib/src/maltese/LexiconMlt.gf b/lib/src/maltese/LexiconMlt.gf index a31084483..48b5e4ab9 100644 --- a/lib/src/maltese/LexiconMlt.gf +++ b/lib/src/maltese/LexiconMlt.gf @@ -58,7 +58,7 @@ concrete LexiconMlt of Lexicon = CatMlt ** 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 ; + distance_N3 = mkN3 (mkN "distanza") saP minnP ; doctor_N = mkN "tabib" "tobba" ; -- genderedN dog_N = mkN "kelb" "klieb" ; door_N = mkN "bieb" "bibien" ; @@ -257,7 +257,7 @@ concrete LexiconMlt of Lexicon = CatMlt ** lose_V2 = lilV2 (tilef_TLF_1_9895_V) ; love_V2 = lilV2 (habb_HBB_1_8174_V) ; open_V2 = dirV2 (fetah_FTH_1_7932_V) ; - paint_V2A = dirV2 (pitter_PTR_2_9152_V) ; + paint_V2A = dirV2 (zeba'_ZBGH_1_10339_V) ; -- dirV2 (pitter_PTR_2_9152_V) ; play_V = daqq_DQQ_1_7736_V ; play_V2 = prepV2 (laghab_LGHB_1_8724_V) maP ; pull_V2 = lilV2 (gibed_GBD_1_8043_V) ; diff --git a/lib/src/maltese/ResMlt.gf b/lib/src/maltese/ResMlt.gf index c9bf928f7..aa3f3cf97 100644 --- a/lib/src/maltese/ResMlt.gf +++ b/lib/src/maltese/ResMlt.gf @@ -1152,6 +1152,7 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in { {- ~~~ Useful helper functions ~~~ -} NONEXIST : Str = "#NONEXIST#" ; + -- NONEXIST : Str = Prelude.nonExist ; -- Still doesn't work in Haskell runtime 2013-08-26 -- New names for the drop/take operations takePfx = Predef.take ; @@ -1223,20 +1224,20 @@ resource ResMlt = ParamX ** open Prelude, Predef, Maybe in { -- Is a word mono-syllabic? --- potentially slow - isMonoSyl : Str -> Bool = \s -> - case s of { - #Consonant + ("ie" | #Vowel) => True ; -- ra - #Consonant + #Consonant + ("ie" | #Vowel) => True ; -- bla + -- isMonoSyl : Str -> Bool = \s -> + -- case s of { + -- #Consonant + ("ie" | #Vowel) => True ; -- ra + -- #Consonant + #Consonant + ("ie" | #Vowel) => True ; -- bla - ("ie" | #Vowel) + #Consonant => True ; -- af - ("ie" | #Vowel) + #Consonant + #Consonant => True ; -- elf + -- ("ie" | #Vowel) + #Consonant => True ; -- af + -- ("ie" | #Vowel) + #Consonant + #Consonant => True ; -- elf - #Consonant + ("ie" | #Vowel) + #Consonant => True ; -- miet - #Consonant + ("ie" | #Vowel) + #Consonant + #Consonant => True ; -- mort - #Consonant + #Consonant + ("ie" | #Vowel) + #Consonant => True ; -- ħliet - #Consonant + #Consonant + ("ie" | #Vowel) + #Consonant + #Consonant => True ; -- ħriġt - _ => False - } ; + -- #Consonant + ("ie" | #Vowel) + #Consonant => True ; -- miet + -- #Consonant + ("ie" | #Vowel) + #Consonant + #Consonant => True ; -- mort + -- #Consonant + #Consonant + ("ie" | #Vowel) + #Consonant => True ; -- ħliet + -- #Consonant + #Consonant + ("ie" | #Vowel) + #Consonant + #Consonant => True ; -- ħriġt + -- _ => False + -- } ; wiehed : Gender => Str = table { diff --git a/lib/src/maltese/SentenceMlt.gf b/lib/src/maltese/SentenceMlt.gf index 0535a4eca..d2288f956 100644 --- a/lib/src/maltese/SentenceMlt.gf +++ b/lib/src/maltese/SentenceMlt.gf @@ -19,10 +19,11 @@ concrete SentenceMlt of Sentence = CatMlt ** open -- John walks PredVP np vp = let - subj : Str = case np.isPron of { - True => [] ; -- omit subject pronouns - False => np.s ! NPNom - } ; + -- subj : Str = case np.isPron of { + -- True => [] ; -- omit subject pronouns + -- False => np.s ! NPNom + -- } ; + subj : Str = np.s ! NPNom ; in mkClause subj np.a vp ; diff --git a/lib/src/maltese/StructuralMlt.gf b/lib/src/maltese/StructuralMlt.gf index d3e3c5060..6a3b79578 100644 --- a/lib/src/maltese/StructuralMlt.gf +++ b/lib/src/maltese/StructuralMlt.gf @@ -60,7 +60,7 @@ concrete StructuralMlt of Structural = CatMlt ** {- Conjunction ---------------------------------------------------------- -} and_Conj = mkConj "u" ; - both7and_DConj = mkConj "kemm" "u"; + both7and_DConj = mkConj "kemm" "u kemm"; but_PConj = ss "imma" ; either7or_DConj = mkConj "jew" "inkella" ; or_Conj = mkConj "jew" ; @@ -123,16 +123,16 @@ concrete StructuralMlt of Structural = CatMlt ** at_most_AdN = mkAdN "l-iktar" ; everywhere_Adv = mkAdv "kullimkien" ; here_Adv = mkAdv "hawn" ; - here7to_Adv = mkAdv ["s'hawnhekk"] ; - here7from_Adv = mkAdv ["minn hawnhekk"] ; + here7to_Adv = mkAdv ["s'hawn"] ; + here7from_Adv = mkAdv ["minn hawn"] ; less_CAdv = C.mkCAdv "inqas" "minn" ; --- inqas mill-ieħor more_CAdv = C.mkCAdv "iktar" "minn" ; --- iktar mit-tnejn quite_Adv = mkAdv "pjuttost" ; so_AdA = mkAdA "allura" ; somewhere_Adv = mkAdv "x'imkien" ; - there_Adv = mkAdv "hemmhekk" ; - there7to_Adv = mkAdv "s'hemmhekk" ; - there7from_Adv = mkAdv ["minn hemmhekk"] ; + there_Adv = mkAdv "hemm" ; + there7to_Adv = mkAdv "s'hemm" ; + there7from_Adv = mkAdv ["minn hemm"] ; too_AdA = mkAdA "ukoll" ; very_AdA = mkAdA "ħafna" ; as_CAdv = C.mkCAdv "" "daqs" ; -- "as good as gold"