mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-21 00:52:51 -06:00
Maltese RGL: removed 'case' inflections from nouns
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
-- AdjectiveMlt.gf: adjectives
|
-- AdjectiveMlt.gf: adjectives
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
concrete AdjectiveMlt of Adjective = CatMlt ** open ResMlt, Prelude in {
|
concrete AdjectiveMlt of Adjective = CatMlt ** open ResMlt, Prelude in {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
-- AdverbMlt.gf: adverbial phrases
|
-- AdverbMlt.gf: adverbial phrases
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
concrete AdverbMlt of Adverb = CatMlt ** open ResMlt, Prelude in {
|
concrete AdverbMlt of Adverb = CatMlt ** open ResMlt, Prelude in {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
-- AllMlt.gf: common grammar plus language-dependent extensions
|
-- AllMlt.gf: common grammar plus language-dependent extensions
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
--# -path=.:prelude:../abstract:../common
|
--# -path=.:prelude:../abstract:../common
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
-- AllMlt.gf: common grammar plus language-dependent extensions
|
-- AllMlt.gf: common grammar plus language-dependent extensions
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
--# -path=.:prelude:../abstract:../common
|
--# -path=.:prelude:../abstract:../common
|
||||||
|
|||||||
@@ -1,66 +1,66 @@
|
|||||||
-- CatMlt.gf: the common type system
|
-- CatMlt.gf: the common type system
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
--concrete CatMlt of Cat = CommonX ** open ResMlt, Prelude, ParamX in {
|
--concrete CatMlt of Cat = CommonX ** open ResMlt, Prelude, ParamX in {
|
||||||
concrete CatMlt of Cat = CommonX ** open ResMlt, Prelude in {
|
concrete CatMlt of Cat = CommonX ** open ResMlt, Prelude in {
|
||||||
|
|
||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
|
|
||||||
lincat
|
lincat
|
||||||
-- S = {s : Str} ;
|
-- S = {s : Str} ;
|
||||||
-- Cl = {s : ResMlt.Tense => Bool => Str} ;
|
-- Cl = {s : ResMlt.Tense => Bool => Str} ;
|
||||||
-- NP = ResMlt.NP ; -- {s : Case => {clit,obj : Str ; isClit : Bool} ; a : Agr} ;
|
-- NP = ResMlt.NP ; -- {s : Case => {clit,obj : Str ; isClit : Bool} ; a : Agr} ;
|
||||||
-- VP = ResMlt.VP ; -- {v : Verb ; clit : Str ; clitAgr : ClitAgr ; obj : Agr => Str} ;
|
-- VP = ResMlt.VP ; -- {v : Verb ; clit : Str ; clitAgr : ClitAgr ; obj : Agr => Str} ;
|
||||||
-- AP = {s : Gender => Number => Str ; isPre : Bool} ;
|
-- AP = {s : Gender => Number => Str ; isPre : Bool} ;
|
||||||
-- CN = ResMlt.Noun ; -- {s : Number => Str ; g : Gender} ;
|
-- CN = ResMlt.Noun ; -- {s : Number => Str ; g : Gender} ;
|
||||||
-- Det = {s : Gender => Case => Str ; n : Number} ;
|
-- Det = {s : Gender => Case => Str ; n : Number} ;
|
||||||
N = ResMlt.Noun ;
|
N = ResMlt.Noun ;
|
||||||
N2 = ResMlt.Noun ;
|
N2 = ResMlt.Noun ;
|
||||||
N3 = ResMlt.Noun ;
|
N3 = ResMlt.Noun ;
|
||||||
A = ResMlt.Adj ;
|
A = ResMlt.Adj ;
|
||||||
V = ResMlt.Verb ;
|
V = ResMlt.Verb ;
|
||||||
-- V2 = ResMlt.Verb ** {c : Case} ;
|
-- V2 = ResMlt.Verb ** {c : Case} ;
|
||||||
-- AdA = {s : Str} ;
|
-- AdA = {s : Str} ;
|
||||||
-- Pol = {s : Str ; b : Bool} ;
|
-- Pol = {s : Str ; b : Bool} ;
|
||||||
-- Tense = {s : Str ; t : ResMlt.Tense} ;
|
-- Tense = {s : Str ; t : ResMlt.Tense} ;
|
||||||
-- Conj = {s : Str ; n : Number} ;
|
-- Conj = {s : Str ; n : Number} ;
|
||||||
|
|
||||||
|
|
||||||
-- Cardinal or ordinal in WORDS (not digits)
|
-- Cardinal or ordinal in WORDS (not digits)
|
||||||
Numeral = {
|
Numeral = {
|
||||||
s : CardOrd => Num_Case => Str ;
|
s : CardOrd => Num_Case => Str ;
|
||||||
n : Num_Number
|
n : Num_Number
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- Cardinal or ordinal in DIGITS (not words)
|
-- Cardinal or ordinal in DIGITS (not words)
|
||||||
Digits = {
|
Digits = {
|
||||||
s : Str ; -- No need for CardOrd, i.e. no 1st, 2nd etc in Maltese
|
s : Str ; -- No need for CardOrd, i.e. no 1st, 2nd etc in Maltese
|
||||||
n : Num_Number ;
|
n : Num_Number ;
|
||||||
tail : DTail
|
tail : DTail
|
||||||
};
|
};
|
||||||
|
|
||||||
{-
|
{-
|
||||||
-- These below are just examples, I believe they came form Italian.
|
-- These below are just examples, I believe they came form Italian.
|
||||||
S = {s : Str} ;
|
S = {s : Str} ;
|
||||||
Cl = {s : ResMlt.Tense => Bool => Str} ;
|
Cl = {s : ResMlt.Tense => Bool => Str} ;
|
||||||
NP = {s : Case => {clit,obj : Str ; isClit : Bool} ; a : Agr} ;
|
NP = {s : Case => {clit,obj : Str ; isClit : Bool} ; a : Agr} ;
|
||||||
VP = {v : Verb ; clit : Str ; clitAgr : ClitAgr ; obj : Agr => Str} ;
|
VP = {v : Verb ; clit : Str ; clitAgr : ClitAgr ; obj : Agr => Str} ;
|
||||||
AP = {s : Gender => Number => Str ; isPre : Bool} ;
|
AP = {s : Gender => Number => Str ; isPre : Bool} ;
|
||||||
CN = {s : Number => Str ; g : Gender} ;
|
CN = {s : Number => Str ; g : Gender} ;
|
||||||
Det = {s : Gender => Case => Str ; n : Number} ;
|
Det = {s : Gender => Case => Str ; n : Number} ;
|
||||||
N = {s : Number => Str ; g : Gender} ;
|
N = {s : Number => Str ; g : Gender} ;
|
||||||
N2 = {s : Number => Str ; g : Gender} ;
|
N2 = {s : Number => Str ; g : Gender} ;
|
||||||
A = {s : Number => Str ; isPre : Bool} ;
|
A = {s : Number => Str ; isPre : Bool} ;
|
||||||
V = ResMlt.Verb ;
|
V = ResMlt.Verb ;
|
||||||
V2 = ResMlt.Verb ** {c : Case} ;
|
V2 = ResMlt.Verb ** {c : Case} ;
|
||||||
AdA = {s : Str} ;
|
AdA = {s : Str} ;
|
||||||
Pol = {s : Str ; b : Bool} ;
|
Pol = {s : Str ; b : Bool} ;
|
||||||
Tense = {s : Str ; t : ResMlt.Tense} ;
|
Tense = {s : Str ; t : ResMlt.Tense} ;
|
||||||
Conj = {s : Str ; n : Number} ;
|
Conj = {s : Str ; n : Number} ;
|
||||||
-}
|
-}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
-- ConjunctionMlt.gf: co-ordination
|
-- ConjunctionMlt.gf: co-ordination
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
concrete ConjunctionMlt of Conjunction = CatMlt ** open ResMlt, Coordination, Prelude in {
|
concrete ConjunctionMlt of Conjunction = CatMlt ** open ResMlt, Coordination, Prelude in {
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
-- ExtraMlt.gf: extra stuff
|
-- ExtraMlt.gf: extra stuff
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
concrete ExtraMlt of ExtraMltAbs = CatMlt **
|
concrete ExtraMlt of ExtraMltAbs = CatMlt **
|
||||||
open ResMlt, ParadigmsMlt in {
|
open ResMlt, ParadigmsMlt in {
|
||||||
|
|
||||||
flags coding=utf8 ;
|
flags coding=utf8 ;
|
||||||
|
|
||||||
|
|
||||||
-- lin
|
-- lin
|
||||||
-- thigh_N = mkNounDual "koxxa" ;
|
-- thigh_N = mkNounDual "koxxa" ;
|
||||||
-- sailor_N = mkNoun "baħri" ;
|
-- sailor_N = mkNoun "baħri" ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
-- ExtraMltAbs.gf: abstract grammar for extra stuff
|
-- ExtraMltAbs.gf: abstract grammar for extra stuff
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
abstract ExtraMltAbs = Cat ** {
|
abstract ExtraMltAbs = Cat ** {
|
||||||
|
|
||||||
-- fun
|
-- fun
|
||||||
-- thigh_N : N ;
|
-- thigh_N : N ;
|
||||||
-- sailor_N : N ;
|
-- sailor_N : N ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
-- GrammarMlt.gf: common syntax
|
-- GrammarMlt.gf: common syntax
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
--# -path=.:../abstract:../common:../prelude
|
--# -path=.:../abstract:../common:../prelude
|
||||||
@@ -22,6 +22,6 @@ concrete GrammarMlt of Grammar =
|
|||||||
IdiomMlt
|
IdiomMlt
|
||||||
** {
|
** {
|
||||||
|
|
||||||
flags coding=utf8 ;
|
flags coding=utf8 ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
-- IdiomMlt.gf: idiomatic expressions
|
-- IdiomMlt.gf: idiomatic expressions
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
concrete IdiomMlt of Idiom = CatMlt ** open Prelude, ResMlt in {
|
concrete IdiomMlt of Idiom = CatMlt ** open Prelude, ResMlt in {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
-- IrregMlt.gf: irregularly inflected words (mostly verbs)
|
-- IrregMlt.gf: irregularly inflected words (mostly verbs)
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
--# -path=.:prelude:../abstract:../common
|
--# -path=.:prelude:../abstract:../common
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
-- IrregMltAbs.gf: abstract grammar for irregularly inflected words (mostly verbs)
|
-- IrregMltAbs.gf: abstract grammar for irregularly inflected words (mostly verbs)
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
--# -path=.:prelude:../abstract:../common
|
--# -path=.:prelude:../abstract:../common
|
||||||
@@ -11,9 +11,9 @@ abstract IrregMltAbs = Cat ** {
|
|||||||
{-
|
{-
|
||||||
fun
|
fun
|
||||||
|
|
||||||
awake_V : V ;
|
awake_V : V ;
|
||||||
bear_V : V ;
|
bear_V : V ;
|
||||||
beat_V : V ;
|
beat_V : V ;
|
||||||
-}
|
-}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
-- LangMlt.gf: common syntax and lexicon
|
-- LangMlt.gf: common syntax and lexicon
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
--# -path=.:../abstract:../common:../prelude
|
--# -path=.:../abstract:../common:../prelude
|
||||||
|
|||||||
@@ -1,396 +1,396 @@
|
|||||||
-- LexiconMlt.gf: test lexicon of 300 content words
|
-- LexiconMlt.gf: test lexicon of 300 content words
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
--# -path=.:../abstract:../common:../prelude
|
--# -path=.:../abstract:../common:../prelude
|
||||||
|
|
||||||
concrete LexiconMlt of Lexicon = CatMlt **
|
concrete LexiconMlt of Lexicon = CatMlt **
|
||||||
--open ParadigmsMlt, ResMlt, Prelude in {
|
--open ParadigmsMlt, ResMlt, Prelude in {
|
||||||
open ParadigmsMlt, IrregMlt, ResMlt in {
|
open ParadigmsMlt, IrregMlt, ResMlt in {
|
||||||
|
|
||||||
flags optimize=values ; coding=utf8 ;
|
flags optimize=values ; coding=utf8 ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
|
|
||||||
{- ===== My Verbs ===== -}
|
{- ===== My Verbs ===== -}
|
||||||
|
|
||||||
{-
|
{-
|
||||||
cut_V2 = mkVerb "qata'" "aqta'" "aqtgħu" ;
|
cut_V2 = mkVerb "qata'" "aqta'" "aqtgħu" ;
|
||||||
write_V2 = mkVerb "kiteb" ;
|
write_V2 = mkVerb "kiteb" ;
|
||||||
break_V2 = mkVerb "kiser" ;
|
break_V2 = mkVerb "kiser" ;
|
||||||
find_V2 = mkVerb "sab" ;
|
find_V2 = mkVerb "sab" ;
|
||||||
throw_V2 = mkVerb "tefa'" ;
|
throw_V2 = mkVerb "tefa'" ;
|
||||||
hear_V2 = mkVerb "sama'" "isma'" "isimgħu" ;
|
hear_V2 = mkVerb "sama'" "isma'" "isimgħu" ;
|
||||||
fear_V2 = mkVerb "beża'" ;
|
fear_V2 = mkVerb "beża'" ;
|
||||||
pray_V = mkVerb "talab" "itlob" "itolbu" ;
|
pray_V = mkVerb "talab" "itlob" "itolbu" ;
|
||||||
understand_V2 = mkVerb "fehem" ;
|
understand_V2 = mkVerb "fehem" ;
|
||||||
pull_V2 = mkVerb "ġibed" ;
|
pull_V2 = mkVerb "ġibed" ;
|
||||||
walk_V = mkVerb "mexa'" ;
|
walk_V = mkVerb "mexa'" ;
|
||||||
-}
|
-}
|
||||||
-- die_V = mkVerb "miet" ;
|
-- die_V = mkVerb "miet" ;
|
||||||
die_V = mkVerb "qarmeċ" ;
|
die_V = mkVerb "qarmeċ" ;
|
||||||
|
|
||||||
|
|
||||||
{- ===== My Nouns ===== -}
|
{- ===== My Nouns ===== -}
|
||||||
|
|
||||||
--airplane_N = mkNoun "ajruplan" Masc ;
|
--airplane_N = mkNoun "ajruplan" Masc ;
|
||||||
airplane_N = mkNoun "ajruplan" ;
|
airplane_N = mkNoun "ajruplan" ;
|
||||||
--apple_N = mkNoun "tuffieħa" Fem ;
|
--apple_N = mkNoun "tuffieħa" Fem ;
|
||||||
apple_N = mkNounColl "tuffieħ" ;
|
apple_N = mkNounColl "tuffieħ" ;
|
||||||
|
|
||||||
bench_N = mkNoun "bank" "bankijiet" ;
|
bench_N = mkNoun "bank" "bankijiet" ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{- ===== Required by RGL ===== -}
|
{- ===== Required by RGL ===== -}
|
||||||
|
|
||||||
|
|
||||||
-- add_V3
|
-- add_V3
|
||||||
-- alas_Interj
|
-- alas_Interj
|
||||||
-- already_Adv
|
-- already_Adv
|
||||||
animal_N = mkNoun "annimal" ;
|
animal_N = mkNoun "annimal" ;
|
||||||
-- answer_V2S
|
-- answer_V2S
|
||||||
apartment_N = mkNoun "appartament" ;
|
apartment_N = mkNoun "appartament" ;
|
||||||
art_N = mkNounNoPlural "arti" Fem ;
|
art_N = mkNounNoPlural "arti" Fem ;
|
||||||
-- ashes_N = mkNoun "rmied" ;
|
-- ashes_N = mkNoun "rmied" ;
|
||||||
-- ask_V2Q
|
-- ask_V2Q
|
||||||
baby_N = mkNoun "tarbija" "trabi" ;
|
baby_N = mkNoun "tarbija" "trabi" ;
|
||||||
back_N = mkNoun "dahar" "dhur" ;
|
back_N = mkNoun "dahar" "dhur" ;
|
||||||
-- bad_A
|
-- bad_A
|
||||||
bank_N = mkNoun "bank" "bankijiet" ; -- BANEK is for lotto booths!
|
bank_N = mkNoun "bank" "bankijiet" ; -- BANEK is for lotto booths!
|
||||||
bark_N = mkNoun "qoxra" "qoxriet" ;
|
bark_N = mkNoun "qoxra" "qoxriet" ;
|
||||||
-- beautiful_A
|
-- beautiful_A
|
||||||
-- become_VA
|
-- become_VA
|
||||||
beer_N = mkNoun "birra" "birer" ;
|
beer_N = mkNoun "birra" "birer" ;
|
||||||
-- beg_V2V
|
-- beg_V2V
|
||||||
belly_N = mkNoun "żaqq" "żquq" ;
|
belly_N = mkNoun "żaqq" "żquq" ;
|
||||||
-- big_A
|
-- big_A
|
||||||
bike_N = mkNoun "rota" ;
|
bike_N = mkNoun "rota" ;
|
||||||
bird_N = mkNoun "għasfur" "għasafar" ; -- what about GĦASFURA?
|
bird_N = mkNoun "għasfur" "għasafar" ; -- what about GĦASFURA?
|
||||||
-- bite_V2
|
-- bite_V2
|
||||||
-- black_A
|
-- black_A
|
||||||
blood_N = mkNoun [] "demm" [] "dmija" [] ;
|
blood_N = mkNoun [] "demm" [] "dmija" [] ;
|
||||||
-- blow_V
|
-- blow_V
|
||||||
-- blue_A
|
-- blue_A
|
||||||
boat_N = mkNoun "dgħajsa" "dgħajjes" ;
|
boat_N = mkNoun "dgħajsa" "dgħajjes" ;
|
||||||
bone_N = mkNounColl "għadam" ;
|
bone_N = mkNounColl "għadam" ;
|
||||||
book_N = mkNoun "ktieb" "kotba" ;
|
book_N = mkNoun "ktieb" "kotba" ;
|
||||||
boot_N = mkNoun "żarbun" "żraben" ; -- what about ŻARBUNA?
|
boot_N = mkNoun "żarbun" "żraben" ; -- what about ŻARBUNA?
|
||||||
boss_N = mkNoun "mgħallem" "mgħallmin" ;
|
boss_N = mkNoun "mgħallem" "mgħallmin" ;
|
||||||
boy_N = mkNoun "tifel" "tfal" ;
|
boy_N = mkNoun "tifel" "tfal" ;
|
||||||
bread_N = mkNounColl "ħobż" ;
|
bread_N = mkNounColl "ħobż" ;
|
||||||
-- break_V2
|
-- break_V2
|
||||||
breast_N = mkNoun "sider" "sdur" ; -- also ISDRA
|
breast_N = mkNoun "sider" "sdur" ; -- also ISDRA
|
||||||
-- breathe_V
|
-- breathe_V
|
||||||
-- broad_A
|
-- broad_A
|
||||||
brother_N2 = mkNoun "ħu" "aħwa" ;
|
brother_N2 = mkNoun "ħu" "aħwa" ;
|
||||||
-- brown_A
|
-- brown_A
|
||||||
-- burn_V
|
-- burn_V
|
||||||
butter_N = mkNoun [] "butir" [] "butirijiet" [] ;
|
butter_N = mkNoun [] "butir" [] "butirijiet" [] ;
|
||||||
-- buy_V2
|
-- buy_V2
|
||||||
camera_N = mkNoun "kamera" "kameras" ;
|
camera_N = mkNoun "kamera" "kameras" ;
|
||||||
cap_N = mkNoun "beritta" ;
|
cap_N = mkNoun "beritta" ;
|
||||||
car_N = mkNoun "karozza" ;
|
car_N = mkNoun "karozza" ;
|
||||||
carpet_N = mkNoun "tapit" ; -- TAPITI or TWAPET ?
|
carpet_N = mkNoun "tapit" ; -- TAPITI or TWAPET ?
|
||||||
cat_N = mkNoun "qattus" "qtates" ; -- what about QATTUSA ?
|
cat_N = mkNoun "qattus" "qtates" ; -- what about QATTUSA ?
|
||||||
ceiling_N = mkNoun "saqaf" "soqfa";
|
ceiling_N = mkNoun "saqaf" "soqfa";
|
||||||
chair_N = mkNoun "siġġu" "siġġijiet" ;
|
chair_N = mkNoun "siġġu" "siġġijiet" ;
|
||||||
cheese_N = mkNounColl "ġobon" ;
|
cheese_N = mkNounColl "ġobon" ;
|
||||||
-- child_N = mkNoun "tfajjel" ; -- Not an easy one...
|
-- child_N = mkNoun "tfajjel" ; -- Not an easy one...
|
||||||
church_N = mkNoun "knisja" "knejjes" ;
|
church_N = mkNoun "knisja" "knejjes" ;
|
||||||
city_N = mkNoun "belt" "bliet" Fem ;
|
city_N = mkNoun "belt" "bliet" Fem ;
|
||||||
-- clean_A
|
-- clean_A
|
||||||
-- clever_A
|
-- clever_A
|
||||||
-- close_V2
|
-- close_V2
|
||||||
cloud_N = mkNounColl "sħab" ;
|
cloud_N = mkNounColl "sħab" ;
|
||||||
coat_N = mkNoun "kowt" "kowtijiet" ;
|
coat_N = mkNoun "kowt" "kowtijiet" ;
|
||||||
-- cold_A
|
-- cold_A
|
||||||
-- come_V
|
-- come_V
|
||||||
computer_N = mkNoun "kompjuter" "kompjuters" ;
|
computer_N = mkNoun "kompjuter" "kompjuters" ;
|
||||||
-- correct_A
|
-- correct_A
|
||||||
-- count_V2
|
-- count_V2
|
||||||
country_N = mkNoun "pajjiż" ;
|
country_N = mkNoun "pajjiż" ;
|
||||||
cousin_N = mkNoun "kuġin" ;
|
cousin_N = mkNoun "kuġin" ;
|
||||||
cow_N = mkNoun "baqra" "baqar" "baqartejn" [] [] ;
|
cow_N = mkNoun "baqra" "baqar" "baqartejn" [] [] ;
|
||||||
-- cut_V2
|
-- cut_V2
|
||||||
day_N = mkNoun "ġurnata" "ġranet" ;
|
day_N = mkNoun "ġurnata" "ġranet" ;
|
||||||
-- dig_V
|
-- dig_V
|
||||||
-- dirty_A
|
-- dirty_A
|
||||||
distance_N3 = mkNoun "distanza" ;
|
distance_N3 = mkNoun "distanza" ;
|
||||||
-- do_V2
|
-- do_V2
|
||||||
doctor_N = mkNoun "tabib" "tobba" ; -- what about TABIBA ?
|
doctor_N = mkNoun "tabib" "tobba" ; -- what about TABIBA ?
|
||||||
dog_N = mkNoun "kelb" "klieb" ;
|
dog_N = mkNoun "kelb" "klieb" ;
|
||||||
door_N = mkNoun "bieb" "bibien" ; -- what about BIEBA ?
|
door_N = mkNoun "bieb" "bibien" ; -- what about BIEBA ?
|
||||||
-- drink_V2
|
-- drink_V2
|
||||||
-- dry_A
|
-- dry_A
|
||||||
-- dull_A
|
-- dull_A
|
||||||
dust_N = mkNounColl "trab" ; -- not sure but sounds right
|
dust_N = mkNounColl "trab" ; -- not sure but sounds right
|
||||||
ear_N = mkNounDual "widna" ;
|
ear_N = mkNounDual "widna" ;
|
||||||
earth_N = mkNoun "art" "artijiet" Fem ;
|
earth_N = mkNoun "art" "artijiet" Fem ;
|
||||||
-- easy_A2V
|
-- easy_A2V
|
||||||
-- eat_V2
|
-- eat_V2
|
||||||
egg_N = mkNounColl "bajd" ;
|
egg_N = mkNounColl "bajd" ;
|
||||||
-- empty_A
|
-- empty_A
|
||||||
enemy_N = mkNoun "għadu" "għedewwa" ;
|
enemy_N = mkNoun "għadu" "għedewwa" ;
|
||||||
eye_N = mkNounWorst "għajn" [] "għajnejn" "għajnejn" "għejun" Fem ;
|
eye_N = mkNounWorst "għajn" [] "għajnejn" "għajnejn" "għejun" Fem ;
|
||||||
factory_N = mkNoun "fabbrika" ;
|
factory_N = mkNoun "fabbrika" ;
|
||||||
-- fall_V
|
-- fall_V
|
||||||
-- far_Adv
|
-- far_Adv
|
||||||
fat_N = mkNounColl "xaħam" ;
|
fat_N = mkNounColl "xaħam" ;
|
||||||
father_N2 = mkNoun "missier" "missierijiet" ;
|
father_N2 = mkNoun "missier" "missierijiet" ;
|
||||||
-- fear_V2
|
-- fear_V2
|
||||||
-- fear_VS
|
-- fear_VS
|
||||||
feather_N = mkNounColl "rix" ;
|
feather_N = mkNounColl "rix" ;
|
||||||
-- fight_V2
|
-- fight_V2
|
||||||
-- find_V2
|
-- find_V2
|
||||||
fingernail_N = mkNoun "difer" [] "difrejn" "dwiefer" [] ;
|
fingernail_N = mkNoun "difer" [] "difrejn" "dwiefer" [] ;
|
||||||
fire_N = mkNoun "nar" "nirien" ;
|
fire_N = mkNoun "nar" "nirien" ;
|
||||||
fish_N = mkNounColl "ħut" ;
|
fish_N = mkNounColl "ħut" ;
|
||||||
-- float_V
|
-- float_V
|
||||||
earth_N = mkNoun "art" "artijiet" Fem ;
|
earth_N = mkNoun "art" "artijiet" Fem ;
|
||||||
-- flow_V
|
-- flow_V
|
||||||
flower_N = mkNoun "fjura" ;
|
flower_N = mkNoun "fjura" ;
|
||||||
-- fly_V
|
-- fly_V
|
||||||
fog_N = mkNoun [] "ċpar" [] [] [] ;
|
fog_N = mkNoun [] "ċpar" [] [] [] ;
|
||||||
foot_N = mkNounWorst "sieq" [] "saqajn" "saqajn" [] Fem ;
|
foot_N = mkNounWorst "sieq" [] "saqajn" "saqajn" [] Fem ;
|
||||||
forest_N = mkNoun "foresta" ; -- also MASĠAR
|
forest_N = mkNoun "foresta" ; -- also MASĠAR
|
||||||
-- forget_V2
|
-- forget_V2
|
||||||
-- freeze_V
|
-- freeze_V
|
||||||
fridge_N = mkNoun "friġġ" "friġġijiet" ;
|
fridge_N = mkNoun "friġġ" "friġġijiet" ;
|
||||||
friend_N = mkNoun "ħabib" "ħbieb" ;
|
friend_N = mkNoun "ħabib" "ħbieb" ;
|
||||||
fruit_N = mkNounColl "frott" ;
|
fruit_N = mkNounColl "frott" ;
|
||||||
-- full_A
|
-- full_A
|
||||||
-- fun_AV
|
-- fun_AV
|
||||||
garden_N = mkNoun "ġnien" "ġonna" ;
|
garden_N = mkNoun "ġnien" "ġonna" ;
|
||||||
girl_N = mkNoun "tifla" "tfal" ;
|
girl_N = mkNoun "tifla" "tfal" ;
|
||||||
-- give_V3
|
-- give_V3
|
||||||
glove_N = mkNoun "ingwanta" ;
|
glove_N = mkNoun "ingwanta" ;
|
||||||
-- go_V
|
-- go_V
|
||||||
gold_N = mkNoun [] "deheb" [] "dehbijiet" [] ;
|
gold_N = mkNoun [] "deheb" [] "dehbijiet" [] ;
|
||||||
-- good_A
|
-- good_A
|
||||||
grammar_N = mkNoun "grammatika" ;
|
grammar_N = mkNoun "grammatika" ;
|
||||||
grass_N = mkNounWorst "ħaxixa" "ħaxix" [] [] "ħxejjex" Masc ; -- Dict says ĦAXIX = n.koll.m.s., f. -a, pl.ind. ĦXEJJEX
|
grass_N = mkNounWorst "ħaxixa" "ħaxix" [] [] "ħxejjex" Masc ; -- Dict says ĦAXIX = n.koll.m.s., f. -a, pl.ind. ĦXEJJEX
|
||||||
-- green_A
|
-- green_A
|
||||||
guts_N = mkNoun "musrana" [] [] "musraniet" "msaren" ;
|
guts_N = mkNoun "musrana" [] [] "musraniet" "msaren" ;
|
||||||
hair_N = mkNoun "xagħar" [] [] "xagħariet" "xgħur" ;
|
hair_N = mkNoun "xagħar" [] [] "xagħariet" "xgħur" ;
|
||||||
hand_N = mkNounWorst "id" [] "idejn" "idejn" [] Fem ;
|
hand_N = mkNounWorst "id" [] "idejn" "idejn" [] Fem ;
|
||||||
harbour_N = mkNoun "port" "portijiet" ;
|
harbour_N = mkNoun "port" "portijiet" ;
|
||||||
hat_N = mkNoun "kappell" "kpiepel" ;
|
hat_N = mkNoun "kappell" "kpiepel" ;
|
||||||
-- hate_V2
|
-- hate_V2
|
||||||
head_N = mkNoun "ras" "rjus" Fem ;
|
head_N = mkNoun "ras" "rjus" Fem ;
|
||||||
-- hear_V2
|
-- hear_V2
|
||||||
heart_N = mkNoun "qalb" "qlub" Fem ;
|
heart_N = mkNoun "qalb" "qlub" Fem ;
|
||||||
-- heavy_A
|
-- heavy_A
|
||||||
hill_N = mkNoun "għolja" "għoljiet" ;
|
hill_N = mkNoun "għolja" "għoljiet" ;
|
||||||
-- hit_V2
|
-- hit_V2
|
||||||
-- hold_V2
|
-- hold_V2
|
||||||
-- hope_VS
|
-- hope_VS
|
||||||
horn_N = mkNoun "ħorn" "ħornijiet" ;
|
horn_N = mkNoun "ħorn" "ħornijiet" ;
|
||||||
horse_N = mkNoun "żiemel" "żwiemel" ;
|
horse_N = mkNoun "żiemel" "żwiemel" ;
|
||||||
-- hot_A
|
-- hot_A
|
||||||
house_N = mkNoun "dar" "djar" Fem ;
|
house_N = mkNoun "dar" "djar" Fem ;
|
||||||
-- hunt_V2
|
-- hunt_V2
|
||||||
husband_N = mkNoun "raġel" "rġiel" ;
|
husband_N = mkNoun "raġel" "rġiel" ;
|
||||||
ice_N = mkNoun "silġ" "silġiet" ;
|
ice_N = mkNoun "silġ" "silġiet" ;
|
||||||
-- important_A
|
-- important_A
|
||||||
industry_N = mkNoun "industrija" ;
|
industry_N = mkNoun "industrija" ;
|
||||||
iron_N = mkNounWorst "ħadida" "ħadid" [] "ħadidiet" "ħdejjed" Masc ;
|
iron_N = mkNounWorst "ħadida" "ħadid" [] "ħadidiet" "ħdejjed" Masc ;
|
||||||
-- john_PN
|
-- john_PN
|
||||||
-- jump_V
|
-- jump_V
|
||||||
-- kill_V2
|
-- kill_V2
|
||||||
king_N = mkNoun "re" "rejjiet" ;
|
king_N = mkNoun "re" "rejjiet" ;
|
||||||
knee_N = mkNoun "rkoppa" [] "rkopptejn" "rkoppiet" [] ; -- TODO use mkNounDual
|
knee_N = mkNoun "rkoppa" [] "rkopptejn" "rkoppiet" [] ; -- TODO use mkNounDual
|
||||||
-- know_V2
|
-- know_V2
|
||||||
-- know_VQ
|
-- know_VQ
|
||||||
-- know_VS
|
-- know_VS
|
||||||
lake_N = mkNoun "għadira" "għadajjar" ;
|
lake_N = mkNoun "għadira" "għadajjar" ;
|
||||||
lamp_N = mkNoun "lampa" ;
|
lamp_N = mkNoun "lampa" ;
|
||||||
language_N = mkNoun "lingwa" ; -- lsien?
|
language_N = mkNoun "lingwa" ; -- lsien?
|
||||||
-- laugh_V
|
-- laugh_V
|
||||||
leaf_N = mkNoun "werqa" "weraq" "werqtejn" "werqiet" [] ;
|
leaf_N = mkNoun "werqa" "weraq" "werqtejn" "werqiet" [] ;
|
||||||
-- learn_V2
|
-- learn_V2
|
||||||
leather_N = mkNoun "ġilda" "ġild" [] "ġildiet" "ġlud" ; -- mkNounColl "ġild" ;
|
leather_N = mkNoun "ġilda" "ġild" [] "ġildiet" "ġlud" ; -- mkNounColl "ġild" ;
|
||||||
-- leave_V2
|
-- leave_V2
|
||||||
-- left_Ord
|
-- left_Ord
|
||||||
leg_N = mkNoun "riġel" [] "riġlejn" [] [] ; -- sieq?
|
leg_N = mkNoun "riġel" [] "riġlejn" [] [] ; -- sieq?
|
||||||
-- lie_V
|
-- lie_V
|
||||||
-- like_V2
|
-- like_V2
|
||||||
-- listen_V2
|
-- listen_V2
|
||||||
-- live_V
|
-- live_V
|
||||||
liver_N = mkNoun "fwied" [] [] [] "ifdwa" ;
|
liver_N = mkNoun "fwied" [] [] [] "ifdwa" ;
|
||||||
-- long_A
|
-- long_A
|
||||||
-- lose_V2
|
-- lose_V2
|
||||||
louse_N = mkNoun "qamla" "qamliet" ;
|
louse_N = mkNoun "qamla" "qamliet" ;
|
||||||
love_N = mkNoun "mħabba" "mħabbiet" ; -- hmmm
|
love_N = mkNoun "mħabba" "mħabbiet" ; -- hmmm
|
||||||
-- love_V2
|
-- love_V2
|
||||||
man_N = mkNoun "raġel" "rġiel" ;
|
man_N = mkNoun "raġel" "rġiel" ;
|
||||||
-- married_A2
|
-- married_A2
|
||||||
meat_N = mkNoun "laħam" [] [] "laħmiet" "laħmijiet" ;
|
meat_N = mkNoun "laħam" [] [] "laħmiet" "laħmijiet" ;
|
||||||
milk_N = mkNoun [] "ħalib" [] "ħalibijiet" "ħlejjeb" ;
|
milk_N = mkNoun [] "ħalib" [] "ħalibijiet" "ħlejjeb" ;
|
||||||
moon_N = mkNoun "qamar" "oqmra" ; -- qmura?
|
moon_N = mkNoun "qamar" "oqmra" ; -- qmura?
|
||||||
mother_N2 = mkNoun "omm" "ommijiet" Fem ;
|
mother_N2 = mkNoun "omm" "ommijiet" Fem ;
|
||||||
mountain_N = mkNoun "muntanja" ;
|
mountain_N = mkNoun "muntanja" ;
|
||||||
mouth_N = mkNoun "ħalq" "ħluq" ;
|
mouth_N = mkNoun "ħalq" "ħluq" ;
|
||||||
music_N = mkNoun "musika" ; -- plural?
|
music_N = mkNoun "musika" ; -- plural?
|
||||||
name_N = mkNoun "isem" "ismijiet" ;
|
name_N = mkNoun "isem" "ismijiet" ;
|
||||||
-- narrow_A
|
-- narrow_A
|
||||||
-- near_A
|
-- near_A
|
||||||
neck_N = mkNoun "għonq" "għenuq" ;
|
neck_N = mkNoun "għonq" "għenuq" ;
|
||||||
-- new_A
|
-- new_A
|
||||||
newspaper_N = mkNoun "gazzetta" ;
|
newspaper_N = mkNoun "gazzetta" ;
|
||||||
night_N = mkNoun "lejl" "ljieli" ;
|
night_N = mkNoun "lejl" "ljieli" ;
|
||||||
nose_N = mkNoun "mnieħer" "mniħrijiet" ;
|
nose_N = mkNoun "mnieħer" "mniħrijiet" ;
|
||||||
-- now_Adv
|
-- now_Adv
|
||||||
number_N = mkNoun "numru" ;
|
number_N = mkNoun "numru" ;
|
||||||
oil_N = mkNoun "żejt" "żjut" ;
|
oil_N = mkNoun "żejt" "żjut" ;
|
||||||
-- old_A
|
-- old_A
|
||||||
-- open_V2
|
-- open_V2
|
||||||
-- paint_V2A
|
-- paint_V2A
|
||||||
paper_N = mkNoun "karta" ;
|
paper_N = mkNoun "karta" ;
|
||||||
-- paris_PN
|
-- paris_PN
|
||||||
peace_N = mkNoun "paċi" "paċijiet" Fem ;
|
peace_N = mkNoun "paċi" "paċijiet" Fem ;
|
||||||
pen_N = mkNoun "pinna" "pinen" ;
|
pen_N = mkNoun "pinna" "pinen" ;
|
||||||
person_N = mkNounWorst [] "persuna" [] "persuni" [] Masc ;
|
person_N = mkNounWorst [] "persuna" [] "persuni" [] Masc ;
|
||||||
planet_N = mkNoun "pjaneta" ;
|
planet_N = mkNoun "pjaneta" ;
|
||||||
plastic_N = mkNounNoPlural "plastik" ;
|
plastic_N = mkNounNoPlural "plastik" ;
|
||||||
-- play_V
|
-- play_V
|
||||||
-- play_V2
|
-- play_V2
|
||||||
policeman_N = mkNounNoPlural "pulizija" ;
|
policeman_N = mkNounNoPlural "pulizija" ;
|
||||||
priest_N = mkNoun "qassis" "qassisin" ;
|
priest_N = mkNoun "qassis" "qassisin" ;
|
||||||
-- probable_AS
|
-- probable_AS
|
||||||
-- pull_V2
|
-- pull_V2
|
||||||
-- push_V2
|
-- push_V2
|
||||||
-- put_V2
|
-- put_V2
|
||||||
queen_N = mkNoun "reġina" "rġejjen" ;
|
queen_N = mkNoun "reġina" "rġejjen" ;
|
||||||
question_N = mkNoun "mistoqsija" "mistoqsijiet" ; -- domanda?
|
question_N = mkNoun "mistoqsija" "mistoqsijiet" ; -- domanda?
|
||||||
radio_N = mkNoun "radju" "radjijiet" ;
|
radio_N = mkNoun "radju" "radjijiet" ;
|
||||||
rain_N = mkNounNoPlural "xita" ;
|
rain_N = mkNounNoPlural "xita" ;
|
||||||
-- rain_V0
|
-- rain_V0
|
||||||
-- read_V2
|
-- read_V2
|
||||||
-- ready_A
|
-- ready_A
|
||||||
reason_N = mkNoun "raġun" "raġunijiet" ;
|
reason_N = mkNoun "raġun" "raġunijiet" ;
|
||||||
-- red_A
|
-- red_A
|
||||||
religion_N = mkNoun "reliġjon" "reliġjonijiet" ;
|
religion_N = mkNoun "reliġjon" "reliġjonijiet" ;
|
||||||
restaurant_N = mkNoun "restorant" ;
|
restaurant_N = mkNoun "restorant" ;
|
||||||
-- right_Ord
|
-- right_Ord
|
||||||
river_N = mkNoun "xmara" "xmajjar" ;
|
river_N = mkNoun "xmara" "xmajjar" ;
|
||||||
road_N = mkNounWorst "triq" [] [] "triqat" "toroq" Fem ;
|
road_N = mkNounWorst "triq" [] [] "triqat" "toroq" Fem ;
|
||||||
rock_N = mkNoun "blata" "blat" [] "blatiet" "blajjiet" ; -- in dictionary BLAT and BLATA are separate!
|
rock_N = mkNoun "blata" "blat" [] "blatiet" "blajjiet" ; -- in dictionary BLAT and BLATA are separate!
|
||||||
roof_N = mkNoun "saqaf" "soqfa" ;
|
roof_N = mkNoun "saqaf" "soqfa" ;
|
||||||
root_N = mkNoun "qħerq" "qħeruq" ;
|
root_N = mkNoun "qħerq" "qħeruq" ;
|
||||||
rope_N = mkNoun "ħabel" "ħbula" ;
|
rope_N = mkNoun "ħabel" "ħbula" ;
|
||||||
-- rotten_A
|
-- rotten_A
|
||||||
-- round_A
|
-- round_A
|
||||||
-- rub_V2
|
-- rub_V2
|
||||||
rubber_N = mkNoun "gomma" "gomom" ;
|
rubber_N = mkNoun "gomma" "gomom" ;
|
||||||
rule_N = mkNoun "regola" ;
|
rule_N = mkNoun "regola" ;
|
||||||
-- run_V
|
-- run_V
|
||||||
salt_N = mkNoun "melħ" "melħiet" ;
|
salt_N = mkNoun "melħ" "melħiet" ;
|
||||||
sand_N = mkNoun "ramla" "ramel" [] "ramliet" "rmiel" ;
|
sand_N = mkNoun "ramla" "ramel" [] "ramliet" "rmiel" ;
|
||||||
-- say_VS
|
-- say_VS
|
||||||
school_N = mkNoun "skola" "skejjel" ;
|
school_N = mkNoun "skola" "skejjel" ;
|
||||||
science_N = mkNoun "xjenza" ;
|
science_N = mkNoun "xjenza" ;
|
||||||
-- scratch_V2
|
-- scratch_V2
|
||||||
sea_N = mkNoun "baħar" [] "baħrejn" "ibħra" [] ;
|
sea_N = mkNoun "baħar" [] "baħrejn" "ibħra" [] ;
|
||||||
-- see_V2
|
-- see_V2
|
||||||
seed_N = mkNoun "żerriegħa" "żerrigħat" ;
|
seed_N = mkNoun "żerriegħa" "żerrigħat" ;
|
||||||
-- seek_V2
|
-- seek_V2
|
||||||
-- sell_V3
|
-- sell_V3
|
||||||
-- send_V3
|
-- send_V3
|
||||||
-- sew_V
|
-- sew_V
|
||||||
-- sharp_A
|
-- sharp_A
|
||||||
sheep_N = mkNoun "nagħġa" "nagħaġ" [] "nagħġiet" [] ;
|
sheep_N = mkNoun "nagħġa" "nagħaġ" [] "nagħġiet" [] ;
|
||||||
ship_N = mkNoun "vapur" ;
|
ship_N = mkNoun "vapur" ;
|
||||||
shirt_N = mkNoun "qmis" "qomos" Fem ;
|
shirt_N = mkNoun "qmis" "qomos" Fem ;
|
||||||
shoe_N = mkNoun "żarbun" "żraben" ;
|
shoe_N = mkNoun "żarbun" "żraben" ;
|
||||||
shop_N = mkNoun "ħanut" "ħwienet" ;
|
shop_N = mkNoun "ħanut" "ħwienet" ;
|
||||||
-- short_A
|
-- short_A
|
||||||
silver_N = mkNoun "fidda" "fided" ;
|
silver_N = mkNoun "fidda" "fided" ;
|
||||||
-- sing_V
|
-- sing_V
|
||||||
sister_N = mkNoun "oħt" "aħwa" Fem ;
|
sister_N = mkNoun "oħt" "aħwa" Fem ;
|
||||||
-- sit_V
|
-- sit_V
|
||||||
skin_N = mkNoun "ġilda" "ġildiet" ;
|
skin_N = mkNoun "ġilda" "ġildiet" ;
|
||||||
sky_N = mkNoun "sema" "smewwiet" Masc ;
|
sky_N = mkNoun "sema" "smewwiet" Masc ;
|
||||||
-- sleep_V
|
-- sleep_V
|
||||||
-- small_A
|
-- small_A
|
||||||
-- smell_V
|
-- smell_V
|
||||||
smoke_N = mkNoun "duħħan" "dħaħen" ;
|
smoke_N = mkNoun "duħħan" "dħaħen" ;
|
||||||
-- smooth_A
|
-- smooth_A
|
||||||
snake_N = mkNoun "serp" "sriep" ;
|
snake_N = mkNoun "serp" "sriep" ;
|
||||||
snow_N = mkNoun [] "borra" [] [] [] ;
|
snow_N = mkNoun [] "borra" [] [] [] ;
|
||||||
sock_N = mkNoun "kalzetta" ;
|
sock_N = mkNoun "kalzetta" ;
|
||||||
song_N = mkNoun "kanzunetta" ;
|
song_N = mkNoun "kanzunetta" ;
|
||||||
-- speak_V2
|
-- speak_V2
|
||||||
-- spit_V
|
-- spit_V
|
||||||
-- split_V2
|
-- split_V2
|
||||||
-- squeeze_V2
|
-- squeeze_V2
|
||||||
-- stab_V2
|
-- stab_V2
|
||||||
-- stand_V
|
-- stand_V
|
||||||
star_N = mkNoun "stilla" "stilel" ;
|
star_N = mkNoun "stilla" "stilel" ;
|
||||||
steel_N = mkNounNoPlural "azzar" ;
|
steel_N = mkNounNoPlural "azzar" ;
|
||||||
stick_N = mkNoun "lasta" ;
|
stick_N = mkNoun "lasta" ;
|
||||||
stone_N = mkNoun "ġebla" "ġebel" [] "ġebliet" "ġbiel" ;
|
stone_N = mkNoun "ġebla" "ġebel" [] "ġebliet" "ġbiel" ;
|
||||||
-- stop_V
|
-- stop_V
|
||||||
stove_N = mkNoun "kuker" "kukers" ; -- fuklar?
|
stove_N = mkNoun "kuker" "kukers" ; -- fuklar?
|
||||||
-- straight_A
|
-- straight_A
|
||||||
student_N = mkNoun "student" ;
|
student_N = mkNoun "student" ;
|
||||||
-- stupid_A
|
-- stupid_A
|
||||||
-- suck_V2
|
-- suck_V2
|
||||||
sun_N = mkNoun "xemx" "xmux" Fem ;
|
sun_N = mkNoun "xemx" "xmux" Fem ;
|
||||||
-- swell_V
|
-- swell_V
|
||||||
-- swim_V
|
-- swim_V
|
||||||
-- switch8off_V2
|
-- switch8off_V2
|
||||||
-- switch8on_V2
|
-- switch8on_V2
|
||||||
table_N = mkNoun "mejda" "mwejjed" ;
|
table_N = mkNoun "mejda" "mwejjed" ;
|
||||||
tail_N = mkNoun "denb" "dnieb" ;
|
tail_N = mkNoun "denb" "dnieb" ;
|
||||||
-- talk_V3
|
-- talk_V3
|
||||||
-- teach_V2
|
-- teach_V2
|
||||||
teacher_N = mkNoun "għalliem" "għalliema" ; -- għalliema ?
|
teacher_N = mkNoun "għalliem" "għalliema" ; -- għalliema ?
|
||||||
television_N = mkNoun "televixin" "televixins" ;
|
television_N = mkNoun "televixin" "televixins" ;
|
||||||
-- thick_A
|
-- thick_A
|
||||||
-- thin_A
|
-- thin_A
|
||||||
-- think_V
|
-- think_V
|
||||||
-- throw_V2
|
-- throw_V2
|
||||||
-- tie_V2
|
-- tie_V2
|
||||||
-- today_Adv
|
-- today_Adv
|
||||||
tongue_N = mkNoun "lsien" "ilsna" ;
|
tongue_N = mkNoun "lsien" "ilsna" ;
|
||||||
tooth_N = mkNoun "sinna" [] [] "sinniet" "snien" ; -- darsa?
|
tooth_N = mkNoun "sinna" [] [] "sinniet" "snien" ; -- darsa?
|
||||||
train_N = mkNoun "ferrovija" ;
|
train_N = mkNoun "ferrovija" ;
|
||||||
-- travel_V
|
-- travel_V
|
||||||
tree_N = mkNoun "siġra" "siġar" [] "siġriet" [] ;
|
tree_N = mkNoun "siġra" "siġar" [] "siġriet" [] ;
|
||||||
-- turn_V
|
-- turn_V
|
||||||
-- ugly_A
|
-- ugly_A
|
||||||
-- uncertain_A
|
-- uncertain_A
|
||||||
-- understand_V2
|
-- understand_V2
|
||||||
university_N = mkNoun "università" "universitàjiet" ;
|
university_N = mkNoun "università" "universitàjiet" ;
|
||||||
village_N = mkNoun "raħal" "rħula" ; -- villaġġ ?
|
village_N = mkNoun "raħal" "rħula" ; -- villaġġ ?
|
||||||
-- vomit_V
|
-- vomit_V
|
||||||
-- wait_V2
|
-- wait_V2
|
||||||
-- walk_V
|
-- walk_V
|
||||||
war_N = mkNoun "gwerra" "gwerrer" ;
|
war_N = mkNoun "gwerra" "gwerrer" ;
|
||||||
-- warm_A
|
-- warm_A
|
||||||
-- wash_V2
|
-- wash_V2
|
||||||
-- watch_V2
|
-- watch_V2
|
||||||
water_N = mkNoun "ilma" "ilmijiet" Masc ;
|
water_N = mkNoun "ilma" "ilmijiet" Masc ;
|
||||||
-- wet_A
|
-- wet_A
|
||||||
-- white_A
|
-- white_A
|
||||||
-- wide_A
|
-- wide_A
|
||||||
wife_N = mkNoun "mara" "nisa" ;
|
wife_N = mkNoun "mara" "nisa" ;
|
||||||
-- win_V2
|
-- win_V2
|
||||||
wind_N = mkNoun "riħ" [] [] "rjieħ" "rjiħat" ;
|
wind_N = mkNoun "riħ" [] [] "rjieħ" "rjiħat" ;
|
||||||
window_N = mkNoun "tieqa" "twieqi" ;
|
window_N = mkNoun "tieqa" "twieqi" ;
|
||||||
wine_N = mkNoun [] "nbid" [] [] "nbejjed" ;
|
wine_N = mkNoun [] "nbid" [] [] "nbejjed" ;
|
||||||
wing_N = mkNoun "ġewnaħ" "ġwienaħ" ;
|
wing_N = mkNoun "ġewnaħ" "ġwienaħ" ;
|
||||||
-- wipe_V2
|
-- wipe_V2
|
||||||
woman_N = mkNoun "mara" "nisa" ;
|
woman_N = mkNoun "mara" "nisa" ;
|
||||||
-- wonder_VQ
|
-- wonder_VQ
|
||||||
wood_N = mkNoun "injam" "injamiet" ;
|
wood_N = mkNoun "injam" "injamiet" ;
|
||||||
worm_N = mkNoun "dudu" "dud" [] "dudiet" "dwied" ; -- duda
|
worm_N = mkNoun "dudu" "dud" [] "dudiet" "dwied" ; -- duda
|
||||||
-- write_V2
|
-- write_V2
|
||||||
year_N = mkNoun "sena" [] "sentejn" "snin" [] ;
|
year_N = mkNoun "sena" [] "sentejn" "snin" [] ;
|
||||||
-- yellow_A
|
-- yellow_A
|
||||||
-- young_A
|
-- young_A
|
||||||
|
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
-- MorphoMlt.gf: morphology
|
-- MorphoMlt.gf: morphology
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
resource MorphoMlt = ResMlt ** open Prelude in {
|
resource MorphoMlt = ResMlt ** open Prelude in {
|
||||||
flags optimize=all ; coding=utf8 ;
|
flags optimize=all ; coding=utf8 ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
-- NounMlt.gf: noun phrases and nouns
|
-- NounMlt.gf: noun phrases and nouns
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude in {
|
concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude in {
|
||||||
flags optimize=noexpand ;
|
flags optimize=noexpand ;
|
||||||
|
|
||||||
-- Card
|
-- Card
|
||||||
-- CN
|
-- CN
|
||||||
|
|||||||
@@ -1,495 +1,491 @@
|
|||||||
-- NumeralMlt.gf: cardinals and ordinals
|
-- NumeralMlt.gf: cardinals and ordinals
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt in {
|
concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt in {
|
||||||
|
|
||||||
flags coding=utf8 ;
|
flags coding=utf8 ;
|
||||||
|
|
||||||
-- Numeral, Digit
|
-- Numeral, Digit
|
||||||
-- Dig, Digits
|
-- Dig, Digits
|
||||||
|
|
||||||
{-
|
{-
|
||||||
-- This code taken from examples/numerals/maltese.sty in GF darcs repository, July 2011.
|
-- This code taken from examples/numerals/maltese.sty in GF darcs repository, July 2011.
|
||||||
-- Original author unknown
|
-- Original author unknown
|
||||||
|
|
||||||
-- ABSTRACT definitions copied from lib/src/abstract/Numeral.gf
|
-- ABSTRACT definitions copied from lib/src/abstract/Numeral.gf
|
||||||
|
|
||||||
-- Numerals from 1 to 999999 in decimal notation
|
-- Numerals from 1 to 999999 in decimal notation
|
||||||
cat
|
cat
|
||||||
Numeral ; -- 0..
|
Numeral ; -- 0..
|
||||||
Digit ; -- 2..9
|
Digit ; -- 2..9
|
||||||
Sub10 ; -- 1..9
|
Sub10 ; -- 1..9
|
||||||
Sub100 ; -- 1..99
|
Sub100 ; -- 1..99
|
||||||
Sub1000 ; -- 1..999
|
Sub1000 ; -- 1..999
|
||||||
Sub1000000 ; -- 1..999999
|
Sub1000000 ; -- 1..999999
|
||||||
|
|
||||||
data
|
data
|
||||||
num : Sub1000000 -> Numeral ;
|
num : Sub1000000 -> Numeral ;
|
||||||
|
|
||||||
n2, n3, n4, n5, n6, n7, n8, n9 : Digit ;
|
n2, n3, n4, n5, n6, n7, n8, n9 : Digit ;
|
||||||
|
|
||||||
pot01 : Sub10 ; -- 1
|
pot01 : Sub10 ; -- 1
|
||||||
pot0 : Digit -> Sub10 ; -- d * 1
|
pot0 : Digit -> Sub10 ; -- d * 1
|
||||||
pot110 : Sub100 ; -- 10
|
pot110 : Sub100 ; -- 10
|
||||||
pot111 : Sub100 ; -- 11
|
pot111 : Sub100 ; -- 11
|
||||||
pot1to19 : Digit -> Sub100 ; -- 10 + d
|
pot1to19 : Digit -> Sub100 ; -- 10 + d
|
||||||
pot0as1 : Sub10 -> Sub100 ; -- coercion of 1..9
|
pot0as1 : Sub10 -> Sub100 ; -- coercion of 1..9
|
||||||
pot1 : Digit -> Sub100 ; -- d * 10
|
pot1 : Digit -> Sub100 ; -- d * 10
|
||||||
pot1plus : Digit -> Sub10 -> Sub100 ; -- d * 10 + n
|
pot1plus : Digit -> Sub10 -> Sub100 ; -- d * 10 + n
|
||||||
pot1as2 : Sub100 -> Sub1000 ; -- coercion of 1..99
|
pot1as2 : Sub100 -> Sub1000 ; -- coercion of 1..99
|
||||||
pot2 : Sub10 -> Sub1000 ; -- m * 100
|
pot2 : Sub10 -> Sub1000 ; -- m * 100
|
||||||
pot2plus : Sub10 -> Sub100 -> Sub1000 ; -- m * 100 + n
|
pot2plus : Sub10 -> Sub100 -> Sub1000 ; -- m * 100 + n
|
||||||
pot2as3 : Sub1000 -> Sub1000000 ; -- coercion of 1..999
|
pot2as3 : Sub1000 -> Sub1000000 ; -- coercion of 1..999
|
||||||
pot3 : Sub1000 -> Sub1000000 ; -- m * 1000
|
pot3 : Sub1000 -> Sub1000000 ; -- m * 1000
|
||||||
pot3plus : Sub1000 -> Sub1000 -> Sub1000000 ; -- m * 1000 + n
|
pot3plus : Sub1000 -> Sub1000 -> Sub1000000 ; -- m * 1000 + n
|
||||||
-}
|
-}
|
||||||
oper
|
oper
|
||||||
Form1 = {
|
Form1 = {
|
||||||
s : DForm => CardOrd => Num_Case => Str ;
|
s : DForm => CardOrd => Num_Case => Str ;
|
||||||
--thou : CardOrd => Str ;
|
--thou : CardOrd => Str ;
|
||||||
thou : { s : Str ; treatAs : DForm } ;
|
thou : { s : Str ; treatAs : DForm } ;
|
||||||
n : Num_Number ;
|
n : Num_Number ;
|
||||||
} ;
|
} ;
|
||||||
Form2 = {
|
Form2 = {
|
||||||
s : CardOrd => Num_Case => Str ;
|
s : CardOrd => Num_Case => Str ;
|
||||||
--thou : CardOrd => Str ;
|
--thou : CardOrd => Str ;
|
||||||
thou : { s : Str ; treatAs : DForm } ;
|
thou : { s : Str ; treatAs : DForm } ;
|
||||||
n : Num_Number ;
|
n : Num_Number ;
|
||||||
f : DForm ;
|
f : DForm ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
lincat
|
lincat
|
||||||
Digit = Form1 ;
|
Digit = Form1 ;
|
||||||
Sub10 = Form1 ;
|
Sub10 = Form1 ;
|
||||||
Sub100 = Form2 ;
|
Sub100 = Form2 ;
|
||||||
Sub1000 = Form2 ;
|
Sub1000 = Form2 ;
|
||||||
Sub1000000 = Form2 ;
|
Sub1000000 = Form2 ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
|
|
||||||
-- Make a "number" (in this case a Form1)
|
-- Make a "number" (in this case a Form1)
|
||||||
-- Should be moved to ResMlt ?
|
-- Should be moved to ResMlt ?
|
||||||
-- Params:
|
-- Params:
|
||||||
-- unit, eg TNEJN
|
-- unit, eg TNEJN
|
||||||
-- ordinal unit (without article), eg TIENI
|
-- ordinal unit (without article), eg TIENI
|
||||||
-- adjectival, eg ŻEWĠ
|
-- adjectival, eg ŻEWĠ
|
||||||
-- teen, eg TNAX
|
-- teen, eg TNAX
|
||||||
-- ten, eg GĦOXRIN
|
-- ten, eg GĦOXRIN
|
||||||
-- number, eg NumDual
|
-- number, eg NumDual
|
||||||
--mkNum : Str -> Str -> Str -> Str -> Str -> Str -> Str -> Num_Number -> Form1 = \unit,ordunit,adjectival,teen,ten,hundred,thousand,num -> {
|
--mkNum : Str -> Str -> Str -> Str -> Str -> Str -> Str -> Num_Number -> Form1 = \unit,ordunit,adjectival,teen,ten,hundred,thousand,num -> {
|
||||||
mkNum : Str -> Str -> Str -> Str -> Str -> Num_Number -> Form1 = \unit,ordunit,adjectival,teen,ten,num ->
|
mkNum : Str -> Str -> Str -> Str -> Str -> Num_Number -> Form1 = \unit,ordunit,adjectival,teen,ten,num ->
|
||||||
let
|
let
|
||||||
hundred = case num of {
|
hundred = case num of {
|
||||||
NumSg => "mija" ;
|
NumSg => "mija" ;
|
||||||
NumDual => "mitejn" ;
|
NumDual => "mitejn" ;
|
||||||
_ => adjectival
|
_ => adjectival
|
||||||
} ;
|
} ;
|
||||||
thousand = case num of {
|
thousand = case num of {
|
||||||
NumSg => "wieħed" ;
|
NumSg => "wieħed" ;
|
||||||
NumDual => "elfejn" ;
|
NumDual => "elfejn" ;
|
||||||
_ => case adjectival of {
|
_ => case adjectival of {
|
||||||
_ + "'" => (init adjectival) + "t" ; -- eg SEBA' -> SEBAT
|
_ + "'" => (init adjectival) + "t" ; -- eg SEBA' -> SEBAT
|
||||||
_ + "t" => adjectival ; -- eg SITT -> SITT
|
_ + "t" => adjectival ; -- eg SITT -> SITT
|
||||||
_ => adjectival + "t" -- eg ĦAMES -> ĦAMEST
|
_ => adjectival + "t" -- eg ĦAMES -> ĦAMEST
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
in {
|
in {
|
||||||
s = table {
|
s = table {
|
||||||
Unit => table {
|
Unit => table {
|
||||||
NCard => table {
|
NCard => table {
|
||||||
NumNominative => unit ; -- eg TNEJN
|
NumNominative => unit ; -- eg TNEJN
|
||||||
NumAdjectival => adjectival -- eg ŻEWĠ
|
NumAdjectival => adjectival -- eg ŻEWĠ
|
||||||
} ;
|
} ;
|
||||||
NOrd => \\numcase => definiteArticle ++ ordunit -- eg IT-TIENI
|
NOrd => \\numcase => definiteArticle ++ ordunit -- eg IT-TIENI
|
||||||
} ;
|
} ;
|
||||||
Teen => table {
|
Teen => table {
|
||||||
NCard => table {
|
NCard => table {
|
||||||
NumNominative => teen ; -- eg TNAX
|
NumNominative => teen ; -- eg TNAX
|
||||||
NumAdjectival => teen + "-il" -- eg TNAX-IL
|
NumAdjectival => teen + "-il" -- eg TNAX-IL
|
||||||
} ;
|
} ;
|
||||||
NOrd => table {
|
NOrd => table {
|
||||||
NumNominative => definiteArticle ++ teen ; -- eg IT-TNAX
|
NumNominative => definiteArticle ++ teen ; -- eg IT-TNAX
|
||||||
NumAdjectival => definiteArticle ++ (teen + "-il") -- eg IT-TNAX-IL
|
NumAdjectival => definiteArticle ++ (teen + "-il") -- eg IT-TNAX-IL
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
Ten => table {
|
Ten => table {
|
||||||
NCard => \\numcase => ten ; -- eg TLETIN
|
NCard => \\numcase => ten ; -- eg TLETIN
|
||||||
NOrd => \\numcase => definiteArticle ++ ten -- eg IT-TLETIN
|
NOrd => \\numcase => definiteArticle ++ ten -- eg IT-TLETIN
|
||||||
} ;
|
} ;
|
||||||
Hund => table {
|
Hund => table {
|
||||||
NCard => case num of {
|
NCard => case num of {
|
||||||
NumSg => table {
|
NumSg => table {
|
||||||
NumNominative => "mija" ; -- ie MIJA
|
NumNominative => "mija" ; -- ie MIJA
|
||||||
NumAdjectival => "mitt" -- ie MITT suldat
|
NumAdjectival => "mitt" -- ie MITT suldat
|
||||||
} ;
|
} ;
|
||||||
NumDual => \\numcase => hundred ; -- ie MITEJN
|
NumDual => \\numcase => hundred ; -- ie MITEJN
|
||||||
_ => table {
|
_ => table {
|
||||||
NumNominative => hundred ++ "mija" ; -- eg MIJA, SEBA' MIJA
|
NumNominative => hundred ++ "mija" ; -- eg MIJA, SEBA' MIJA
|
||||||
NumAdjectival => hundred ++ "mitt" -- eg MITT, SEBA' MITT suldat
|
NumAdjectival => hundred ++ "mitt" -- eg MITT, SEBA' MITT suldat
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
NOrd => case num of {
|
NOrd => case num of {
|
||||||
NumSg => table {
|
NumSg => table {
|
||||||
NumNominative => definiteArticle ++ "mija" ; -- ie IL-MIJA
|
NumNominative => definiteArticle ++ "mija" ; -- ie IL-MIJA
|
||||||
NumAdjectival => definiteArticle ++ "mitt" -- ie IL-MITT suldat
|
NumAdjectival => definiteArticle ++ "mitt" -- ie IL-MITT suldat
|
||||||
} ;
|
} ;
|
||||||
NumDual => \\numcase => definiteArticle ++ hundred ; -- ie IL-MITEJN, IL-MITEJN suldat
|
NumDual => \\numcase => definiteArticle ++ hundred ; -- ie IL-MITEJN, IL-MITEJN suldat
|
||||||
_ => table {
|
_ => table {
|
||||||
NumNominative => definiteArticle ++ hundred ++ "mija" ; -- eg IS-SEBA' MIJA
|
NumNominative => definiteArticle ++ hundred ++ "mija" ; -- eg IS-SEBA' MIJA
|
||||||
NumAdjectival => definiteArticle ++ hundred ++ "mitt" -- eg IS-SEBA' MITT suldat
|
NumAdjectival => definiteArticle ++ hundred ++ "mitt" -- eg IS-SEBA' MITT suldat
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
-- thou = thousand ;
|
-- thou = thousand ;
|
||||||
thou = { s = thousand ; treatAs = Unit } ;
|
thou = { s = thousand ; treatAs = Unit } ;
|
||||||
n = num ;
|
n = num ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
-- Unit Ord.Unit Adjectival Teen Ten Number
|
-- Unit Ord.Unit Adjectival Teen Ten Number
|
||||||
n2 = mkNum "tnejn" "tieni" "żewġ" "tnax" "għoxrin" NumDual ;
|
n2 = mkNum "tnejn" "tieni" "żewġ" "tnax" "għoxrin" NumDual ;
|
||||||
n3 = mkNum "tlieta" "tielet" "tlett" "tlettax" "tletin" NumPl ; -- TODO tlett / tliet ?
|
n3 = mkNum "tlieta" "tielet" "tlett" "tlettax" "tletin" NumPl ; -- TODO tlett / tliet ?
|
||||||
n4 = mkNum "erbgħa" "raba'" "erba'" "erbatax" "erbgħin" NumPl ;
|
n4 = mkNum "erbgħa" "raba'" "erba'" "erbatax" "erbgħin" NumPl ;
|
||||||
n5 = mkNum "ħamsa" "ħames" "ħames" "ħmistax" "ħamsin" NumPl ;
|
n5 = mkNum "ħamsa" "ħames" "ħames" "ħmistax" "ħamsin" NumPl ;
|
||||||
n6 = mkNum "sitta" "sitt" "sitt" "sittax" "sittin" NumPl ;
|
n6 = mkNum "sitta" "sitt" "sitt" "sittax" "sittin" NumPl ;
|
||||||
n7 = mkNum "sebgħa" "seba'" "seba'" "sbatax" "sebgħin" NumPl ;
|
n7 = mkNum "sebgħa" "seba'" "seba'" "sbatax" "sebgħin" NumPl ;
|
||||||
n8 = mkNum "tmienja" "tmin" "tmin" "tmintax" "tmenin" NumPl ;
|
n8 = mkNum "tmienja" "tmin" "tmin" "tmintax" "tmenin" NumPl ;
|
||||||
n9 = mkNum "disgħa" "disa'" "disa'" "dsatax" "disgħin" NumPl ;
|
n9 = mkNum "disgħa" "disa'" "disa'" "dsatax" "disgħin" NumPl ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
-- Helper functions for below
|
-- Helper functions for below
|
||||||
mkForm2 : Form2 = overload {
|
mkForm2 : Form2 = overload {
|
||||||
|
|
||||||
-- Infer adjectival, thousands
|
-- Infer adjectival, thousands
|
||||||
mkForm2 : Str -> Str -> DForm -> Form2 = \card,ord,form -> {
|
mkForm2 : Str -> Str -> DForm -> Form2 = \card,ord,form -> {
|
||||||
s = table {
|
s = table {
|
||||||
NCard => \\numcase => card ;
|
NCard => \\numcase => card ;
|
||||||
NOrd => \\numcase => ord
|
NOrd => \\numcase => ord
|
||||||
} ;
|
} ;
|
||||||
--thou = card ;
|
--thou = card ;
|
||||||
thou = { s = card ; treatAs = form } ;
|
thou = { s = card ; treatAs = form } ;
|
||||||
n = NumPl ;
|
n = NumPl ;
|
||||||
f = form ;
|
f = form ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- Explicit everything
|
-- Explicit everything
|
||||||
mkForm2 : Str -> Str -> Str -> Str -> DForm -> Form2 = \card,ord,adj,thousand,form -> {
|
mkForm2 : Str -> Str -> Str -> Str -> DForm -> Form2 = \card,ord,adj,thousand,form -> {
|
||||||
s = table {
|
s = table {
|
||||||
NCard => table {
|
NCard => table {
|
||||||
NumNominative => card ;
|
NumNominative => card ;
|
||||||
NumAdjectival => adj
|
NumAdjectival => adj
|
||||||
} ;
|
} ;
|
||||||
--NOrd => \\numcase => addDefiniteArticle ord
|
--NOrd => \\numcase => addDefiniteArticle ord
|
||||||
NOrd => table {
|
NOrd => table {
|
||||||
NumNominative => definiteArticle ++ ord ;
|
NumNominative => definiteArticle ++ ord ;
|
||||||
NumAdjectival => definiteArticle ++ adj
|
NumAdjectival => definiteArticle ++ adj
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
--thou = thousand ;
|
--thou = thousand ;
|
||||||
thou = { s = thousand ; treatAs = form } ;
|
thou = { s = thousand ; treatAs = form } ;
|
||||||
n = NumPl ;
|
n = NumPl ;
|
||||||
f = form ;
|
f = form ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- Given an existing table
|
-- Given an existing table
|
||||||
mkForm2 : (CardOrd => Num_Case => Str) -> DForm -> Form2 = \tab,form -> {
|
mkForm2 : (CardOrd => Num_Case => Str) -> DForm -> Form2 = \tab,form -> {
|
||||||
s = tab ;
|
s = tab ;
|
||||||
thou = {
|
thou = {
|
||||||
s = case form of {
|
s = case form of {
|
||||||
Teen => tab ! NCard ! NumAdjectival ;
|
Teen => tab ! NCard ! NumAdjectival ;
|
||||||
_ => tab ! NCard ! NumNominative
|
_ => tab ! NCard ! NumNominative
|
||||||
} ;
|
} ;
|
||||||
treatAs = form ;
|
treatAs = form ;
|
||||||
} ;
|
} ;
|
||||||
n = NumPl ;
|
n = NumPl ;
|
||||||
f = form ;
|
f = form ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
}; -- end of mkForm2 overload
|
}; -- end of mkForm2 overload
|
||||||
|
|
||||||
lin
|
lin
|
||||||
|
|
||||||
-- Sub1000000 -> Numeral
|
-- Sub1000000 -> Numeral
|
||||||
num x = x ;
|
num x = x ;
|
||||||
|
|
||||||
-- Sub10 ; 1
|
-- Sub10 ; 1
|
||||||
-- Unit Ord.Unit Adjectival Teen Ten Number
|
-- Unit Ord.Unit Adjectival Teen Ten Number
|
||||||
pot01 = mkNum "wieħed" "ewwel" "wieħed" [] [] NumSg ;
|
pot01 = mkNum "wieħed" "ewwel" "wieħed" [] [] NumSg ;
|
||||||
|
|
||||||
-- Digit -> Sub10 ; d * 1
|
-- Digit -> Sub10 ; d * 1
|
||||||
pot0 d = d ** {n = case d.n of { NumDual => NumDual ; _ => NumPl } } ;
|
pot0 d = d ** {n = case d.n of { NumDual => NumDual ; _ => NumPl } } ;
|
||||||
|
|
||||||
-- Sub100 ; 10, 11
|
-- Sub100 ; 10, 11
|
||||||
-- Cardinal Ordinal Adjectival Thousand Form
|
-- Cardinal Ordinal Adjectival Thousand Form
|
||||||
pot110 = mkForm2 "għaxra" "għaxar" "għaxar" "għaxart" Unit ;
|
pot110 = mkForm2 "għaxra" "għaxar" "għaxar" "għaxart" Unit ;
|
||||||
pot111 = mkForm2 "ħdax" "ħdax" "ħdax-il" "ħdax-il" Teen ;
|
pot111 = mkForm2 "ħdax" "ħdax" "ħdax-il" "ħdax-il" Teen ;
|
||||||
{-
|
{-
|
||||||
pot110 = {
|
pot110 = {
|
||||||
s = table {
|
s = table {
|
||||||
NCard => table {
|
NCard => table {
|
||||||
NumNominative => "għaxra" ;
|
NumNominative => "għaxra" ;
|
||||||
NumAdjectival => "għaxar"
|
NumAdjectival => "għaxar"
|
||||||
} ;
|
} ;
|
||||||
NOrd => \\numcase => addDefiniteArticle "għaxar"
|
NOrd => \\numcase => addDefiniteArticle "għaxar"
|
||||||
} ;
|
} ;
|
||||||
thou = table {
|
thou = table {
|
||||||
NCard => "għaxart" ;
|
NCard => "għaxart" ;
|
||||||
NOrd => addDefiniteArticle "għaxart"
|
NOrd => addDefiniteArticle "għaxart"
|
||||||
} ;
|
} ;
|
||||||
n = NumPl ;
|
n = NumPl ;
|
||||||
f = Ten ;
|
f = Ten ;
|
||||||
} ;
|
} ;
|
||||||
-}
|
-}
|
||||||
|
|
||||||
-- Digit -> Sub100 ; 10 + d
|
-- Digit -> Sub100 ; 10 + d
|
||||||
pot1to19 d =
|
pot1to19 d =
|
||||||
mkForm2
|
mkForm2
|
||||||
(d.s ! Teen)
|
(d.s ! Teen)
|
||||||
Teen
|
Teen
|
||||||
;
|
;
|
||||||
|
|
||||||
-- Sub10 -> Sub100 ; coercion of 1..9
|
-- Sub10 -> Sub100 ; coercion of 1..9
|
||||||
pot0as1 d = {
|
pot0as1 d = {
|
||||||
s = d.s ! Unit ;
|
s = d.s ! Unit ;
|
||||||
thou = d.thou ;
|
thou = d.thou ;
|
||||||
n = d.n ;
|
n = d.n ;
|
||||||
f = Unit ;
|
f = Unit ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- Digit -> Sub100 ; d * 10
|
-- Digit -> Sub100 ; d * 10
|
||||||
pot1 d =
|
pot1 d =
|
||||||
mkForm2
|
mkForm2
|
||||||
(d.s ! Ten)
|
(d.s ! Ten)
|
||||||
Ten
|
Ten
|
||||||
;
|
;
|
||||||
|
|
||||||
-- Digit -> Sub10 -> Sub100 ; d * 10 + n
|
-- Digit -> Sub10 -> Sub100 ; d * 10 + n
|
||||||
pot1plus d n =
|
pot1plus d n =
|
||||||
let unit = (n.s ! Unit ! NCard ! NumNominative) in
|
let unit = (n.s ! Unit ! NCard ! NumNominative) in
|
||||||
mkForm2
|
mkForm2
|
||||||
(unit ++ "u" ++ (d.s ! Ten ! NCard ! NumNominative))
|
(unit ++ "u" ++ (d.s ! Ten ! NCard ! NumNominative))
|
||||||
(definiteArticle ++ unit ++ "u" ++ (d.s ! Ten ! NCard ! NumNominative))
|
(definiteArticle ++ unit ++ "u" ++ (d.s ! Ten ! NCard ! NumNominative))
|
||||||
Ten
|
Ten
|
||||||
;
|
;
|
||||||
|
|
||||||
-- Sub100 -> Sub1000 ; coercion of 1..99
|
-- Sub100 -> Sub1000 ; coercion of 1..99
|
||||||
pot1as2 m = m ;
|
pot1as2 m = m ;
|
||||||
|
|
||||||
-- Sub10 -> Sub1000 ; m * 100
|
-- Sub10 -> Sub1000 ; m * 100
|
||||||
pot2 m = {
|
pot2 m = {
|
||||||
s = m.s ! Hund ;
|
s = m.s ! Hund ;
|
||||||
thou = {
|
thou = {
|
||||||
s = case m.n of {
|
s = case m.n of {
|
||||||
NumSg => "mitt" ; -- Special case for "mitt elf"
|
NumSg => "mitt" ; -- Special case for "mitt elf"
|
||||||
NumDual => "mitejn" ; -- Special case for "mitejn elf"
|
NumDual => "mitejn" ; -- Special case for "mitejn elf"
|
||||||
_ => m.thou.s
|
_ => m.thou.s
|
||||||
} ;
|
} ;
|
||||||
treatAs = Hund ;
|
treatAs = Hund ;
|
||||||
} ;
|
} ;
|
||||||
n = NumPl ;
|
n = NumPl ;
|
||||||
f = Hund ;
|
f = Hund ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- Sub10 -> Sub100 -> Sub1000 ; m * 100 + n
|
-- Sub10 -> Sub100 -> Sub1000 ; m * 100 + n
|
||||||
pot2plus m n =
|
pot2plus m n =
|
||||||
let
|
let
|
||||||
hund : Str = m.s ! Hund ! NCard ! NumNominative
|
hund : Str = m.s ! Hund ! NCard ! NumNominative
|
||||||
in {
|
in {
|
||||||
s = table {
|
s = table {
|
||||||
NCard => table {
|
NCard => table {
|
||||||
NumNominative => hund ++ "u" ++ n.s ! NCard ! NumNominative ;
|
NumNominative => hund ++ "u" ++ n.s ! NCard ! NumNominative ;
|
||||||
NumAdjectival => hund ++ "u" ++ n.s ! NCard ! NumAdjectival
|
NumAdjectival => hund ++ "u" ++ n.s ! NCard ! NumAdjectival
|
||||||
} ;
|
} ;
|
||||||
NOrd => table {
|
NOrd => table {
|
||||||
NumNominative => definiteArticle ++ hund ++ "u" ++ n.s ! NCard ! NumNominative ;
|
NumNominative => definiteArticle ++ hund ++ "u" ++ n.s ! NCard ! NumNominative ;
|
||||||
NumAdjectival => definiteArticle ++ hund ++ "u" ++ n.s ! NCard ! NumAdjectival
|
NumAdjectival => definiteArticle ++ hund ++ "u" ++ n.s ! NCard ! NumAdjectival
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
thou = {
|
thou = {
|
||||||
s = hund ++ "u" ++ n.thou.s ;
|
s = hund ++ "u" ++ n.thou.s ;
|
||||||
treatAs = case n.n of {
|
treatAs = case n.n of {
|
||||||
NumSg => Ten ; -- specific case for mija u wiehed elf
|
NumSg => Ten ; -- specific case for mija u wiehed elf
|
||||||
_ => n.f -- eg So that "106,000" is treated as "6,000"
|
_ => n.f -- eg So that "106,000" is treated as "6,000"
|
||||||
} ;
|
} ;
|
||||||
} ;
|
} ;
|
||||||
n = NumPl ;
|
n = NumPl ;
|
||||||
f = Hund ;
|
f = Hund ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- Sub1000 -> Sub1000000 ; coercion of 1..999
|
-- Sub1000 -> Sub1000000 ; coercion of 1..999
|
||||||
pot2as3 m = m ;
|
pot2as3 m = m ;
|
||||||
|
|
||||||
-- Sub1000 -> Sub1000000 ; m * 1000
|
-- Sub1000 -> Sub1000000 ; m * 1000
|
||||||
pot3 m = {
|
pot3 m = {
|
||||||
s =
|
s =
|
||||||
case m.n of {
|
case <m.n, m.thou.treatAs> of {
|
||||||
NumSg => numTable "elf" ; -- 1 * 1000
|
<NumSg ,_> => numTable "elf" ; -- 1 * 1000
|
||||||
NumDual => numTable "elfejn" ; -- 2 * 2000
|
<NumDual,_> => numTable "elfejn" ; -- 2 * 2000
|
||||||
NumPl => case m.thou.treatAs of {
|
<NumPl ,Unit> => numTable m.thou.s "elef" ; -- 3-10 * 1000
|
||||||
Unit => numTable m.thou.s "elef" ; -- 3-10 * 1000
|
<NumPl ,_> => numTable m.thou.s "elf" -- 11+ * 1000
|
||||||
_ => numTable m.thou.s "elf" -- 11+ * 1000
|
} ;
|
||||||
}
|
|
||||||
} ;
|
|
||||||
{-
|
{-
|
||||||
case m.f of {
|
case m.f of {
|
||||||
Unit => numTable m.thou "elef" ; --
|
Unit => numTable m.thou "elef" ; --
|
||||||
_ => case m.n of {
|
_ => case m.n of {
|
||||||
NumSg => numTable "elf" ; --
|
NumSg => numTable "elf" ; --
|
||||||
NumDual => numTable "elfejn" ; --
|
NumDual => numTable "elfejn" ; --
|
||||||
NumPl => numTable m.thou "elf" --
|
NumPl => numTable m.thou "elf" --
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
-}
|
-}
|
||||||
thou = {
|
thou = {
|
||||||
s = m.thou.s ;
|
s = m.thou.s ;
|
||||||
treatAs = m.f ;
|
treatAs = m.f ;
|
||||||
} ;
|
} ;
|
||||||
n = NumPl ;
|
n = NumPl ;
|
||||||
f = Hund ; -- NOT IMPORTANT
|
f = Hund ; -- NOT IMPORTANT
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- Sub1000 -> Sub1000 -> Sub1000000 ; m * 1000 + n
|
-- Sub1000 -> Sub1000 -> Sub1000000 ; m * 1000 + n
|
||||||
pot3plus m n = {
|
pot3plus m n = {
|
||||||
s =
|
s =
|
||||||
let
|
let
|
||||||
ukemm = table {
|
ukemm = table {
|
||||||
NumNominative => "u" ++ (n.s ! NCard ! NumNominative) ;
|
NumNominative => "u" ++ (n.s ! NCard ! NumNominative) ;
|
||||||
NumAdjectival => "u" ++ (n.s ! NCard ! NumAdjectival)
|
NumAdjectival => "u" ++ (n.s ! NCard ! NumAdjectival)
|
||||||
}
|
}
|
||||||
in
|
in
|
||||||
case m.n of {
|
case <m.n, m.thou.treatAs> of {
|
||||||
|
<NumSg ,_> => numTable "elf" ukemm ;
|
||||||
|
<NumDual,_> => numTable "elfejn" ukemm ;
|
||||||
|
<NumPl ,Unit> => numTable (m.thou.s ++ "elef") ukemm ;
|
||||||
|
<NumPl ,_> => numTable (m.thou.s ++ "elf") ukemm
|
||||||
|
} ;
|
||||||
{-
|
{-
|
||||||
NumSg => elf2 "elf" ukemm ;
|
NumSg => elf2 "elf" ukemm ;
|
||||||
NumDual => elf2 "elfejn" ukemm ;
|
NumDual => elf2 "elfejn" ukemm ;
|
||||||
NumPl => case m.f of {
|
NumPl => case m.f of {
|
||||||
Unit => elf2 m.thou ("elef" ++ ukemm) ;
|
Unit => elf2 m.thou ("elef" ++ ukemm) ;
|
||||||
_ => elf2 m.thou ("elf" ++ ukemm)
|
_ => elf2 m.thou ("elf" ++ ukemm)
|
||||||
}
|
}
|
||||||
-}
|
-}
|
||||||
NumSg => numTable "elf" ukemm ;
|
thou = {
|
||||||
NumDual => numTable "elfejn" ukemm ;
|
s = m.thou.s ;
|
||||||
NumPl => case m.thou.treatAs of {
|
treatAs = m.f ;
|
||||||
Unit => numTable (m.thou.s ++ "elef") ukemm ;
|
} ;
|
||||||
_ => numTable (m.thou.s ++ "elf") ukemm
|
n = NumPl ;
|
||||||
}
|
f = Hund ; -- NOT IMPORTANT
|
||||||
} ;
|
} ;
|
||||||
thou = {
|
|
||||||
s = m.thou.s ;
|
|
||||||
treatAs = m.f ;
|
|
||||||
} ;
|
|
||||||
n = NumPl ;
|
|
||||||
f = Hund ; -- NOT IMPORTANT
|
|
||||||
} ;
|
|
||||||
|
|
||||||
oper
|
oper
|
||||||
-- Build "x thousand" table
|
-- Build "x thousand" table
|
||||||
numTable : (CardOrd => Num_Case => Str) = overload {
|
numTable : (CardOrd => Num_Case => Str) = overload {
|
||||||
|
|
||||||
numTable : Str -> (CardOrd => Num_Case => Str) = \thou -> table {
|
numTable : Str -> (CardOrd => Num_Case => Str) = \thou -> table {
|
||||||
NCard => \\numcase => thou ;
|
NCard => \\numcase => thou ;
|
||||||
NOrd => \\numcase => definiteArticle ++ thou
|
NOrd => \\numcase => definiteArticle ++ thou
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
numTable : Str -> Str -> (CardOrd => Num_Case => Str) = \thou,attach -> table {
|
numTable : Str -> Str -> (CardOrd => Num_Case => Str) = \thou,attach -> table {
|
||||||
NCard => \\numcase => thou ++ attach ;
|
NCard => \\numcase => thou ++ attach ;
|
||||||
NOrd => \\numcase => definiteArticle ++ thou ++ attach
|
NOrd => \\numcase => definiteArticle ++ thou ++ attach
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
numTable : Str -> (Num_Case => Str) -> (CardOrd => Num_Case => Str) = \thou,attach -> table {
|
numTable : Str -> (Num_Case => Str) -> (CardOrd => Num_Case => Str) = \thou,attach -> table {
|
||||||
NCard => table {
|
NCard => table {
|
||||||
NumNominative => thou ++ (attach ! NumNominative) ;
|
NumNominative => thou ++ (attach ! NumNominative) ;
|
||||||
NumAdjectival => thou ++ (attach ! NumAdjectival)
|
NumAdjectival => thou ++ (attach ! NumAdjectival)
|
||||||
} ;
|
} ;
|
||||||
NOrd => table {
|
NOrd => table {
|
||||||
NumNominative => definiteArticle ++ thou ++ (attach ! NumNominative) ;
|
NumNominative => definiteArticle ++ thou ++ (attach ! NumNominative) ;
|
||||||
NumAdjectival => definiteArticle ++ thou ++ (attach ! NumAdjectival)
|
NumAdjectival => definiteArticle ++ thou ++ (attach ! NumAdjectival)
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
} ;
|
} ;
|
||||||
{-
|
{-
|
||||||
-- elf : (CardOrd => Str) = overload {
|
-- elf : (CardOrd => Str) = overload {
|
||||||
elf : Str -> (CardOrd => Num_Case => Str) = \m -> table {
|
elf : Str -> (CardOrd => Num_Case => Str) = \m -> table {
|
||||||
NCard => \\numcase => m ;
|
NCard => \\numcase => m ;
|
||||||
NOrd => \\numcase => addDefiniteArticle m
|
NOrd => \\numcase => addDefiniteArticle m
|
||||||
} ;
|
} ;
|
||||||
elf2 : Str -> Str -> (CardOrd => Num_Case => Str) = \m,n -> table {
|
elf2 : Str -> Str -> (CardOrd => Num_Case => Str) = \m,n -> table {
|
||||||
NCard => \\numcase => m ++ n ;
|
NCard => \\numcase => m ++ n ;
|
||||||
NOrd => \\numcase => (addDefiniteArticle m) ++ n
|
NOrd => \\numcase => (addDefiniteArticle m) ++ n
|
||||||
} ;
|
} ;
|
||||||
-}
|
-}
|
||||||
-- } ;
|
-- } ;
|
||||||
|
|
||||||
{-
|
{-
|
||||||
Numerals as sequences of digits have a separate, simpler grammar
|
Numerals as sequences of digits have a separate, simpler grammar
|
||||||
================================================================
|
================================================================
|
||||||
|
|
||||||
cat
|
cat
|
||||||
Dig ; -- single digit 0..9
|
Dig ; -- single digit 0..9
|
||||||
|
|
||||||
data
|
data
|
||||||
IDig : Dig -> Digits ; -- 8
|
IDig : Dig -> Digits ; -- 8
|
||||||
IIDig : Dig -> Digits -> Digits ; -- 876
|
IIDig : Dig -> Digits -> Digits ; -- 876
|
||||||
|
|
||||||
D_0, D_1, D_2, D_3, D_4, D_5, D_6, D_7, D_8, D_9 : Dig ;
|
D_0, D_1, D_2, D_3, D_4, D_5, D_6, D_7, D_8, D_9 : Dig ;
|
||||||
-}
|
-}
|
||||||
|
|
||||||
lincat
|
lincat
|
||||||
|
|
||||||
Dig = {
|
Dig = {
|
||||||
s : Str ;
|
s : Str ;
|
||||||
n : Num_Number
|
n : Num_Number
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
-- Helper for making a Dig object. Specifying no number inplies plural.
|
-- Helper for making a Dig object. Specifying no number inplies plural.
|
||||||
mkDig : Dig = overload {
|
mkDig : Dig = overload {
|
||||||
mkDig : Str -> Dig = \digit -> lin Dig {
|
mkDig : Str -> Dig = \digit -> lin Dig {
|
||||||
s = digit ;
|
s = digit ;
|
||||||
n = NumPl
|
n = NumPl
|
||||||
} ;
|
} ;
|
||||||
mkDig : Str -> Num_Number -> Dig = \digit,num -> lin Dig {
|
mkDig : Str -> Num_Number -> Dig = \digit,num -> lin Dig {
|
||||||
s = digit ;
|
s = digit ;
|
||||||
n = num
|
n = num
|
||||||
} ;
|
} ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- For correct comma placement in Digits
|
-- For correct comma placement in Digits
|
||||||
commaIf : DTail -> Str = \t -> case t of {
|
commaIf : DTail -> Str = \t -> case t of {
|
||||||
T3 => "," ;
|
T3 => "," ;
|
||||||
_ => []
|
_ => []
|
||||||
} ;
|
} ;
|
||||||
inc : DTail -> DTail = \t -> case t of {
|
inc : DTail -> DTail = \t -> case t of {
|
||||||
T1 => T2 ;
|
T1 => T2 ;
|
||||||
T2 => T3 ;
|
T2 => T3 ;
|
||||||
T3 => T1
|
T3 => T1
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
D_0 = mkDig "0" ;
|
D_0 = mkDig "0" ;
|
||||||
D_1 = mkDig "1" NumSg ;
|
D_1 = mkDig "1" NumSg ;
|
||||||
D_2 = mkDig "2" NumDual ;
|
D_2 = mkDig "2" NumDual ;
|
||||||
D_3 = mkDig "3" ;
|
D_3 = mkDig "3" ;
|
||||||
D_4 = mkDig "4" ;
|
D_4 = mkDig "4" ;
|
||||||
D_5 = mkDig "5" ;
|
D_5 = mkDig "5" ;
|
||||||
D_6 = mkDig "6" ;
|
D_6 = mkDig "6" ;
|
||||||
D_7 = mkDig "7" ;
|
D_7 = mkDig "7" ;
|
||||||
D_8 = mkDig "8" ;
|
D_8 = mkDig "8" ;
|
||||||
D_9 = mkDig "9" ;
|
D_9 = mkDig "9" ;
|
||||||
|
|
||||||
-- Create Digits from a Dig
|
-- Create Digits from a Dig
|
||||||
IDig d = d ** {tail = T1} ;
|
IDig d = d ** {tail = T1} ;
|
||||||
|
|
||||||
-- Create Digits from combining Dig with Digits
|
-- Create Digits from combining Dig with Digits
|
||||||
IIDig d i = {
|
IIDig d i = {
|
||||||
s = d.s ++ (commaIf i.tail) ++ i.s ;
|
s = d.s ++ (commaIf i.tail) ++ i.s ;
|
||||||
n = NumPl ;
|
n = NumPl ;
|
||||||
tail = inc i.tail
|
tail = inc i.tail
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
resource OrthoMlt = open Prelude, Predef in {
|
resource OrthoMlt = open Prelude, Predef in {
|
||||||
flags coding=utf8 ;
|
flags coding=utf8 ;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -1,8 +1,8 @@
|
|||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
resource PatternsMlt = {
|
resource PatternsMlt = {
|
||||||
flags coding=utf8 ;
|
flags coding=utf8 ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
-- PhraseMlt.gf: suprasentential phrases
|
-- PhraseMlt.gf: suprasentential phrases
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
concrete PhraseMlt of Phrase = CatMlt ** open ParamX, Prelude, ResMlt in {
|
concrete PhraseMlt of Phrase = CatMlt ** open ParamX, Prelude, ResMlt in {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
-- QuestionMlt.gf: questions and interrogatives
|
-- QuestionMlt.gf: questions and interrogatives
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
concrete QuestionMlt of Question = CatMlt ** open ResMlt, ParamX, Prelude in {
|
concrete QuestionMlt of Question = CatMlt ** open ResMlt, ParamX, Prelude in {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
-- RelativeMlt.gf: relational clauses and pronouns
|
-- RelativeMlt.gf: relational clauses and pronouns
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
concrete RelativeMlt of Relative = CatMlt ** open ResMlt in {
|
concrete RelativeMlt of Relative = CatMlt ** open ResMlt in {
|
||||||
|
|||||||
@@ -1,311 +1,311 @@
|
|||||||
-- ResMlt.gf: Language-specific parameter types, morphology, VP formation
|
-- ResMlt.gf: Language-specific parameter types, morphology, VP formation
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
--# -path=.:../abstract:../common:../prelude
|
--# -path=.:../abstract:../common:../prelude
|
||||||
|
|
||||||
{-
|
{-
|
||||||
Verb types summary:
|
Verb types summary:
|
||||||
===================
|
===================
|
||||||
- Strong verb: none of radicals are semi-vowels eg ĦAREĠ (Ħ-R-Ġ)
|
- Strong verb: none of radicals are semi-vowels eg ĦAREĠ (Ħ-R-Ġ)
|
||||||
- Defective verb: third radical is semivowel GĦ eg QATA' (Q-T-GĦ)
|
- Defective verb: third radical is semivowel GĦ eg QATA' (Q-T-GĦ)
|
||||||
- Weak verb: third radical is semivowel J eg MEXA (M-X-J)
|
- Weak verb: third radical is semivowel J eg MEXA (M-X-J)
|
||||||
- Hollow verb: long A or IE btw radicals 1 & 3 eg QAL (Q-W-L) or SAB (S-J-B)
|
- Hollow verb: long A or IE btw radicals 1 & 3 eg QAL (Q-W-L) or SAB (S-J-B)
|
||||||
- Double/Geminated verb: radicals 2 & 3 identical eg ĦABB (Ħ-B-B)
|
- Double/Geminated verb: radicals 2 & 3 identical eg ĦABB (Ħ-B-B)
|
||||||
- Quadriliteral verb: 4 radicals eg QARMEĊ (Q-R-M-Ċ)
|
- Quadriliteral verb: 4 radicals eg QARMEĊ (Q-R-M-Ċ)
|
||||||
-}
|
-}
|
||||||
|
|
||||||
|
|
||||||
resource ResMlt = PatternsMlt ** open Prelude in {
|
resource ResMlt = PatternsMlt ** open Prelude in {
|
||||||
|
|
||||||
flags coding=utf8 ;
|
flags coding=utf8 ;
|
||||||
|
|
||||||
param
|
param
|
||||||
|
|
||||||
-- Used in the NumeralMlt module
|
-- Used in the NumeralMlt module
|
||||||
CardOrd = NCard | NOrd ;
|
CardOrd = NCard | NOrd ;
|
||||||
DTail = T1 | T2 | T3 ; -- This is already defined in ParamX...
|
DTail = T1 | T2 | T3 ; -- This is already defined in ParamX...
|
||||||
Num_Number =
|
Num_Number =
|
||||||
NumSg
|
NumSg
|
||||||
| NumDual
|
| NumDual
|
||||||
| NumPl
|
| NumPl
|
||||||
;
|
;
|
||||||
DForm =
|
DForm =
|
||||||
Unit -- 0..10
|
Unit -- 0..10
|
||||||
| Teen -- 11-19
|
| Teen -- 11-19
|
||||||
--| TeenIl -- 11-19
|
--| TeenIl -- 11-19
|
||||||
| Ten -- 20-99
|
| Ten -- 20-99
|
||||||
| Hund -- 100..999
|
| Hund -- 100..999
|
||||||
--| Thou -- 1000+
|
--| Thou -- 1000+
|
||||||
;
|
;
|
||||||
Num_Case =
|
Num_Case =
|
||||||
NumNominative
|
NumNominative
|
||||||
| NumAdjectival ;
|
| NumAdjectival ;
|
||||||
|
|
||||||
|
|
||||||
{-
|
{-
|
||||||
Note: NNQ = Non-numerically quantifiable
|
Note: NNQ = Non-numerically quantifiable
|
||||||
|
|
||||||
Nouns can have the following forms:
|
Nouns can have the following forms:
|
||||||
o Singular
|
o Singular
|
||||||
- Singulative (1, >10)
|
- Singulative (1, >10)
|
||||||
- Collective (NNQ)
|
- Collective (NNQ)
|
||||||
o Dual (2)
|
o Dual (2)
|
||||||
o Plural
|
o Plural
|
||||||
- Determinate (2-10)
|
- Determinate (2-10)
|
||||||
- Indeterminate (NNQ)
|
- Indeterminate (NNQ)
|
||||||
- Sound
|
- Sound
|
||||||
- Broken
|
- Broken
|
||||||
- Plural of Plural
|
- Plural of Plural
|
||||||
|
|
||||||
Typical combinations thereof (* marks base form):
|
Typical combinations thereof (* marks base form):
|
||||||
- Singulative, no plural!
|
- Singulative, no plural!
|
||||||
- Singulative*, Plural
|
- Singulative*, Plural
|
||||||
- Singulative* (1), Dual (2), Plural (>2)
|
- Singulative* (1), Dual (2), Plural (>2)
|
||||||
- Singulative (1, >10), Collective* (NNQ), Determinate Plural (2-10)
|
- Singulative (1, >10), Collective* (NNQ), Determinate Plural (2-10)
|
||||||
- Singulative, Collective*, Determinate Plural, Indeterminate Plural -> very few nouns have these 4 forms
|
- Singulative, Collective*, Determinate Plural, Indeterminate Plural -> very few nouns have these 4 forms
|
||||||
-}
|
-}
|
||||||
Noun_Sg_Type =
|
Noun_Sg_Type =
|
||||||
Singulative -- eg ĦUTA
|
Singulative -- eg ĦUTA
|
||||||
| Collective -- eg ĦUT
|
| Collective -- eg ĦUT
|
||||||
;
|
;
|
||||||
Noun_Pl_Type =
|
Noun_Pl_Type =
|
||||||
Determinate -- eg ĦUTIET
|
Determinate -- eg ĦUTIET
|
||||||
| Indeterminate -- eg ĦWIET
|
| Indeterminate -- eg ĦWIET
|
||||||
;
|
;
|
||||||
Noun_Number =
|
Noun_Number =
|
||||||
Singular Noun_Sg_Type -- eg ĦUTA / ĦUT
|
Singular Noun_Sg_Type -- eg ĦUTA / ĦUT
|
||||||
| Dual -- eg WIDNEJN
|
| Dual -- eg WIDNEJN
|
||||||
| Plural Noun_Pl_Type -- eg ĦUTIET / ĦWIET
|
| Plural Noun_Pl_Type -- eg ĦUTIET / ĦWIET
|
||||||
;
|
;
|
||||||
|
|
||||||
{-
|
{-
|
||||||
Noun_PluralType =
|
Noun_PluralType =
|
||||||
Sound -- External (affix), eg FERGĦA -> FERGĦAT
|
Sound -- External (affix), eg FERGĦA -> FERGĦAT
|
||||||
| Broken -- Internal, eg FERGĦA -> FRIEGĦI
|
| Broken -- Internal, eg FERGĦA -> FRIEGĦI
|
||||||
| Irregular -- eg MARA -> NISA
|
| Irregular -- eg MARA -> NISA
|
||||||
| PluralOfPlural -- eg TARF -> TRUF -> TRUFIJIET
|
| PluralOfPlural -- eg TARF -> TRUF -> TRUFIJIET
|
||||||
| Foreign -- eg KARTI, PRATTIĊI, TELEVIXINS
|
| Foreign -- eg KARTI, PRATTIĊI, TELEVIXINS
|
||||||
;
|
;
|
||||||
-}
|
-}
|
||||||
|
|
||||||
Gender = Masc | Fem ;
|
Gender = Masc | Fem ;
|
||||||
|
|
||||||
Animacy =
|
Animacy =
|
||||||
Animate
|
Animate
|
||||||
| Inanimate
|
| Inanimate
|
||||||
;
|
;
|
||||||
|
|
||||||
Definiteness =
|
Definiteness =
|
||||||
Definite -- eg IL-KARTA. In this context same as Determinate
|
Definite -- eg IL-KARTA. In this context same as Determinate
|
||||||
| Indefinite -- eg KARTA
|
| Indefinite -- eg KARTA
|
||||||
;
|
;
|
||||||
|
|
||||||
{-
|
{-
|
||||||
-- CASE AS DEFINED BY GRAMMATIKA MALTIJA, p132
|
-- CASE AS DEFINED BY GRAMMATIKA MALTIJA, p132
|
||||||
-- Noun cases
|
-- Noun cases
|
||||||
Case =
|
Case =
|
||||||
Nominative -- referent as subject, eg IT-TARBIJA ...
|
Nominative -- referent as subject, eg IT-TARBIJA ...
|
||||||
| Genitive -- referent as possessor, eg ... TAT-TARBIJA
|
| Genitive -- referent as possessor, eg ... TAT-TARBIJA
|
||||||
| Accusative -- referent as direct object
|
| Accusative -- referent as direct object
|
||||||
| Dative -- referent as indirect object, eg ... LIT-TARBIJA
|
| Dative -- referent as indirect object, eg ... LIT-TARBIJA
|
||||||
| Ablative -- referent as instrument, cause, location, source or time, eg ... MINN TARBIJA
|
| Ablative -- referent as instrument, cause, location, source or time, eg ... MINN TARBIJA
|
||||||
| Vocative -- referent being adressed, eg AA TARBIJA (lol)
|
| Vocative -- referent being adressed, eg AA TARBIJA (lol)
|
||||||
;
|
;
|
||||||
-}
|
-}
|
||||||
|
{-
|
||||||
|
-- CASE AS DEFINED BY ME
|
||||||
|
-- Noun cases (note my examples include DEFINITE ARTICLE)
|
||||||
|
-- Commented lines mean that noun iflection is unchanged, not that the case does not occur in Maltese!
|
||||||
|
Case =
|
||||||
|
-- Absessive -- lack or absence of referent (MINGĦAJR)
|
||||||
|
-- | Ablative -- referent as instrument, cause, location, source or time
|
||||||
|
-- | Absolutive -- subject of intransitive or object of transitive verb (in ergative-absolutive languages)
|
||||||
|
-- | Accusative -- referent as direct object (in nominative-accusative languages)
|
||||||
|
-- | Allative -- motion towards referent (LEJN)
|
||||||
|
-- | Additive -- synonym of Allative (above)
|
||||||
|
Benefactive -- referent as recipient, eg GĦAT-TARBIJA. cf Dative.
|
||||||
|
-- | Causative -- referent as the cause of a situation (MINĦABBA)
|
||||||
|
| Comitative -- with, eg MAT-TARBIJA
|
||||||
|
| Dative -- referent as indirect object, eg LIT-TARBIJA. cf Benefactive.
|
||||||
|
-- | Delative -- motion downward from referent
|
||||||
|
| Elative -- motion away from referent, eg MIT-TARBIJA
|
||||||
|
| Equative -- likeness or identity, eg BĦAT-TARBIJA
|
||||||
|
-- | Ergative -- subject of transitive verb (in ergative-absolutive languages)
|
||||||
|
-- | Essive -- temporary state / while / in capacity of (BĦALA)
|
||||||
|
| Genitive -- referent as possessor, eg TAT-TARBIJA
|
||||||
|
-- | Illative -- motion into / towards referent, eg SAT-TARBIJA. cf Allative.
|
||||||
|
| Inessive -- within referent, eg ĠOT-TARBIJA, FIT-TARBIJA
|
||||||
|
| Instrumental -- referent as instrument, eg BIT-TARBIJA. cf Ablative.
|
||||||
|
| Lative -- motion up to referent, eg SAT-TARBIJA
|
||||||
|
-- | Locative -- location at referent
|
||||||
|
| Nominative -- referent as subject, eg IT-TARBIJA
|
||||||
|
-- | Partitive -- partial nature of referent
|
||||||
|
-- | Prolative -- motion along / beside referent
|
||||||
|
-- | Superessive -- on / upon (FUQ)
|
||||||
|
-- | Translative -- referent noun or adjective as result of process of change
|
||||||
|
-- | Vocative -- referent being adressed, eg AA TARBIJA (lol)
|
||||||
|
;
|
||||||
|
-}
|
||||||
|
-- Person = P1 | P2 | P3 ;
|
||||||
|
-- State = Def | Indef | Const ;
|
||||||
|
-- Mood = Ind | Cnj | Jus ;
|
||||||
|
-- Voice = Act | Pas ;
|
||||||
|
Origin =
|
||||||
|
Semitic
|
||||||
|
| Romance
|
||||||
|
| English
|
||||||
|
;
|
||||||
|
-- Order = Verbal | Nominal ;
|
||||||
|
|
||||||
-- CASE AS DEFINED BY ME
|
-- Just for my own use
|
||||||
-- Noun cases (note my examples include DEFINITE ARTICLE)
|
-- Mamma = Per3 Sg Masc ;
|
||||||
-- Commented lines mean that noun iflection is unchanged, not that the case does not occur in Maltese!
|
|
||||||
Case =
|
|
||||||
-- Absessive -- lack or absence of referent (MINGĦAJR)
|
|
||||||
-- | Ablative -- referent as instrument, cause, location, source or time
|
|
||||||
-- | Absolutive -- subject of intransitive or object of transitive verb (in ergative-absolutive languages)
|
|
||||||
-- | Accusative -- referent as direct object (in nominative-accusative languages)
|
|
||||||
-- | Allative -- motion towards referent (LEJN)
|
|
||||||
-- | Additive -- synonym of Allative (above)
|
|
||||||
Benefactive -- referent as recipient, eg GĦAT-TARBIJA. cf Dative.
|
|
||||||
-- | Causative -- referent as the cause of a situation (MINĦABBA)
|
|
||||||
| Comitative -- with, eg MAT-TARBIJA
|
|
||||||
| Dative -- referent as indirect object, eg LIT-TARBIJA. cf Benefactive.
|
|
||||||
-- | Delative -- motion downward from referent
|
|
||||||
| Elative -- motion away from referent, eg MIT-TARBIJA
|
|
||||||
| Equative -- likeness or identity, eg BĦAT-TARBIJA
|
|
||||||
-- | Ergative -- subject of transitive verb (in ergative-absolutive languages)
|
|
||||||
-- | Essive -- temporary state / while / in capacity of (BĦALA)
|
|
||||||
| Genitive -- referent as possessor, eg TAT-TARBIJA
|
|
||||||
-- | Illative -- motion into / towards referent, eg SAT-TARBIJA. cf Allative.
|
|
||||||
| Inessive -- within referent, eg ĠOT-TARBIJA, FIT-TARBIJA
|
|
||||||
| Instrumental -- referent as instrument, eg BIT-TARBIJA. cf Ablative.
|
|
||||||
| Lative -- motion up to referent, eg SAT-TARBIJA
|
|
||||||
-- | Locative -- location at referent
|
|
||||||
| Nominative -- referent as subject, eg IT-TARBIJA
|
|
||||||
-- | Partitive -- partial nature of referent
|
|
||||||
-- | Prolative -- motion along / beside referent
|
|
||||||
-- | Superessive -- on / upon (FUQ)
|
|
||||||
-- | Translative -- referent noun or adjective as result of process of change
|
|
||||||
-- | Vocative -- referent being adressed, eg AA TARBIJA (lol)
|
|
||||||
;
|
|
||||||
|
|
||||||
-- Person = P1 | P2 | P3 ;
|
-- Shortcut type
|
||||||
-- State = Def | Indef | Const ;
|
-- GenNum = gn Gender Number2 ;
|
||||||
-- Mood = Ind | Cnj | Jus ;
|
|
||||||
-- Voice = Act | Pas ;
|
|
||||||
Origin =
|
|
||||||
Semitic
|
|
||||||
| Romance
|
|
||||||
| English
|
|
||||||
;
|
|
||||||
-- Order = Verbal | Nominal ;
|
|
||||||
|
|
||||||
-- Just for my own use
|
|
||||||
-- Mamma = Per3 Sg Masc ;
|
|
||||||
|
|
||||||
-- Shortcut type
|
|
||||||
-- GenNum = gn Gender Number2 ;
|
|
||||||
|
|
||||||
|
|
||||||
Person_Number = Sg | Pl ;
|
Person_Number = Sg | Pl ;
|
||||||
|
|
||||||
-- Agreement features
|
-- Agreement features
|
||||||
Agr =
|
Agr =
|
||||||
Per1 Person_Number -- Jiena, Aħna
|
Per1 Person_Number -- Jiena, Aħna
|
||||||
| Per2 Person_Number -- Inti, Intom
|
| Per2 Person_Number -- Inti, Intom
|
||||||
| Per3Sg Gender -- Huwa, Hija
|
| Per3Sg Gender -- Huwa, Hija
|
||||||
| Per3Pl -- Huma
|
| Per3Pl -- Huma
|
||||||
;
|
;
|
||||||
|
|
||||||
-- Possible tenses
|
-- Possible tenses
|
||||||
Tense =
|
Tense =
|
||||||
Perf -- Perfect tense, eg SERAQ
|
Perf -- Perfect tense, eg SERAQ
|
||||||
| Impf -- Imperfect tense, eg JISRAQ
|
| Impf -- Imperfect tense, eg JISRAQ
|
||||||
| Imp -- Imperative, eg ISRAQ
|
| Imp -- Imperative, eg ISRAQ
|
||||||
-- | PresPart -- Present Particible. Intransitive and 'motion' verbs only, eg NIEŻEL
|
-- | PresPart -- Present Particible. Intransitive and 'motion' verbs only, eg NIEŻEL
|
||||||
-- | PastPart -- Past Particible. Both verbal & adjectival function, eg MISRUQ
|
-- | PastPart -- Past Particible. Both verbal & adjectival function, eg MISRUQ
|
||||||
-- | VerbalNoun -- Verbal Noun, eg SERQ
|
-- | VerbalNoun -- Verbal Noun, eg SERQ
|
||||||
;
|
;
|
||||||
|
|
||||||
-- Possible verb forms (tense + person)
|
-- Possible verb forms (tense + person)
|
||||||
VForm =
|
VForm =
|
||||||
VPerf Agr -- Perfect tense in all pronoun cases
|
VPerf Agr -- Perfect tense in all pronoun cases
|
||||||
| VImpf Agr -- Imperfect tense in all pronoun cases
|
| VImpf Agr -- Imperfect tense in all pronoun cases
|
||||||
| VImp Person_Number -- Imperative is always Per2, Sg & Pl
|
| VImp Person_Number -- Imperative is always Per2, Sg & Pl
|
||||||
-- | VPresPart GenNum -- Present Particible for Gender/Number
|
-- | VPresPart GenNum -- Present Particible for Gender/Number
|
||||||
-- | VPastPart GenNum -- Past Particible for Gender/Number
|
-- | VPastPart GenNum -- Past Particible for Gender/Number
|
||||||
-- | VVerbalNoun -- Verbal Noun
|
-- | VVerbalNoun -- Verbal Noun
|
||||||
;
|
;
|
||||||
|
|
||||||
-- Possible verb types
|
-- Possible verb types
|
||||||
VType =
|
VType =
|
||||||
Strong -- Strong verb: none of radicals are semi-vowels eg ĦAREĠ (Ħ-R-Ġ)
|
Strong -- Strong verb: none of radicals are semi-vowels eg ĦAREĠ (Ħ-R-Ġ)
|
||||||
| Defective -- Defective verb: third radical is semivowel GĦ eg QATA' (Q-T-GĦ)
|
| Defective -- Defective verb: third radical is semivowel GĦ eg QATA' (Q-T-GĦ)
|
||||||
| Weak -- Weak verb: third radicl is semivowel J eg MEXA (M-X-J)
|
| Weak -- Weak verb: third radicl is semivowel J eg MEXA (M-X-J)
|
||||||
| Hollow -- Hollow verb: long A or IE btw radicals 1 & 3 eg QAL (Q-W-L) or SAB (S-J-B)
|
| Hollow -- Hollow verb: long A or IE btw radicals 1 & 3 eg QAL (Q-W-L) or SAB (S-J-B)
|
||||||
| Double -- Double/Geminated verb: radicals 2 & 3 identical eg ĦABB (Ħ-B-B)
|
| Double -- Double/Geminated verb: radicals 2 & 3 identical eg ĦABB (Ħ-B-B)
|
||||||
| Quad -- Quadliteral verb eg KARKAR (K-R-K-R), MAQDAR (M-Q-D-R), LEMBEB (L-M-B-B)
|
| Quad -- Quadliteral verb eg KARKAR (K-R-K-R), MAQDAR (M-Q-D-R), LEMBEB (L-M-B-B)
|
||||||
;
|
;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
|
|
||||||
-- Roots & Patterns
|
-- Roots & Patterns
|
||||||
Pattern : Type = {v1, v2 : Str} ; -- vowel1, vowel2
|
Pattern : Type = {v1, v2 : Str} ; -- vowel1, vowel2
|
||||||
-- Root3 : Type = {K, T, B : Str} ;
|
-- Root3 : Type = {K, T, B : Str} ;
|
||||||
-- Root4 : Type = Root3 ** {L : Str} ;
|
-- Root4 : Type = Root3 ** {L : Str} ;
|
||||||
Root : Type = {K, T, B, L : Str} ;
|
Root : Type = {K, T, B, L : Str} ;
|
||||||
|
|
||||||
-- Some classes. I need to include "c" because currently "ċ" gets downgraded to "c" in input :/
|
-- Some classes. I need to include "c" because currently "ċ" gets downgraded to "c" in input :/
|
||||||
Consonant : pattern Str = #( "b" | "c" | "ċ" | "d" | "f" | "ġ" | "g" | "għ" | "ħ" | "h" | "j" | "k" | "l" | "m" | "n" | "p" | "q" | "r" | "s" | "t" | "v" | "w" | "x" | "ż" | "z" );
|
Consonant : pattern Str = #( "b" | "c" | "ċ" | "d" | "f" | "ġ" | "g" | "għ" | "ħ" | "h" | "j" | "k" | "l" | "m" | "n" | "p" | "q" | "r" | "s" | "t" | "v" | "w" | "x" | "ż" | "z" );
|
||||||
CoronalConsonant : pattern Str = #( "c" | "ċ" | "d" | "n" | "r" | "s" | "t" | "x" | "ż" | "z" ); -- "konsonanti xemxin"
|
CoronalConsonant : pattern Str = #( "c" | "ċ" | "d" | "n" | "r" | "s" | "t" | "x" | "ż" | "z" ); -- "konsonanti xemxin"
|
||||||
LiquidCons : pattern Str = #( "l" | "m" | "n" | "r" | "għ" );
|
LiquidCons : pattern Str = #( "l" | "m" | "n" | "r" | "għ" );
|
||||||
Vowel : pattern Str = #( "a" | "e" | "i" | "o" | "u" );
|
Vowel : pattern Str = #( "a" | "e" | "i" | "o" | "u" );
|
||||||
Digraph : pattern Str = #( "ie" );
|
Digraph : pattern Str = #( "ie" );
|
||||||
SemiVowel : pattern Str = #( "għ" | "j" );
|
SemiVowel : pattern Str = #( "għ" | "j" );
|
||||||
|
|
||||||
{- ===== Type declarations ===== -}
|
{- ===== Type declarations ===== -}
|
||||||
|
|
||||||
-- VP = {
|
-- VP = {
|
||||||
-- v : Verb ;
|
-- v : Verb ;
|
||||||
-- clit : Str ;
|
-- clit : Str ;
|
||||||
-- clitAgr : ClitAgr ;
|
-- clitAgr : ClitAgr ;
|
||||||
-- obj : Agr => Str
|
-- obj : Agr => Str
|
||||||
-- } ;
|
-- } ;
|
||||||
|
|
||||||
-- NP = {
|
-- NP = {
|
||||||
-- s : Case => {clit,obj : Str ; isClit : Bool} ;
|
-- s : Case => {clit,obj : Str ; isClit : Bool} ;
|
||||||
-- a : Agr
|
-- a : Agr
|
||||||
-- } ;
|
-- } ;
|
||||||
|
|
||||||
{-
|
{-
|
||||||
Noun : Type = {
|
Noun : Type = {
|
||||||
s : Number5 => Str ;
|
s : Number5 => Str ;
|
||||||
g : Gender ;
|
g : Gender ;
|
||||||
} ;
|
} ;
|
||||||
-}
|
-}
|
||||||
Noun : Type = {
|
Noun : Type = {
|
||||||
s : Noun_Number => Definiteness => Case => Str ;
|
s : Noun_Number => Definiteness => Str ;
|
||||||
g : Gender ;
|
g : Gender ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
Adj : Type = {
|
Adj : Type = {
|
||||||
s : Gender => Person_Number => Str ;
|
s : Gender => Person_Number => Str ;
|
||||||
-- isPre : Bool ;
|
-- isPre : Bool ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
Verb : Type = {
|
Verb : Type = {
|
||||||
s : VForm => Str ; -- Give me the form (tense, person etc) and I'll give you the string
|
s : VForm => Str ; -- Give me the form (tense, person etc) and I'll give you the string
|
||||||
t : VType ; -- Inherent - Strong/Hollow etc
|
t : VType ; -- Inherent - Strong/Hollow etc
|
||||||
o : Origin ; -- Inherent - a verb of Semitic or Romance origins?
|
o : Origin ; -- Inherent - a verb of Semitic or Romance origins?
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
{- ===== Useful helper functions ===== -}
|
{- ===== Useful helper functions ===== -}
|
||||||
|
|
||||||
addDefinitePreposition : Str -> Str -> Str = \prep,n -> (getDefinitePreposition prep n) ++ n ;
|
addDefinitePreposition : Str -> Str -> Str = \prep,n -> (getDefinitePreposition prep n) ++ n ;
|
||||||
addDefiniteArticle = addDefinitePreposition "il" ;
|
addDefiniteArticle = addDefinitePreposition "il" ;
|
||||||
getDefiniteArticle = getDefinitePreposition "il" ;
|
getDefiniteArticle = getDefinitePreposition "il" ;
|
||||||
|
|
||||||
-- Correctly inflect definite preposition
|
-- Correctly inflect definite preposition
|
||||||
-- A more generic version of getDefiniteArticle
|
-- A more generic version of getDefiniteArticle
|
||||||
-- Params:
|
-- Params:
|
||||||
-- preposition (eg TAL, MAL, BĦALL)
|
-- preposition (eg TAL, MAL, BĦALL)
|
||||||
-- noun
|
-- noun
|
||||||
-- NOTE trying to call this with a runtime string will cause a world of pain. Design around it.
|
-- NOTE trying to call this with a runtime string will cause a world of pain. Design around it.
|
||||||
getDefinitePreposition : Str -> Str -> Str = \prep,noun ->
|
getDefinitePreposition : Str -> Str -> Str = \prep,noun ->
|
||||||
let
|
let
|
||||||
-- Remove either 1 or 2 l's
|
-- Remove either 1 or 2 l's
|
||||||
prepStem : Str = case prep of {
|
prepStem : Str = case prep of {
|
||||||
_ + "ll" => Predef.tk 2 prep ;
|
_ + "ll" => Predef.tk 2 prep ;
|
||||||
_ + "l" => Predef.tk 1 prep ;
|
_ + "l" => Predef.tk 1 prep ;
|
||||||
_ => prep -- this should never happen, I don't think
|
_ => prep -- this should never happen, I don't think
|
||||||
}
|
}
|
||||||
in
|
in
|
||||||
case noun of {
|
case noun of {
|
||||||
("s"|#LiquidCons) + #Consonant + _ => prep + "-i" ; -- L-ISKOLA
|
("s"|#LiquidCons) + #Consonant + _ => prep + "-i" ; -- L-ISKOLA
|
||||||
("għ" | #Vowel) + _ => case prep of { -- L-GĦATBA...
|
("għ" | #Vowel) + _ => case prep of { -- L-GĦATBA...
|
||||||
("fil"|"bil") => (Predef.take 1 prep) + "l-" ;
|
("fil"|"bil") => (Predef.take 1 prep) + "l-" ;
|
||||||
"il" => "l" + "-" ;
|
"il" => "l" + "-" ;
|
||||||
_ => prep + "-"
|
_ => prep + "-"
|
||||||
};
|
};
|
||||||
K@#CoronalConsonant + _ => prepStem + K + "-" ; -- IĊ-ĊISK
|
K@#CoronalConsonant + _ => prepStem + K + "-" ; -- IĊ-ĊISK
|
||||||
#Consonant + _ => prep + "-" ; -- IL-QADDIS
|
#Consonant + _ => prep + "-" ; -- IL-QADDIS
|
||||||
_ => [] -- ?
|
_ => [] -- ?
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
definiteArticle : Str =
|
definiteArticle : Str =
|
||||||
pre {
|
pre {
|
||||||
"il-" ;
|
"il-" ;
|
||||||
"l-" / strs { "a" ; "e" ; "i" ; "o" ; "u" ; "h" ; "għ" } ;
|
"l-" / strs { "a" ; "e" ; "i" ; "o" ; "u" ; "h" ; "għ" } ;
|
||||||
"iċ-" / strs { "ċ" } ;
|
"iċ-" / strs { "ċ" } ;
|
||||||
"id-" / strs { "d" } ;
|
"id-" / strs { "d" } ;
|
||||||
"in-" / strs { "n" } ;
|
"in-" / strs { "n" } ;
|
||||||
"ir-" / strs { "r" } ;
|
"ir-" / strs { "r" } ;
|
||||||
"is-" / strs { "s" } ;
|
"is-" / strs { "s" } ;
|
||||||
"it-" / strs { "t" } ;
|
"it-" / strs { "t" } ;
|
||||||
"ix-" / strs { "x" } ;
|
"ix-" / strs { "x" } ;
|
||||||
"iż-" / strs { "ż" } ;
|
"iż-" / strs { "ż" } ;
|
||||||
"iz-" / strs { "z" }
|
"iz-" / strs { "z" }
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
-- SentenceMlt.gf: clauses and sentences
|
-- SentenceMlt.gf: clauses and sentences
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
--# -path=.:abstract:common:prelude
|
--# -path=.:abstract:common:prelude
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
-- StructuralMlt.gf: lexicon of structural words
|
-- StructuralMlt.gf: lexicon of structural words
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
concrete StructuralMlt of Structural = CatMlt **
|
concrete StructuralMlt of Structural = CatMlt **
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
--# -path=.:abstract:common
|
--# -path=.:abstract:common
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
-- TextMlt.gf: many-phrase texts
|
-- TextMlt.gf: many-phrase texts
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
concrete IdiomMlt of Idiom = CatMlt ** open Prelude, ResMlt in {
|
concrete IdiomMlt of Idiom = CatMlt ** open Prelude, ResMlt in {
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
-- VerbMlt.gf: verb phrases
|
-- VerbMlt.gf: verb phrases
|
||||||
--
|
--
|
||||||
-- Maltese Resource Grammar Library
|
-- Maltese Resource Grammar Library
|
||||||
-- John J. Camilleri, 2011
|
-- John J. Camilleri, 2012
|
||||||
-- Licensed under LGPL
|
-- Licensed under LGPL
|
||||||
|
|
||||||
concrete VerbMlt of Verb = CatMlt ** open Prelude, ResMlt in {
|
concrete VerbMlt of Verb = CatMlt ** open Prelude, ResMlt in {
|
||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
-- Comp
|
-- Comp
|
||||||
-- VP
|
-- VP
|
||||||
|
|||||||
Reference in New Issue
Block a user