forked from GitHub/gf-rgl
added documentaion and missing paradigm functions
This commit is contained in:
@@ -78,6 +78,8 @@ concrete CatIna of Cat = CommonX ** open ResIna, Prelude in {
|
|||||||
N2 = {s : Number => Str} ** {p2 : Str; c2 : Case} ;
|
N2 = {s : Number => Str} ** {p2 : Str; c2 : Case} ;
|
||||||
N3 = {s : Number => Str} ** {p2,p3 : Str; c2,c3 : Case} ;
|
N3 = {s : Number => Str} ** {p2,p3 : Str; c2,c3 : Case} ;
|
||||||
|
|
||||||
PN = {s : Str} ;
|
PN,LN = {s : Str} ;
|
||||||
|
GN = {s : Str ; g : Sex} ;
|
||||||
|
SN = {s : Sex => Str ; pl : Str} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
113
src/interlingua/DocumentationIna.gf
Normal file
113
src/interlingua/DocumentationIna.gf
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
--# -path=.:../abstract:../common
|
||||||
|
|
||||||
|
concrete DocumentationIna of Documentation = CatIna ** open
|
||||||
|
ResIna,
|
||||||
|
Prelude,
|
||||||
|
HTML
|
||||||
|
in {
|
||||||
|
flags coding=utf8 ;
|
||||||
|
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Inflection = {t : Str; s1,s2 : Str} ;
|
||||||
|
Definition = {s : Str} ;
|
||||||
|
Document = {s : Str} ;
|
||||||
|
Tag = {s : Str} ;
|
||||||
|
|
||||||
|
{-
|
||||||
|
-} --# notpresent
|
||||||
|
|
||||||
|
lin
|
||||||
|
InflectionN, InflectionN2, InflectionN3 = \noun -> {
|
||||||
|
t = "s" ;
|
||||||
|
s1 = heading1 "Substantivo" ;
|
||||||
|
s2 = frameTable (
|
||||||
|
tr (th "Singular" ++ th "Plural") ++
|
||||||
|
tr (td (noun.s ! Sg) ++ td (noun.s ! Pl))
|
||||||
|
)
|
||||||
|
} ;
|
||||||
|
|
||||||
|
InflectionPN = \pn -> {
|
||||||
|
t = "pn" ;
|
||||||
|
s1 = heading1 ("Nombre Proprio") ;
|
||||||
|
s2 = pn.s
|
||||||
|
} ;
|
||||||
|
|
||||||
|
InflectionGN = \gn -> {
|
||||||
|
t = "pn" ;
|
||||||
|
s1 = heading1 ("Nombre de Pila" ++
|
||||||
|
case gn.g of {
|
||||||
|
Male => "(Mascule)" ;
|
||||||
|
Female => "(Femina)"
|
||||||
|
}) ;
|
||||||
|
s2 = gn.s
|
||||||
|
} ;
|
||||||
|
|
||||||
|
InflectionSN = \sn -> {
|
||||||
|
t = "sn" ;
|
||||||
|
s1 = heading1 "Apellido" ;
|
||||||
|
s2 = sn.s ! Male
|
||||||
|
} ;
|
||||||
|
|
||||||
|
InflectionLN = \ln -> {
|
||||||
|
t = "nl" ;
|
||||||
|
s1 = heading1 ("Nombre del Lugar") ;
|
||||||
|
s2 = paragraph ln.s
|
||||||
|
} ;
|
||||||
|
|
||||||
|
InflectionA, InflectionA2 = \adj -> {
|
||||||
|
t = "a" ;
|
||||||
|
s1 = heading1 "Adjectivo" ;
|
||||||
|
s2 = paragraph (adj.s ! AAdj Posit)
|
||||||
|
} ;
|
||||||
|
|
||||||
|
InflectionAdv, InflectionAdV, InflectionAdA, InflectionAdN = \adv -> {
|
||||||
|
t = "adv" ;
|
||||||
|
s1 = heading1 "Adverbio" ;
|
||||||
|
s2 = paragraph adv.s
|
||||||
|
} ;
|
||||||
|
|
||||||
|
InflectionPrep p = {
|
||||||
|
t = "prep" ;
|
||||||
|
s1 = heading1 "Preposition" ;
|
||||||
|
s2 = paragraph p.s
|
||||||
|
} ;
|
||||||
|
|
||||||
|
InflectionV, InflectionV2, InflectionV3, InflectionV2V, InflectionV2S, InflectionV2Q, InflectionV2A, InflectionVV, InflectionVS, InflectionVQ, InflectionVA = \v -> {
|
||||||
|
t = "v" ;
|
||||||
|
s1 = heading1 "Verbo" ;
|
||||||
|
s2 = inflVerb v
|
||||||
|
} ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
NoDefinition t = {s=t.s};
|
||||||
|
MkDefinition t d = {s="<p><b>Definición:</b>"++t.s++d.s++"</p>"};
|
||||||
|
MkDefinitionEx t d e = {s="<p><b>Definición:</b>"++t.s++d.s++"</p><p><b>Ejemplo:</b>"++e.s++"</p>"};
|
||||||
|
|
||||||
|
lin
|
||||||
|
MkDocument b i e = ss (i.s1 ++ "<p style=\"font-size:20px\">"++b.s++"</p>" ++ i.s2 ++ paragraph e.s) ; -- explanation appended in a new paragraph
|
||||||
|
MkTag i = ss i.t ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
inflVerb : Verb -> Str = \verb ->
|
||||||
|
frameTable (
|
||||||
|
tr (th "infinitivo" ++
|
||||||
|
td (verb.s ! VInf)) ++
|
||||||
|
tr (th "presente" ++
|
||||||
|
td (verb.s ! VPres)) ++
|
||||||
|
tr (th "participio passato" ++
|
||||||
|
td (verb.s ! VPPart)) ++
|
||||||
|
tr (th "participio presente" ++
|
||||||
|
td (verb.s ! VPresPart)) ++
|
||||||
|
tr (th "passato" ++
|
||||||
|
td (verb.s ! VPast)) ++
|
||||||
|
tr (th "futuro" ++
|
||||||
|
td (verb.s ! VFut)) ++
|
||||||
|
tr (th "conditional" ++
|
||||||
|
td (verb.s ! VCond))
|
||||||
|
) ;
|
||||||
|
|
||||||
|
{- --# notpresent
|
||||||
|
-}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -2,7 +2,8 @@
|
|||||||
|
|
||||||
concrete LangIna of Lang =
|
concrete LangIna of Lang =
|
||||||
GrammarIna,
|
GrammarIna,
|
||||||
LexiconIna
|
LexiconIna,
|
||||||
|
DocumentationIna
|
||||||
** {
|
** {
|
||||||
|
|
||||||
flags startcat = Phr ; unlexer = text ; lexer = text ;
|
flags startcat = Phr ; unlexer = text ; lexer = text ;
|
||||||
|
|||||||
@@ -7,355 +7,355 @@ concrete LexiconIna of Lexicon = CatIna **
|
|||||||
optimize=values ;
|
optimize=values ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
airplane_N = regN "avion";
|
airplane_N = mkN "avion";
|
||||||
answer_V2S = prepV2 aP (regV "responder");
|
answer_V2S = mkV2 (mkV "responder") aP;
|
||||||
apartment_N = regN "appartamento";
|
apartment_N = mkN "appartamento";
|
||||||
apple_N = regN "pomo";
|
apple_N = mkN "pomo";
|
||||||
art_N = regN "arte" ;
|
art_N = mkN "arte" ;
|
||||||
ask_V2Q = mkV2Q aP (regV "demandar") ;
|
ask_V2Q = mkV2Q (mkV "demandar") aP ;
|
||||||
baby_N = regN "bebe" ;
|
baby_N = mkN "bebe" ;
|
||||||
bad_A = regA "mal";
|
bad_A = mkA "mal";
|
||||||
bank_N = regN "banca" ;
|
bank_N = mkN "banca" ;
|
||||||
beautiful_A = regA "belle" ;
|
beautiful_A = mkA "belle" ;
|
||||||
become_VA = mkVA (regV "devenir") ;
|
become_VA = mkVA (mkV "devenir") ;
|
||||||
beer_N = regN "bira" ;
|
beer_N = mkN "bira" ;
|
||||||
beg_V2V = mkV2V noPrep aP (regV "rogar") ;
|
beg_V2V = mkV2V (mkV "rogar") noPrep aP ;
|
||||||
big_A = regA "magne" ;
|
big_A = mkA "magne" ;
|
||||||
bike_N = regN "bicycletta" ;
|
bike_N = mkN "bicycletta" ;
|
||||||
bird_N = regN "ave" ;
|
bird_N = mkN "ave" ;
|
||||||
black_A = regA "nigre" ;
|
black_A = mkA "nigre" ;
|
||||||
blue_A = regA "blau" ;
|
blue_A = mkA "blau" ;
|
||||||
boat_N = regN "barca" ;
|
boat_N = mkN "barca" ;
|
||||||
book_N = regN "libro" ;
|
book_N = mkN "libro" ;
|
||||||
boot_N = regN "botta";
|
boot_N = mkN "botta";
|
||||||
boss_N = regN "chef" ;
|
boss_N = mkN "chef" ;
|
||||||
boy_N = regN "puero" ;
|
boy_N = mkN "puero" ;
|
||||||
bread_N = regN "pan" ;
|
bread_N = mkN "pan" ;
|
||||||
break_V2 = dirV2 (regV "rumper") ;
|
break_V2 = mkV2 (mkV "rumper") ;
|
||||||
broad_A = regA "large" ;
|
broad_A = mkA "large" ;
|
||||||
brother_N2 = regN2 "fratre";
|
brother_N2 = regN2 "fratre";
|
||||||
brown_A = regA "brun" ;
|
brown_A = mkA "brun" ;
|
||||||
butter_N = regN "butyro" ;
|
butter_N = mkN "butyro" ;
|
||||||
buy_V2 = dirV2 (regV "compra");
|
buy_V2 = mkV2 (mkV "compra");
|
||||||
camera_N = compN (regN "apparato" ) ["photographic"] ;
|
camera_N = compN (mkN "apparato" ) ["photographic"] ;
|
||||||
cap_N = regN "bonetto" ;
|
cap_N = mkN "bonetto" ;
|
||||||
car_N = regN "automobile" ;
|
car_N = mkN "automobile" ;
|
||||||
carpet_N = regN "tapete" ;
|
carpet_N = mkN "tapete" ;
|
||||||
cat_N = regN "catto" ;
|
cat_N = mkN "catto" ;
|
||||||
ceiling_N = regN "tecto" ; -- of room ???
|
ceiling_N = mkN "tecto" ; -- of room ???
|
||||||
chair_N = regN "sede";
|
chair_N = mkN "sede";
|
||||||
cheese_N = regN "caseo";
|
cheese_N = mkN "caseo";
|
||||||
child_N = regN "infante" ;
|
child_N = mkN "infante" ;
|
||||||
church_N = regN "ecclesia" ;
|
church_N = mkN "ecclesia" ;
|
||||||
city_N = regN "urbe" ; -- ??? citate
|
city_N = mkN "urbe" ; -- ??? citate
|
||||||
clean_A = regA "munde" ;
|
clean_A = mkA "munde" ;
|
||||||
clever_A = regA "intelligente" ;
|
clever_A = mkA "intelligente" ;
|
||||||
close_V2 = dirV2 (regV "clauder") ;
|
close_V2 = mkV2 (mkV "clauder") ;
|
||||||
coat_N = regN "mantello" ;
|
coat_N = mkN "mantello" ;
|
||||||
cold_A = regA "frigide" ;
|
cold_A = mkA "frigide" ;
|
||||||
come_V = regV "venir" ;
|
come_V = mkV "venir" ;
|
||||||
computer_N = regN "computator" ;
|
computer_N = mkN "computator" ;
|
||||||
country_N = regN "pais" ;
|
country_N = mkN "pais" ;
|
||||||
cousin_N = regN "cosino" ; ---- cosina
|
cousin_N = mkN "cosino" ; ---- cosina
|
||||||
cow_N = regN "vacca" ;
|
cow_N = mkN "vacca" ;
|
||||||
die_V = regV "morir" ;
|
die_V = mkV "morir" ;
|
||||||
dirty_A = regA "immunde" ;
|
dirty_A = mkA "immunde" ;
|
||||||
distance_N3 = prepN3 aP (prepN2 deP (regN "distantia")) ; --- ??? wtf
|
distance_N3 = prepN3 aP (prepN2 deP (mkN "distantia")) ; --- ??? wtf
|
||||||
doctor_N = regN "medico";
|
doctor_N = mkN "medico";
|
||||||
dog_N = regN "can";
|
dog_N = mkN "can";
|
||||||
door_N = regN "porta";
|
door_N = mkN "porta";
|
||||||
drink_V2 = dirV2 (regV "biber");
|
drink_V2 = mkV2 (mkV "biber");
|
||||||
easy_A2V = mkA2V (regA "facile") aP ;
|
easy_A2V = mkA2V (mkA "facile") aP ;
|
||||||
eat_V2 = dirV2 (regV "eder");
|
eat_V2 = mkV2 (mkV "eder");
|
||||||
empty_A = regA "vacue" ;
|
empty_A = mkA "vacue" ;
|
||||||
enemy_N = regN "inimico" ;
|
enemy_N = mkN "inimico" ;
|
||||||
factory_N = regN "fabrica" ;
|
factory_N = mkN "fabrica" ;
|
||||||
father_N2 = regN2 "patre" ;
|
father_N2 = regN2 "patre" ;
|
||||||
fear_VS = mkVS (regV "timer") ;
|
fear_VS = mkVS (mkV "timer") ;
|
||||||
find_V2 = dirV2 (regV "trovar") ;
|
find_V2 = mkV2 (mkV "trovar") ;
|
||||||
fish_N = regN "pisce" ;
|
fish_N = mkN "pisce" ;
|
||||||
floor_N = regN "pavimento" ;
|
floor_N = mkN "pavimento" ;
|
||||||
forget_V2 = dirV2 (regV "oblidar");
|
forget_V2 = mkV2 (mkV "oblidar");
|
||||||
fridge_N = regN "refrigerator";
|
fridge_N = mkN "refrigerator";
|
||||||
friend_N = regN "amico" ;
|
friend_N = mkN "amico" ;
|
||||||
fruit_N = regN "fructo" ;
|
fruit_N = mkN "fructo" ;
|
||||||
fun_AV = mkAV (regA "famusante") ;
|
fun_AV = mkAV (mkA "famusante") ;
|
||||||
garden_N = regN "horto" ;
|
garden_N = mkN "horto" ;
|
||||||
girl_N = regN "puera" ;
|
girl_N = mkN "puera" ;
|
||||||
glove_N = regN "guanto" ;
|
glove_N = mkN "guanto" ;
|
||||||
go_V = regV "ir";
|
go_V = mkV "ir";
|
||||||
gold_N = regN "auro" ;
|
gold_N = mkN "auro" ;
|
||||||
good_A = R.mkAdjective "bon" "melior" "optime";
|
good_A = R.mkAdjective "bon" "melior" "optime";
|
||||||
green_A = regA "verde" ;
|
green_A = mkA "verde" ;
|
||||||
harbour_N = regN "porto" ;
|
harbour_N = mkN "porto" ;
|
||||||
hate_V2 = dirV2 (regV "detestar0") ;
|
hate_V2 = mkV2 (mkV "detestar0") ;
|
||||||
hat_N = regN "cappello" ;
|
hat_N = mkN "cappello" ;
|
||||||
hear_V2 = dirV2 (regV "audir");
|
hear_V2 = mkV2 (mkV "audir");
|
||||||
hill_N = regN "monticulo" ;
|
hill_N = mkN "monticulo" ;
|
||||||
hope_VS = mkVS (regV "sperar") ;
|
hope_VS = mkVS (mkV "sperar") ;
|
||||||
horse_N = regN "cavallo" ;
|
horse_N = mkN "cavallo" ;
|
||||||
hot_A = regA "calide" ;
|
hot_A = mkA "calide" ;
|
||||||
house_N = regN "domo" ;
|
house_N = mkN "domo" ;
|
||||||
important_A = regA "importante" ;
|
important_A = mkA "importante" ;
|
||||||
industry_N = regN "industria" ;
|
industry_N = mkN "industria" ;
|
||||||
iron_N = regN "ferro" ;
|
iron_N = mkN "ferro" ;
|
||||||
king_N = regN "rege" ;
|
king_N = mkN "rege" ;
|
||||||
know_V2 = dirV2 (regV "cognoscer") ; -- ???
|
know_V2 = mkV2 (mkV "cognoscer") ; -- ???
|
||||||
lake_N = regN "laco" ;
|
lake_N = mkN "laco" ;
|
||||||
lamp_N = regN "lampa" ;
|
lamp_N = mkN "lampa" ;
|
||||||
learn_V2 = dirV2 (regV "apprender") ;
|
learn_V2 = mkV2 (mkV "apprender") ;
|
||||||
leather_N = regN "corio" ;
|
leather_N = mkN "corio" ;
|
||||||
leave_V2 = prepV2 deP (regV "partir");
|
leave_V2 = mkV2 (mkV "partir") deP;
|
||||||
like_V2 = dirV2 (regV "amar") ;
|
like_V2 = mkV2 (mkV "amar") ;
|
||||||
listen_V2 = dirV2 (regV "ascoltar") ;
|
listen_V2 = mkV2 (mkV "ascoltar") ;
|
||||||
live_V = (regV "vive") ;
|
live_V = mkV "vive" ;
|
||||||
long_A = regA "longe" ;
|
long_A = mkA "longe" ;
|
||||||
lose_V2 = dirV2 (regV "perder");
|
lose_V2 = mkV2 (mkV "perder");
|
||||||
love_N = regN "amor" ;
|
love_N = mkN "amor" ;
|
||||||
love_V2 = dirV2 (regV "adorar") ;
|
love_V2 = mkV2 (mkV "adorar") ;
|
||||||
man_N = regN "viro";
|
man_N = mkN "viro";
|
||||||
married_A2 = mkA2 (regA "sponsate") aP ;
|
married_A2 = mkA2 (mkA "sponsate") aP ;
|
||||||
meat_N = regN "carne" ;
|
meat_N = mkN "carne" ;
|
||||||
milk_N = regN "lacte" ;
|
milk_N = mkN "lacte" ;
|
||||||
moon_N = regN "luna" ;
|
moon_N = mkN "luna" ;
|
||||||
mother_N2 = regN2 "matre" ;
|
mother_N2 = regN2 "matre" ;
|
||||||
mountain_N = regN "montania" ;
|
mountain_N = mkN "montania" ;
|
||||||
music_N = regN "musica" ;
|
music_N = mkN "musica" ;
|
||||||
narrow_A = regA "stricte" ;
|
narrow_A = mkA "stricte" ;
|
||||||
new_A = regA "nove" ;
|
new_A = mkA "nove" ;
|
||||||
newspaper_N = regN "jornal" ;
|
newspaper_N = mkN "jornal" ;
|
||||||
oil_N = regN "oleo" ;
|
oil_N = mkN "oleo" ;
|
||||||
old_A = regA "vetule" ;
|
old_A = mkA "vetule" ;
|
||||||
open_V2 = dirV2 (regV "operir") ;
|
open_V2 = mkV2 (mkV "operir") ;
|
||||||
paint_V2A = mkV2A noPrep inP (regV "pinger") ; -- ??? preposition might be wrong. (did not find a sample usage)
|
paint_V2A = mkV2A (mkV "pinger") noPrep inP ; -- ??? preposition might be wrong. (did not find a sample usage)
|
||||||
paper_N = regN "papiro" ;
|
paper_N = mkN "papiro" ;
|
||||||
paris_PN = regPN "Paris" ;
|
paris_PN = mkPN "Paris" ;
|
||||||
peace_N = regN "pace" ;
|
peace_N = mkN "pace" ;
|
||||||
pen_N = regN "penna" ;
|
pen_N = mkN "penna" ;
|
||||||
planet_N = regN "planeta" ;
|
planet_N = mkN "planeta" ;
|
||||||
plastic_N = regN "plastico" ;
|
plastic_N = mkN "plastico" ;
|
||||||
play_V2 = dirV2 (regV "sonar") ; -- ??? eg. play the piano
|
play_V2 = mkV2 (mkV "sonar") ; -- ??? eg. play the piano
|
||||||
policeman_N = regN "policero" ;
|
policeman_N = mkN "policero" ;
|
||||||
priest_N = regN "prestre" ;
|
priest_N = mkN "prestre" ;
|
||||||
probable_AS = mkAS (regA "probabile") ;
|
probable_AS = mkAS (mkA "probabile") ;
|
||||||
queen_N = regN "regina" ;
|
queen_N = mkN "regina" ;
|
||||||
radio_N = regN "radio" ;
|
radio_N = mkN "radio" ;
|
||||||
rain_V0 = mkV0 (regV "pluvar") ;
|
rain_V0 = mkV0 (mkV "pluvar") ;
|
||||||
read_V2 = dirV2 (regV "leger");
|
read_V2 = mkV2 (mkV "leger");
|
||||||
red_A = regA "rubie" ;
|
red_A = mkA "rubie" ;
|
||||||
religion_N = regN "religion" ;
|
religion_N = mkN "religion" ;
|
||||||
restaurant_N = regN "restaurant" ;
|
restaurant_N = mkN "restaurant" ;
|
||||||
river_N = regN "riviera" ;
|
river_N = mkN "riviera" ;
|
||||||
rock_N = regN "rocca" ;
|
rock_N = mkN "rocca" ;
|
||||||
roof_N = regN "tecto" ;
|
roof_N = mkN "tecto" ;
|
||||||
rubber_N = regN "cauchu" ;
|
rubber_N = mkN "cauchu" ;
|
||||||
run_V = regV "currer";
|
run_V = mkV "currer";
|
||||||
say_VS = mkVS (regV "dicer");
|
say_VS = mkVS (mkV "dicer");
|
||||||
school_N = regN "schola" ;
|
school_N = mkN "schola" ;
|
||||||
science_N = regN "scientia";
|
science_N = mkN "scientia";
|
||||||
sea_N = regN "mar" ;
|
sea_N = mkN "mar" ;
|
||||||
seek_V2 = dirV2 (regV "cercar");
|
seek_V2 = mkV2 (mkV "cercar");
|
||||||
see_V2 = dirV2 (regV "vider");
|
see_V2 = mkV2 (mkV "vider");
|
||||||
sell_V3 = prepV3 aP (dirV2 (regV "vender"));
|
sell_V3 = mkV3 (mkV "vender") noPrep aP;
|
||||||
send_V3 = prepV3 aP (dirV2 (regV "inviar"));
|
send_V3 = mkV3 (mkV "inviar") noPrep aP;
|
||||||
sheep_N = regN "ove";
|
sheep_N = mkN "ove";
|
||||||
ship_N = regN "nave" ;
|
ship_N = mkN "nave" ;
|
||||||
shirt_N = regN "camisa" ;
|
shirt_N = mkN "camisa" ;
|
||||||
shoe_N = regN "scapra" ;
|
shoe_N = mkN "scapra" ;
|
||||||
shop_N = regN "boteca" ;
|
shop_N = mkN "boteca" ;
|
||||||
short_A = regA "curte" ;
|
short_A = mkA "curte" ;
|
||||||
silver_N = regN "argento" ;
|
silver_N = mkN "argento" ;
|
||||||
sister_N = regN "soror" ;
|
sister_N = mkN "soror" ;
|
||||||
sleep_V = regV "dormir";
|
sleep_V = mkV "dormir";
|
||||||
small_A = regA "parve" ; -- !!! This one should be preferably a prefix adjective
|
small_A = mkA "parve" ; -- !!! This one should be preferably a prefix adjective
|
||||||
snake_N = regN "serpente" ;
|
snake_N = mkN "serpente" ;
|
||||||
sock_N = regN "calcetta" ;
|
sock_N = mkN "calcetta" ;
|
||||||
speak_V2 = dirV2 (regV "parlar") ;-- ???
|
speak_V2 = mkV2 (mkV "parlar") ;-- ???
|
||||||
star_N = regN "stella" ;
|
star_N = mkN "stella" ;
|
||||||
steel_N = regN "aciero" ;
|
steel_N = mkN "aciero" ;
|
||||||
stone_N = regN "petra" ;
|
stone_N = mkN "petra" ;
|
||||||
stove_N = regN "estufa" ;
|
stove_N = mkN "estufa" ;
|
||||||
student_N = regN "studente" ;
|
student_N = mkN "studente" ;
|
||||||
stupid_A = regA "nescie" ;
|
stupid_A = mkA "nescie" ;
|
||||||
sun_N = regN "sol" ;
|
sun_N = mkN "sol" ;
|
||||||
switch8off_V2 = dirV2 (regV "extinguer");
|
switch8off_V2 = mkV2 (mkV "extinguer");
|
||||||
switch8on_V2 = dirV2 (regV "accender") ;
|
switch8on_V2 = mkV2 (mkV "accender") ;
|
||||||
table_N = regN "tablula" ;
|
table_N = mkN "tablula" ;
|
||||||
talk_V3 = (prepV3 deP (prepV2 aP (regV "parlar"))) ;
|
talk_V3 = mkV3 (mkV "parlar") deP aP ;
|
||||||
teacher_N = regN "professor" ;
|
teacher_N = mkN "professor" ;
|
||||||
teach_V2 = dirV2 (regV "inseniar"); -- ??? aP (preposition is what?)
|
teach_V2 = mkV2 (mkV "inseniar"); -- ??? aP (preposition is what?)
|
||||||
television_N = regN "television" ;
|
television_N = mkN "television" ;
|
||||||
thick_A = regA "spisse" ;
|
thick_A = mkA "spisse" ;
|
||||||
thin_A = regA "magre" ;
|
thin_A = mkA "magre" ;
|
||||||
train_N = regN "convoyo" ; -- ???
|
train_N = mkN "convoyo" ; -- ???
|
||||||
travel_V = regV "viagiar" ;
|
travel_V = mkV "viagiar" ;
|
||||||
tree_N = regN "tarbore" ;
|
tree_N = mkN "tarbore" ;
|
||||||
---- trousers_N = regN "pantalon" ; --- ??? funky plural in the Abstract lexicon...
|
---- trousers_N = mkN "pantalon" ; --- ??? funky plural in the Abstract lexicon...
|
||||||
ugly_A = regA "ugly" ;
|
ugly_A = mkA "ugly" ;
|
||||||
understand_V2 = dirV2 (regV "comprender");
|
understand_V2 = mkV2 (mkV "comprender");
|
||||||
university_N = regN "universitate" ;
|
university_N = mkN "universitate" ;
|
||||||
village_N = regN "village" ;
|
village_N = mkN "village" ;
|
||||||
wait_V2 = dirV2 (regV "wait") ;
|
wait_V2 = mkV2 (mkV "wait") ;
|
||||||
walk_V = (regV "ambular") ;
|
walk_V = (mkV "ambular") ;
|
||||||
warm_A = regA "calde" ;
|
warm_A = mkA "calde" ;
|
||||||
war_N = regN "guerra" ;
|
war_N = mkN "guerra" ;
|
||||||
watch_V2 = dirV2 (regV "spectar") ;
|
watch_V2 = mkV2 (mkV "spectar") ;
|
||||||
water_N = regN "aqua" ;
|
water_N = mkN "aqua" ;
|
||||||
white_A = regA "albe" ;
|
white_A = mkA "albe" ;
|
||||||
window_N = regN "fenestra" ;
|
window_N = mkN "fenestra" ;
|
||||||
wine_N = regN "vino" ;
|
wine_N = mkN "vino" ;
|
||||||
win_V2 = dirV2 (regV "ganiar");
|
win_V2 = mkV2 (mkV "ganiar");
|
||||||
woman_N = regN "femina";
|
woman_N = mkN "femina";
|
||||||
wonder_VQ = mkVQ (reflV (regV "demandar")) ;
|
wonder_VQ = mkVQ (reflV (mkV "demandar")) ;
|
||||||
wood_N = regN "ligno"; -- or silva ...
|
wood_N = mkN "ligno"; -- or silva ...
|
||||||
write_V2 = dirV2 (regV "scriber");
|
write_V2 = mkV2 (mkV "scriber");
|
||||||
yellow_A = regA "jalne" ;
|
yellow_A = mkA "jalne" ;
|
||||||
young_A = regA "juvene" ;
|
young_A = mkA "juvene" ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
do_V2 = dirV2 (regV "facer");
|
do_V2 = mkV2 (mkV "facer");
|
||||||
add_V3 = prepV3 aP (dirV2 (regV "additionar"));
|
add_V3 = mkV3 (mkV "additionar") noPrep aP;
|
||||||
already_Adv = mkAdv "jam" ;
|
already_Adv = mkAdv "jam" ;
|
||||||
animal_N = regN "animal" ;
|
animal_N = mkN "animal" ;
|
||||||
ashes_N = regN "cinere" ; -- plural only???
|
ashes_N = mkN "cinere" ; -- plural only???
|
||||||
back_N = regN "dorso" ;
|
back_N = mkN "dorso" ;
|
||||||
bark_N = regN "cortice" ;
|
bark_N = mkN "cortice" ;
|
||||||
belly_N = regN "ventre" ;
|
belly_N = mkN "ventre" ;
|
||||||
bite_V2 = dirV2 (regV "morder");
|
bite_V2 = mkV2 (mkV "morder");
|
||||||
blood_N = regN "sanguine" ;
|
blood_N = mkN "sanguine" ;
|
||||||
blow_V = regV "sufflar";
|
blow_V = mkV "sufflar";
|
||||||
bone_N = regN "osso" ;
|
bone_N = mkN "osso" ;
|
||||||
breast_N = regN "pectore" ;
|
breast_N = mkN "pectore" ;
|
||||||
breathe_V = dirV2 (regV "respirar") ;
|
breathe_V = mkV "respirar" ;
|
||||||
burn_V = regV "arder";
|
burn_V = mkV "arder";
|
||||||
cloud_N = regN "nube" ;
|
cloud_N = mkN "nube" ;
|
||||||
correct_A = (regA "correcte") ;
|
correct_A = (mkA "correcte") ;
|
||||||
count_V2 = dirV2 (regV "numerar") ;
|
count_V2 = mkV2 (mkV "numerar") ;
|
||||||
cut_V2 = dirV2 (regV "secar");
|
cut_V2 = mkV2 (mkV "secar");
|
||||||
day_N = regN "die" ;
|
day_N = mkN "die" ;
|
||||||
dig_V = regV "fossar";
|
dig_V = mkV "fossar";
|
||||||
dry_A = regA "sic" ;
|
dry_A = mkA "sic" ;
|
||||||
dull_A = regA "enoiose" ;
|
dull_A = mkA "enoiose" ;
|
||||||
dust_N = regN "pulvere" ;
|
dust_N = mkN "pulvere" ;
|
||||||
ear_N = regN "aure" ;
|
ear_N = mkN "aure" ;
|
||||||
earth_N = regN "terra" ;
|
earth_N = mkN "terra" ;
|
||||||
egg_N = regN "ovo" ;
|
egg_N = mkN "ovo" ;
|
||||||
eye_N = regN "oculo" ;
|
eye_N = mkN "oculo" ;
|
||||||
fall_V = regV "cader" ;
|
fall_V = mkV "cader" ;
|
||||||
far_Adv = mkAdv "lontano" ;
|
far_Adv = mkAdv "lontano" ;
|
||||||
fat_N = regN "grasse" ;
|
fat_N = mkN "grasse" ;
|
||||||
fear_V2 = dirV2 (regV "timer") ;
|
fear_V2 = mkV2 (mkV "timer") ;
|
||||||
feather_N = regN "pluma" ;
|
feather_N = mkN "pluma" ;
|
||||||
fight_V2 = dirV2 (regV "combattar");
|
fight_V2 = mkV2 (mkV "combattar");
|
||||||
fingernail_N = regN "ungual";
|
fingernail_N = mkN "ungual";
|
||||||
fire_N = regN "foco" ;
|
fire_N = mkN "foco" ;
|
||||||
float_V = regV "flottar" ;
|
float_V = mkV "flottar" ;
|
||||||
flow_V = regV "flucto" ;
|
flow_V = mkV "flucto" ;
|
||||||
flower_N = regN "flore" ;
|
flower_N = mkN "flore" ;
|
||||||
fly_V = regV "volar" ;
|
fly_V = mkV "volar" ;
|
||||||
fog_N = regN "bruma" ;
|
fog_N = mkN "bruma" ;
|
||||||
foot_N = regN "pede";
|
foot_N = mkN "pede";
|
||||||
forest_N = regN "silva" ;
|
forest_N = mkN "silva" ;
|
||||||
freeze_V = regV "gelar";
|
freeze_V = mkV "gelar";
|
||||||
full_A = regA "plen" ;
|
full_A = mkA "plen" ;
|
||||||
give_V3 = prepV3 aP (dirV2 (regV "dar")) ;
|
give_V3 = mkV3 (mkV "dar") noPrep aP ;
|
||||||
grammar_N = regN "grammatica" ;
|
grammar_N = mkN "grammatica" ;
|
||||||
grass_N = regN "herba" ;
|
grass_N = mkN "herba" ;
|
||||||
guts_N = regN "tripas" ; -- !!!: no singular
|
guts_N = mkN "tripas" ; -- !!!: no singular
|
||||||
hair_N = regN "pilo" ;
|
hair_N = mkN "pilo" ;
|
||||||
hand_N = regN "mano" ;
|
hand_N = mkN "mano" ;
|
||||||
head_N = regN "capite" ;
|
head_N = mkN "capite" ;
|
||||||
heart_N = regN "corde" ;
|
heart_N = mkN "corde" ;
|
||||||
heavy_A = regA "pesante" ;
|
heavy_A = mkA "pesante" ;
|
||||||
hit_V2 = dirV2 (regV "frappar") ;
|
hit_V2 = mkV2 (mkV "frappar") ;
|
||||||
hold_V2 = dirV2 (regV "retener") ;
|
hold_V2 = mkV2 (mkV "retener") ;
|
||||||
horn_N = regN "corno" ;
|
horn_N = mkN "corno" ;
|
||||||
hunt_V2 = dirV2 (regV "chassar") ;
|
hunt_V2 = mkV2 (mkV "chassar") ;
|
||||||
husband_N = regN "sposo";
|
husband_N = mkN "sposo";
|
||||||
ice_N = regN "glacie" ;
|
ice_N = mkN "glacie" ;
|
||||||
john_PN = regPN "John" ;
|
john_PN = mkPN "John" ;
|
||||||
jump_V = regV "saltar" ;
|
jump_V = mkV "saltar" ;
|
||||||
kill_V2 = dirV2 (regV "occider") ;
|
kill_V2 = mkV2 (mkV "occider") ;
|
||||||
knee_N = regN "genu" ;
|
knee_N = mkN "genu" ;
|
||||||
language_N = regN "linguage" ;
|
language_N = mkN "linguage" ;
|
||||||
laugh_V = regV "rider" ;
|
laugh_V = mkV "rider" ;
|
||||||
leaf_N = regN "folio" ;
|
leaf_N = mkN "folio" ;
|
||||||
left_Ord = ss "leve" ;
|
left_Ord = ss "leve" ;
|
||||||
leg_N = regN "gamba" ;
|
leg_N = mkN "gamba" ;
|
||||||
lie_V = regV "mentir";
|
lie_V = mkV "mentir";
|
||||||
liver_N = regN "hepate" ;
|
liver_N = mkN "hepate" ;
|
||||||
louse_N = regN "pediculo";
|
louse_N = mkN "pediculo";
|
||||||
mouth_N = regN "bucca" ;
|
mouth_N = mkN "bucca" ;
|
||||||
name_N = regN "nomine" ;
|
name_N = mkN "nomine" ;
|
||||||
near_A = regA "proxime" ;
|
near_A = mkA "proxime" ;
|
||||||
neck_N = regN "collo" ;
|
neck_N = mkN "collo" ;
|
||||||
night_N = regN "nocte" ;
|
night_N = mkN "nocte" ;
|
||||||
nose_N = regN "naso" ;
|
nose_N = mkN "naso" ;
|
||||||
now_Adv = mkAdv "nunc" ;
|
now_Adv = mkAdv "nunc" ;
|
||||||
number_N = regN "numero" ;
|
number_N = mkN "numero" ;
|
||||||
person_N = regN "homine" ;
|
person_N = mkN "homine" ;
|
||||||
play_V = regV "jocar" ;
|
play_V = mkV "jocar" ;
|
||||||
pull_V2 = dirV2 (regV "traher") ;
|
pull_V2 = mkV2 (mkV "traher") ;
|
||||||
push_V2 = dirV2 (regV "pulsar") ;
|
push_V2 = mkV2 (mkV "pulsar") ;
|
||||||
put_V2 = dirV2 (regV "placar");
|
put_V2 = mkV2 (mkV "placar");
|
||||||
question_N = regN "question" ;
|
question_N = mkN "question" ;
|
||||||
rain_N = regN "pluvia" ;
|
rain_N = mkN "pluvia" ;
|
||||||
ready_A = regA "preste" ;
|
ready_A = mkA "preste" ;
|
||||||
reason_N = regN "ration" ;
|
reason_N = mkN "ration" ;
|
||||||
right_Ord = ss "dextra" ;
|
right_Ord = ss "dextra" ;
|
||||||
road_N = regN "via" ;
|
road_N = mkN "via" ;
|
||||||
root_N = regN "radice" ;
|
root_N = mkN "radice" ;
|
||||||
rope_N = regN "corda" ;
|
rope_N = mkN "corda" ;
|
||||||
rotten_A = (regA "corrupte") ;
|
rotten_A = (mkA "corrupte") ;
|
||||||
round_A = regA "ronde" ;
|
round_A = mkA "ronde" ;
|
||||||
rub_V2 = dirV2 (regV "fircar") ;
|
rub_V2 = mkV2 (mkV "fircar") ;
|
||||||
rule_N = regN "regula" ;
|
rule_N = mkN "regula" ;
|
||||||
salt_N = regN "sal" ;
|
salt_N = mkN "sal" ;
|
||||||
sand_N = regN "sablo" ;
|
sand_N = mkN "sablo" ;
|
||||||
scratch_V2 = dirV2 (regV "grattar") ;
|
scratch_V2 = mkV2 (mkV "grattar") ;
|
||||||
seed_N = regN "semine" ;
|
seed_N = mkN "semine" ;
|
||||||
sew_V = regV "suer";
|
sew_V = mkV "suer";
|
||||||
sharp_A = regA "trenchante" ;
|
sharp_A = mkA "trenchante" ;
|
||||||
sing_V = regV "cantar";
|
sing_V = mkV "cantar";
|
||||||
sit_V = regV "seder";
|
sit_V = mkV "seder";
|
||||||
skin_N = regN "pelle" ;
|
skin_N = mkN "pelle" ;
|
||||||
sky_N = regN "celo" ;
|
sky_N = mkN "celo" ;
|
||||||
smell_V = regV "oler" ;
|
smell_V = mkV "oler" ;
|
||||||
smoke_N = regN "fumar" ;
|
smoke_N = mkN "fumar" ;
|
||||||
smooth_A = regA "lisie" ;
|
smooth_A = mkA "lisie" ;
|
||||||
snow_N = regN "niva" ;
|
snow_N = mkN "niva" ;
|
||||||
song_N = regN "canto" ;
|
song_N = mkN "canto" ;
|
||||||
spit_V = regV "sputar";
|
spit_V = mkV "sputar";
|
||||||
split_V2 = dirV2 (regV "finder");
|
split_V2 = mkV2 (mkV "finder");
|
||||||
squeeze_V2 = dirV2 (regV "comprimer") ;
|
squeeze_V2 = mkV2 (mkV "comprimer") ;
|
||||||
stab_V2 = dirV2 (regV "dagar") ;
|
stab_V2 = mkV2 (mkV "dagar") ;
|
||||||
stand_V = regV "star";
|
stand_V = mkV "star";
|
||||||
stick_N = regN "baston" ;
|
stick_N = mkN "baston" ;
|
||||||
stop_V = regV "stoppar" ;
|
stop_V = mkV "stoppar" ;
|
||||||
straight_A = regA "directe" ;
|
straight_A = mkA "directe" ;
|
||||||
suck_V2 = dirV2 (regV "suger") ;
|
suck_V2 = mkV2 (mkV "suger") ;
|
||||||
swell_V = (regV "turger");
|
swell_V = (mkV "turger");
|
||||||
swim_V = (regV "natada");
|
swim_V = (mkV "natada");
|
||||||
tail_N = regN "cauda" ;
|
tail_N = mkN "cauda" ;
|
||||||
think_V = regV "pensar";
|
think_V = mkV "pensar";
|
||||||
throw_V2 = dirV2 (regV "jectar") ;
|
throw_V2 = mkV2 (mkV "jectar") ;
|
||||||
tie_V2 = dirV2 (regV "ligar") ;
|
tie_V2 = mkV2 (mkV "ligar") ;
|
||||||
today_Adv = mkAdv "hodie" ;
|
today_Adv = mkAdv "hodie" ;
|
||||||
tongue_N = regN "lingua" ;
|
tongue_N = mkN "lingua" ;
|
||||||
tooth_N = regN "dente";
|
tooth_N = mkN "dente";
|
||||||
turn_V = regV "tornar" ;
|
turn_V = mkV "tornar" ;
|
||||||
uncertain_A = regA "incerte" ;
|
uncertain_A = mkA "incerte" ;
|
||||||
vomit_V = regV "vomir" ;
|
vomit_V = mkV "vomir" ;
|
||||||
wash_V2 = dirV2 (regV "abluer") ;
|
wash_V2 = mkV2 (mkV "abluer") ;
|
||||||
wet_A = regA "humid" ; ----
|
wet_A = mkA "humid" ; ----
|
||||||
wide_A = regA "large" ;
|
wide_A = mkA "large" ;
|
||||||
wife_N = regN "sposa";
|
wife_N = mkN "sposa";
|
||||||
wind_N = regN "vento" ;
|
wind_N = mkN "vento" ;
|
||||||
wing_N = regN "ala" ;
|
wing_N = mkN "ala" ;
|
||||||
wipe_V2 = dirV2 (regV "essugar") ;
|
wipe_V2 = mkV2 (mkV "essugar") ;
|
||||||
worm_N = regN "verme" ;
|
worm_N = mkN "verme" ;
|
||||||
year_N = regN "anno" ;
|
year_N = mkN "anno" ;
|
||||||
-- other_A = regA "altere" ;
|
-- other_A = mkA "altere" ;
|
||||||
---- added 4/6/2007
|
---- added 4/6/2007
|
||||||
--
|
--
|
||||||
oper
|
oper
|
||||||
|
|||||||
@@ -29,23 +29,17 @@ resource ParadigmsIna = open
|
|||||||
(Predef=Predef),
|
(Predef=Predef),
|
||||||
Prelude,
|
Prelude,
|
||||||
MorphoIna,
|
MorphoIna,
|
||||||
CatIna
|
CatIna,
|
||||||
|
CommonX
|
||||||
in {
|
in {
|
||||||
--2 Parameters
|
--2 Parameters
|
||||||
--
|
--
|
||||||
-- To abstract over gender names, we define the following identifiers.
|
-- To abstract over gender names, we define the following identifiers.
|
||||||
|
oper
|
||||||
|
male : Sex = Male ;
|
||||||
|
female : Sex = Female ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
-- Gender : Type ;
|
|
||||||
-- There is no grammatical gender in interlingua.
|
|
||||||
|
|
||||||
---- To abstract over number names, we define the following.
|
|
||||||
--
|
|
||||||
-- Number : Type ;
|
|
||||||
--
|
|
||||||
-- singular : Number ;
|
|
||||||
-- plural : Number ;
|
|
||||||
|
|
||||||
-- To abstract over case names, we define the following.
|
-- To abstract over case names, we define the following.
|
||||||
|
|
||||||
nominative : Case ;
|
nominative : Case ;
|
||||||
@@ -63,7 +57,7 @@ oper
|
|||||||
--2 Nouns
|
--2 Nouns
|
||||||
--
|
--
|
||||||
|
|
||||||
-- All nouns are regular, so one should use $regN$ to construct them.
|
-- All nouns are regular, so one should use $mkN$ to construct them.
|
||||||
|
|
||||||
--3 Relational nouns
|
--3 Relational nouns
|
||||||
--
|
--
|
||||||
@@ -96,6 +90,7 @@ oper
|
|||||||
-- Adverbs modifying adjectives and sentences can also be formed.
|
-- Adverbs modifying adjectives and sentences can also be formed.
|
||||||
|
|
||||||
mkAdA : Str -> AdA ;
|
mkAdA : Str -> AdA ;
|
||||||
|
mkAdN : Str -> AdA ;
|
||||||
|
|
||||||
--2 Prepositions
|
--2 Prepositions
|
||||||
--
|
--
|
||||||
@@ -124,20 +119,22 @@ oper
|
|||||||
-- I decided to provide the following combinators for forming verbs with
|
-- I decided to provide the following combinators for forming verbs with
|
||||||
-- complex grammar rules:
|
-- complex grammar rules:
|
||||||
|
|
||||||
prepV2 : Prep -> V -> V2 ;
|
mkV2 = overload {
|
||||||
prepV3 : Prep -> V2 -> V3 ;
|
mkV2 : V -> Prep -> V2 = prepV2 ;
|
||||||
dirV2 : V -> V2 ;
|
mkV2 : V -> V2 = dirV2 ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
mkV3 : V -> Prep -> Prep -> V3 ;
|
||||||
|
|
||||||
mkV0 : V -> V0 ;
|
mkV0 : V -> V0 ;
|
||||||
mkVS : V -> VS ;
|
mkVS : V -> VS ;
|
||||||
-- mkV2S : V -> Prep -> V2S ;
|
mkV2S : V -> Prep -> V2S ;
|
||||||
-- mkVV : V -> VV ;
|
mkVV : V -> VV ;
|
||||||
mkV2V : Prep -> Prep -> V -> V2V ;
|
mkV2V : V -> Prep -> Prep -> V2V ;
|
||||||
mkVA : V -> VA ;
|
mkVA : V -> VA ;
|
||||||
mkV2A : Prep -> Prep -> V -> V2A ;
|
mkV2A : V -> Prep -> Prep -> V2A ;
|
||||||
mkVQ : V -> VQ ;
|
mkVQ : V -> VQ ;
|
||||||
mkV2Q : Prep -> V -> V2Q ;
|
mkV2Q : V -> Prep -> V2Q ;
|
||||||
|
|
||||||
mkAS : A -> AS ;
|
mkAS : A -> AS ;
|
||||||
-- mkA2S : A -> Prep -> A2S ;
|
-- mkA2S : A -> Prep -> A2S ;
|
||||||
@@ -163,7 +160,7 @@ oper
|
|||||||
dative = Dat ;
|
dative = Dat ;
|
||||||
ablative = Abl ;
|
ablative = Abl ;
|
||||||
|
|
||||||
regN s = nounReg s ** {lock_N = <>};
|
mkN s = nounReg s ** {lock_N = <>};
|
||||||
|
|
||||||
compN : N -> Str -> N;
|
compN : N -> Str -> N;
|
||||||
compN n s = {s = \\x => n.s ! x ++ s; lock_N = <>} ;
|
compN n s = {s = \\x => n.s ! x ++ s; lock_N = <>} ;
|
||||||
@@ -173,7 +170,7 @@ oper
|
|||||||
prepN3 : Prep -> N2 -> N3;
|
prepN3 : Prep -> N2 -> N3;
|
||||||
prepN2 = \p,n -> n ** {lock_N2 = <> ; p2 = p.s; c2 = p.c} ;
|
prepN2 = \p,n -> n ** {lock_N2 = <> ; p2 = p.s; c2 = p.c} ;
|
||||||
prepN3 = \p,n -> n ** {lock_N3 = <> ; p3 = p.s; c3 = p.c} ;
|
prepN3 = \p,n -> n ** {lock_N3 = <> ; p3 = p.s; c3 = p.c} ;
|
||||||
regN2 n = prepN2 (mkPrep [] genitive) (regN n) ** {lock_N2 = <>};
|
regN2 n = prepN2 (mkPrep [] genitive) (mkN n) ** {lock_N2 = <>};
|
||||||
|
|
||||||
----3 Relational common noun phrases
|
----3 Relational common noun phrases
|
||||||
----
|
----
|
||||||
@@ -187,12 +184,20 @@ oper
|
|||||||
-- cnN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p.s} ;
|
-- cnN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p.s} ;
|
||||||
-- cnN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p.s ; c3 = q.s} ;
|
-- cnN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p.s ; c3 = q.s} ;
|
||||||
--
|
--
|
||||||
regPN n = regGenPN n;
|
mkPN : Str -> PN = regGenPN;
|
||||||
regGenPN n = {s = n; lock_PN = <>} ;
|
|
||||||
-- nounPN n = {s = n.s ! singular ; g = n.g ; lock_PN = <>} ;
|
mkLN : Str -> LN = \s -> lin LN {s=s};
|
||||||
--
|
mkGN : Str -> Sex -> GN = \s,g -> lin GN {s=s; g=g};
|
||||||
-- mk2A a b = mkAdjective a a a b ** {lock_A = <>} ;
|
mkSN = overload {
|
||||||
regA a = regAdjective a ** {lock_A = <>} ;
|
mkSN : Str -> SN = \s -> lin SN {s=\\_ => s; pl=s};
|
||||||
|
mkSN : Str -> Str -> Str -> SN = \m,f,pl -> lin SN {s=table {Male=>m; Female=>f}; pl=pl};
|
||||||
|
} ;
|
||||||
|
|
||||||
|
regGenPN : Str -> PN ;
|
||||||
|
regGenPN s = {s = s; lock_PN = <>} ;
|
||||||
|
|
||||||
|
mkA : Str -> A ;
|
||||||
|
mkA a = regAdjective a ** {lock_A = <>} ;
|
||||||
|
|
||||||
mkA2 a p = a ** {c2 = casePrep p.s p.c ; lock_A2 = <>} ;
|
mkA2 a p = a ** {c2 = casePrep p.s p.c ; lock_A2 = <>} ;
|
||||||
|
|
||||||
@@ -201,114 +206,49 @@ oper
|
|||||||
mkAdv x = ss x ** {lock_Adv = <>} ;
|
mkAdv x = ss x ** {lock_Adv = <>} ;
|
||||||
mkAdV x = ss x ** {lock_AdV = <>} ;
|
mkAdV x = ss x ** {lock_AdV = <>} ;
|
||||||
mkAdA x = ss x ** {lock_AdA = <>} ;
|
mkAdA x = ss x ** {lock_AdA = <>} ;
|
||||||
|
mkAdN x = ss x ** {lock_AdA = <>} ;
|
||||||
|
|
||||||
mkPrep p c = ss p ** {c = c; lock_Prep = <>} ;
|
mkPrep p c = ss p ** {c = c; lock_Prep = <>} ;
|
||||||
noPrep = mkPrep [] accusative ;
|
noPrep = mkPrep [] accusative ;
|
||||||
|
|
||||||
|
|
||||||
-- Verb-formation combinators.
|
-- Verb-formation combinators.
|
||||||
regV : Str -> V;
|
mkV : Str -> V;
|
||||||
regV s = mkVerb s ** {lock_V = <>};
|
mkV s = mkVerb s ** {lock_V = <>};
|
||||||
|
|
||||||
prepV2 p v = v ** {c2 = p.c; p2 = p.s ; lock_V2 = <>} ;
|
prepV2 : V -> Prep -> V2 ;
|
||||||
prepV3 p v = v ** {c3 = p.c; p3 = p.s ; lock_V3 = <>} ;
|
prepV2 v p = v ** {c2 = p.c; p2 = p.s ; lock_V2 = <>} ;
|
||||||
dirV2 = prepV2 noPrep ;
|
|
||||||
|
|
||||||
mkVS v = v ** {lock_VS = <>} ;
|
dirV2 : V -> V2 ;
|
||||||
-- mkVV v = {
|
dirV2 v = prepV2 v noPrep ;
|
||||||
-- s = table {VVF vf => v.s ! vf ; _ => variants {}} ;
|
|
||||||
-- isAux = False ; lock_VV = <>
|
mkV3 v p1 p2 = v ** {c2 = p1.c; p2 = p1.s ; c3 = p2.c; p3 = p2.s ; lock_V3 = <>} ;
|
||||||
-- } ;
|
|
||||||
mkVQ v = v ** {lock_VQ = <>} ;
|
mkVS v = v ** {lock_VS = <>} ;
|
||||||
|
mkVV v = v ** {lock_VV = <>} ;
|
||||||
|
mkVQ v = v ** {lock_VQ = <>} ;
|
||||||
|
|
||||||
V0 : Type = V ;
|
V0 : Type = V ;
|
||||||
--- V2S, V2V, V2Q : Type = V2 ;
|
--- V2S, V2V, V2Q : Type = V2 ;
|
||||||
AS, A2S, AV : Type = A ;
|
AS, A2S, AV : Type = A ;
|
||||||
A2V : Type = A2 ;
|
A2V : Type = A2 ;
|
||||||
--
|
--
|
||||||
mkV0 v = v ** {lock_V = <>} ;
|
mkV0 v = v ** {lock_V = <>} ;
|
||||||
-- mkV2S v p = prepV2 v p ** {lock_V2 = <>} ;
|
mkV2S v p = prepV2 v p ** {lock_V2S = <>} ;
|
||||||
mkV2V p t v = prepV2 p v ** {s4 = t ; lock_V2V = <>} ;
|
mkV2V v p t = prepV2 v p ** {s4 = t ; lock_V2V = <>} ;
|
||||||
mkVA v = v ** {lock_VA = <>} ;
|
mkVA v = v ** {lock_VA = <>} ;
|
||||||
mkV2A p2 p3 v = (prepV3 p3 (prepV2 p2 v)) ** {lock_V2A = <>} ;
|
mkV2A v p2 p3 = mkV3 v p2 p3 ** {lock_V2A = <>} ;
|
||||||
mkV2Q p v = prepV2 p v ** {lock_V2Q = <>} ;
|
mkV2Q p v = prepV2 p v ** {lock_V2Q = <>} ;
|
||||||
mkAS v = v ** {lock_A = <>} ;
|
mkAS v = v ** {lock_A = <>} ;
|
||||||
-- mkA2S v p = mkA2 v p ** {lock_A = <>} ;
|
mkAV v = v ** {lock_A = <>} ;
|
||||||
mkAV v = v ** {lock_A = <>} ;
|
mkA2V v p = mkA2 v p ** {lock_A2 = <>} ;
|
||||||
mkA2V v p = mkA2 v p ** {lock_A2 = <>} ;
|
|
||||||
|
|
||||||
|
|
||||||
-- pre-overload API and overload definitions
|
-- pre-overload API and overload definitions
|
||||||
regN : Str -> N ;
|
mkN : Str -> N ;
|
||||||
-- mk2N : (man,men : Str) -> N ;
|
|
||||||
-- genderN : Gender -> N -> N ;
|
|
||||||
-- compN : Str -> N -> N ;
|
|
||||||
--
|
|
||||||
--
|
|
||||||
--
|
|
||||||
-- mk2A : (free,freely : Str) -> A ;
|
|
||||||
regA : Str -> A ;
|
|
||||||
--
|
|
||||||
-- mkA = overload {
|
|
||||||
-- mkA : Str -> A = regA ;
|
|
||||||
-- mkA : (fat,fatter : Str) -> A = \fat,fatter ->
|
|
||||||
-- mkAdjective fat fatter (init fatter + "st") (fat + "ly") ** {lock_A = <>} ;
|
|
||||||
-- mkA : (good,better,best,well : Str) -> A = \a,b,c,d ->
|
|
||||||
-- mkAdjective a b c d ** {lock_A = <>}
|
|
||||||
-- } ;
|
|
||||||
--
|
|
||||||
-- compoundA = compoundADeg ;
|
|
||||||
--
|
|
||||||
--
|
|
||||||
-- mk5V : (go, goes, went, gone, going : Str) -> V ;
|
|
||||||
-- regV : (cry : Str) -> V ;
|
|
||||||
-- reg2V : (stop, stopped : Str) -> V;
|
|
||||||
-- irregV : (drink, drank, drunk : Str) -> V ;
|
|
||||||
-- irreg4V : (run, ran, run, running : Str) -> V ;
|
|
||||||
--
|
|
||||||
-- -- Use reg2V instead
|
|
||||||
-- regDuplV : Str -> V ;
|
|
||||||
-- -- Use irreg4V instead
|
|
||||||
-- irregDuplV : (get, got, gotten : Str) -> V ;
|
|
||||||
--
|
|
||||||
|
|
||||||
|
|
||||||
------ obsolete
|
mkInterj : Str -> Interj = \s -> lin Interj {s=s};
|
||||||
--
|
mkVoc : Str -> Voc = variants {} ;
|
||||||
---- Comparison adjectives may two more forms.
|
|
||||||
--
|
|
||||||
-- ADeg : Type ;
|
|
||||||
--
|
|
||||||
-- mkADeg : (good,better,best,well : Str) -> ADeg ;
|
|
||||||
--
|
|
||||||
---- The regular pattern recognizes two common variations:
|
|
||||||
---- "-e" ("rude" - "ruder" - "rudest") and
|
|
||||||
---- "-y" ("happy - happier - happiest - happily")
|
|
||||||
--
|
|
||||||
-- regADeg : Str -> ADeg ; -- long, longer, longest
|
|
||||||
--
|
|
||||||
---- However, the duplication of the final consonant is nor predicted,
|
|
||||||
---- but a separate pattern is used:
|
|
||||||
--
|
|
||||||
-- duplADeg : Str -> ADeg ; -- fat, fatter, fattest
|
|
||||||
--
|
|
||||||
---- If comparison is formed by "more", "most", as in general for
|
|
||||||
---- long adjective, the following pattern is used:
|
|
||||||
--
|
|
||||||
-- compoundADeg : A -> ADeg ; -- -/more/most ridiculous
|
|
||||||
--
|
|
||||||
---- From a given $ADeg$, it is possible to get back to $A$.
|
|
||||||
--
|
|
||||||
-- adegA : ADeg -> A ;
|
|
||||||
--
|
|
||||||
--
|
|
||||||
regPN : Str -> PN ;
|
|
||||||
regGenPN : Str -> PN ; -- John, John's
|
|
||||||
--
|
|
||||||
---- Sometimes you can reuse a common noun as a proper name, e.g. "Bank".
|
|
||||||
--
|
|
||||||
-- nounPN : N -> PN ;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ concrete StructuralIna of Structural = CatIna **
|
|||||||
flags optimize=all ;
|
flags optimize=all ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
--- mkPrep = P.mkPrep;
|
|
||||||
pp : Str -> Prep = \s-> P.mkPrep s Acc;
|
pp : Str -> Prep = \s-> P.mkPrep s Acc;
|
||||||
lin
|
lin
|
||||||
above_Prep = pp "supra";
|
above_Prep = pp "supra";
|
||||||
@@ -22,8 +21,8 @@ concrete StructuralIna of Structural = CatIna **
|
|||||||
but_PConj = ss "sed" ;
|
but_PConj = ss "sed" ;
|
||||||
by8agent_Prep = pp "per" ;
|
by8agent_Prep = pp "per" ;
|
||||||
by8means_Prep = pp "per" ;
|
by8means_Prep = pp "per" ;
|
||||||
can_VV = P.regV "poter";
|
can_VV = P.mkVV (P.mkV "poter");
|
||||||
can8know_VV = P.regV "saper";
|
can8know_VV = P.mkVV (P.mkV "saper");
|
||||||
during_Prep = pp "durante" ;
|
during_Prep = pp "durante" ;
|
||||||
either7or_DConj = sd2 "o" "o" ** {n = Sg} ;
|
either7or_DConj = sd2 "o" "o" ** {n = Sg} ;
|
||||||
everybody_NP = regNP "totos" ;
|
everybody_NP = regNP "totos" ;
|
||||||
@@ -49,7 +48,7 @@ concrete StructuralIna of Structural = CatIna **
|
|||||||
more_CAdv = {s = "plus" ; p = "que"} ;
|
more_CAdv = {s = "plus" ; p = "que"} ;
|
||||||
most_Predet = ss ("le"++"plus");
|
most_Predet = ss ("le"++"plus");
|
||||||
much_Det = mkDeterminer Sg "tanto" ;
|
much_Det = mkDeterminer Sg "tanto" ;
|
||||||
must_VV = P.regV "deber";
|
must_VV = P.mkV "deber";
|
||||||
no_Utt = ss "no" ;
|
no_Utt = ss "no" ;
|
||||||
on_Prep = P.mkPrep "super" Acc;
|
on_Prep = P.mkPrep "super" Acc;
|
||||||
only_Predet = ss "unic" ;
|
only_Predet = ss "unic" ;
|
||||||
@@ -81,8 +80,8 @@ concrete StructuralIna of Structural = CatIna **
|
|||||||
too_AdA = ss "alsi" ;
|
too_AdA = ss "alsi" ;
|
||||||
to_Prep = P.mkPrep "" Dat;
|
to_Prep = P.mkPrep "" Dat;
|
||||||
under_Prep = pp "infra" ;
|
under_Prep = pp "infra" ;
|
||||||
very_AdA = ss "multo" ;
|
very_AdA = P.mkAdA "multo" ;
|
||||||
want_VV = P.regV "want" ;
|
want_VV = P.mkVV (P.mkV "want") ;
|
||||||
we_Pron = mkPron "nos" "nos" "nostre" Pp1;
|
we_Pron = mkPron "nos" "nos" "nostre" Pp1;
|
||||||
whatPl_IP = mkIP "que" Pl ;
|
whatPl_IP = mkIP "que" Pl ;
|
||||||
whatSg_IP = mkIP "que" Sg ;
|
whatSg_IP = mkIP "que" Sg ;
|
||||||
|
|||||||
Reference in New Issue
Block a user