last fixes to make AppEst compile

This commit is contained in:
aarne
2015-11-09 11:02:09 +00:00
parent 1876e92d2c
commit d8d8b36f1c
2 changed files with 316 additions and 10 deletions

View File

@@ -1,4 +1,4 @@
all: Phrasebook App12.pgf
all: Phrasebook App15.pgf
PROBSFILE=./app.probs
GFODIR=./gfos
@@ -15,6 +15,7 @@ APP11=AppEng.pgf AppBul.pgf AppChi.pgf AppGer.pgf AppSwe.pgf AppHin.pgf AppFin.p
APP12=$(APP11) AppCat.pgf
APP13=$(APP12) AppJpn.pgf
APP14=$(APP13) AppTha.pgf
APP15=$(APP14) AppEst.pgf
# With dependencies:
App11.pgf: $(APP11)
@@ -25,6 +26,8 @@ App13.pgf: $(APP13)
$(GFMKT) -name=App13 $(APP13) +RTS -K200M
App14.pgf: $(APP14)
$(GFMKT) -name=App14 $(APP14) +RTS -K200M
App15.pgf: $(APP15)
$(GFMKT) -name=App15 $(APP15) +RTS -K200M
# Without dependencies:
App11:
@@ -35,6 +38,8 @@ App13:
$(GFMKT) -name=App13 $(APP13) +RTS -K200M
App14:
$(GFMKT) -name=App14 $(APP14) +RTS -K200M
App15:
$(GFMKT) -name=App15 $(APP15) +RTS -K200M
# App grammars for individual languages
AppEng.pgf:: ; $(GFMKT) -name=AppEng AppEng.gf
@@ -42,6 +47,7 @@ AppBul.pgf:: ; $(GFMKT) -name=AppBul AppBul.gf
AppCat.pgf:: ; $(GFMKT) -name=AppCat AppCat.gf +RTS -K100M
AppChi.pgf:: ; $(GFMKT) -name=AppChi AppChi.gf +RTS -K100M
AppDut.pgf:: ; $(GFMKT) -name=AppDut AppDut.gf +RTS -K64M
AppEst.pgf:: ; $(GFMKT) -name=AppEst AppEst.gf +RTS -K64M
AppFin.pgf:: ; $(GFMKT) -name=AppFin AppFin.gf +RTS -K64M
AppGer.pgf:: ; $(GFMKT) -name=AppGer AppGer.gf +RTS -K64M
AppHin.pgf:: ; $(GFMKT) -name=AppHin AppHin.gf

View File

@@ -3,10 +3,310 @@ concrete DictionaryEst of Dictionary = CatEst ** open ParadigmsEst,
(S = StructuralEst),
(L = LexiconEst),
(R = ResEst),
MorphoEst, SyntaxEst, (E = ExtraEst), Prelude in {
MorphoEst, SyntaxEst, (E = ExtraEst), (X = ConstructX), Prelude in {
flags coding=utf8 ;
---------------------
-- from StructuralEst, AR 9/11/2015
lin
above_Prep = postGenPrep "peal" ;
after_Prep = postGenPrep "järel" ;
all_Predet = {s = \\n,c =>
let
kaiket = caseTable n (mkN "kõik")
in
case npform2case n c of {
Nom => "kõik" ;
k => kaiket ! k
}
} ;
almost_AdA, almost_AdN = ss "peaaegu" ;
although_Subj = ss "kuigi" ;
always_AdV = ss "alati" ;
-- and_Conj = {s1 = [] ; s2 = "ja" ; n = Pl} ;
because_Subj = ss "sellepärast" ;
before_Prep = prePrep partitive "enne" ;
behind_Prep = postGenPrep "taga" ;
between_Prep = postGenPrep "vahel" ;
both7and_DConj = sd2 "nii" "kui ka" ** {n = Pl} ;
but_PConj = ss "aga" ;
by8agent_Prep = postGenPrep "poolt" ;
by8means_Prep = casePrep adessive ;
can8know_VV = mkVV (mkV "oskama" "osata") ;
can_VV = mkVV (mkV "võima" "võida") ;
during_Prep = postGenPrep "ajal" ;
either7or_DConj = sd2 "kas" "või" ** {n = Sg} ;
everybody_NP = makeNP (mkN "igaüks") Sg ;
---- every_Det = mkDet Sg (mkN "iga") ;
everything_NP = makeNP ((mkN "kõik") ** {lock_N = <>}) Sg ;
everywhere_Adv = ss "kõikjal" ;
---- few_Det = mkDet Sg (mkN "mõni") ;
--- first_Ord = {s = \\n,c => (mkN "ensimmäinen").s ! NCase n c} ;
for_Prep = casePrep allative ;
from_Prep = casePrep elative ;
he_Pron = mkPronoun "tema" "tema" "teda" Sg P3 ;
here_Adv = ss "siin" ;
here7to_Adv = ss "siia" ;
here7from_Adv = ss "siit" ;
how_IAdv = ss "kuidas" ;
how8much_IAdv = ss "kui palju" ;
how8many_IDet = {
s = \\c => "kui" ++ (mkN "mitu" "mitme" "mitut" "TODO" "TODO" "TODO").s ! NCase Sg c ;
n = Sg ;
isNum = False
} ;
if_Subj = ss "kui" ;
in8front_Prep = postGenPrep "ees" ;
i_Pron = mkPronoun "mina" "minu" "mind" Sg P1 ;
in_Prep = casePrep inessive ;
it_Pron = {
s = \\c => pronSe.s ! npform2case Sg c ;
a = agrP3 Sg ;
isPron = False
} ;
less_CAdv = X.mkCAdv "vähem" "kui" ;
---- many_Det = mkDet Sg (mkN "mitu") ;
more_CAdv = X.mkCAdv "rohkem" "kui" ;
most_Predet = {s = \\n,c => (nForms2N (dSuurin "MOST")).s ! NCase n (npform2case n c)} ;
---- much_Det = mkDet Sg {s = \\_ => "palju"} ;
must_VV = mkVVf (mkV "pidama" "pidada" "peab" "peetakse" "pidage" "pidi" "pidanud" "peetud") infMa ;
no_Utt = ss "ei" ;
on_Prep = casePrep adessive ;
--- one_Quant = mkDet Sg DEPREC
only_Predet = {s = \\_,_ => "ainult"} ;
-- or_Conj = {s1 = [] ; s2 = "või" ; n = Pl} ;
otherwise_PConj = ss "muidu" ;
part_Prep = casePrep partitive ;
please_Voc = ss ["palun"] ; --- number
possess_Prep = casePrep genitive ;
quite_Adv = ss "üsna" ;
she_Pron = mkPronoun "tema" "tema" "teda" Sg P3 ;
so_AdA = ss "nii" ;
somebody_NP = {
s = \\c => jokuPron ! Sg ! npform2case Sg c ;
a = agrP3 Sg ;
isPron = False
} ;
someSg_Det = heavyDet {
s = jokuPron ! Sg ;
isNum = False ; isDef = True ; n = Sg
} ;
somePl_Det = heavyDet {
s = jokuPron ! Pl ;
isNum = False ; isDef = True ;
n = Pl
} ;
something_NP = {
s = \\c => mikaInt ! Sg ! npform2case Sg c ;
a = agrP3 Sg ;
isPron = False
} ;
somewhere_Adv = ss "kuskil" ;
that_Quant = heavyQuant {
s = table (MorphoEst.Number) {
Sg => table (MorphoEst.Case) {
c => (mkPronoun "too" "tolle" "toda" Sg P3).s ! NPCase c
} ;
Pl => table (MorphoEst.Case) {
c => (mkPronoun "nood" "nonde" "noid" Sg P3).s ! NPCase c
}
} ;
isNum = False ; isDef = True ;
} ;
that_Subj = ss "et" ;
there_Adv = ss "seal" ;
there7to_Adv = ss "sinna" ;
there7from_Adv = ss "sealt" ;
therefore_PConj = ss "sellepärast" ;
they_Pron = mkPronoun "nemad" "nende" "neid" Pl P3 ;
this_Quant = heavyQuant {
s = table (MorphoEst.Number) {
Sg => table (MorphoEst.Case) {
c => (mkPronoun "see" "selle" "seda" Sg P3).s ! NPCase c
} ;
Pl => table (MorphoEst.Case) {
c => (mkPronoun "need" "nende" "neid" Sg P3).s ! NPCase c
}
} ;
isNum = False ; isDef = True ;
} ;
through_Prep = postGenPrep "kaudu" ;
too_AdA = ss "liiga" ;
to_Prep = casePrep allative ;
under_Prep = postGenPrep "all" ;
very_AdA = ss "väga" ;
want_VV = mkVV (mkV "tahtma") ;
we_Pron = mkPronoun "meie" "meie" "meid" Pl P1 ;
whatPl_IP = {
s = table {NPAcc => "mida" ; c => mikaInt ! Pl ! npform2case Pl c} ;
n = Pl
} ;
whatSg_IP = {
s = \\c => mikaInt ! Sg ! npform2case Sg c ;
n = Sg
} ;
when_IAdv = ss "kui" ;
when_Subj = ss "kui" ;
where_IAdv = ss "kus" ;
which_IQuant = { s = mikaInt } ;
whoSg_IP = {
s = table {NPAcc => "keda" ; c => kukaInt ! Sg ! npform2case Sg c} ;
n = Sg
} ;
whoPl_IP = {
s = table {NPAcc => "keda" ; c => kukaInt ! Pl ! npform2case Pl c} ;
n = Pl
} ;
why_IAdv = ss "miks" ;
without_Prep = prePrep partitive "ilma" ;
with_Prep = prePrep comitative "koos" ;
yes_Utt = ss "jah" ;
youSg_Pron = mkPronoun "sina" "sinu" "sind" Sg P2 ;
youPl_Pron = mkPronoun "teie" "teie" "teid" Pl P2 ;
youPol_Pron =
let p = mkPronoun "teie" "teie" "teid" Pl P2 in
{s = p.s ; a = AgPol} ;
oper
jokuPron : MorphoEst.Number => (MorphoEst.Case) => Str =
let
keegi = mkN "keegi" "kellegi" "kedagi" "kellegisse" "kellegi" "kedagi"
in
table {
Sg => table {
c => keegi.s ! NCase Sg c
} ;
Pl => table {
c => keegi.s ! NCase Sg c
}
} ;
-- TODO: maybe remove
jokinPron : MorphoEst.Number => (MorphoEst.Case) => Str =
table {
Sg => table {
Nom => "miski" ;
Iness => "milleski" ;
Elat => "millestki" ;
Ablat => "milleltki" ;
Transl => "millekski" ;
c => mikaInt ! Sg ! c + "gi"
} ;
Pl => table { --TODO correct these plurals
Nom => "miski" ;
Iness => "milleski" ;
Elat => "millestki" ;
Ablat => "milleltki" ;
Transl => "millekski" ;
c => mikaInt ! Pl ! c + "gi"
}
} ;
--TODO does this work?
mikaInt : MorphoEst.Number => (MorphoEst.Case) => Str =
let {
mi = mkN "mille"
} in
table {
Sg => table {
Nom => "mis" ;
Gen => "mille" ;
Part => "mida" ;
c => mi.s ! NCase Sg c
} ;
Pl => table {
Nom => "mis" ;
Gen => "mille" ;
Part => "mida" ;
c => mi.s ! NCase Pl c
}
} ;
kukaInt : MorphoEst.Number => (MorphoEst.Case) => Str =
let
kuka = mkN "kes" "kelle" "keda" "kellesse"
"kellede" "keda" ;
in
table {
Sg => table {
c => kuka.s ! NCase Sg c
} ;
Pl => table {
Nom => "kes" ;
c => kuka.s ! NCase Pl c
}
} ;
mikaanPron : MorphoEst.Number => (MorphoEst.Case) => Str = \\n,c =>
case <n,c> of {
<_,Nom> => "ükski" ;
<_,Part> => "ühtegi" ;
<_,Gen> => "ühegi" ;
_ => mikaInt ! n ! c + "gi" ----ki
} ;
kukaanPron : MorphoEst.Number => (MorphoEst.Case) => Str =
table {
Sg => table {
Nom => "keegi" ;
Part => "kedagi" ;
c => kukaInt ! Sg ! c + "gi"
} ;
Pl => table {
Nom => "ketkään" ;
Part => "keitään" ;
c => kukaInt ! Pl ! c + "gi"
}
} ;
oper
makeNP : N -> MorphoEst.Number -> CatEst.NP ;
makeNP noun num = {
s = \\c => noun.s ! NCase num (npform2case num c) ;
a = agrP3 num ;
isPron = False ;
lock_NP = <>
} ;
lin
not_Predet = {s = \\_,_ => "ei"} ;
no_Quant = heavyQuant {
s = \\n,c => "mitte" ++ mikaanPron ! n ! c ;
isNum = False ; isDef = True ;
} ;
if_then_Conj = {s1 = "kui" ; s2 = "siis" ; n = Sg} ;
nobody_NP = {
s = \\c => "mitte" ++ kukaanPron ! Sg ! npform2case Sg c ;
a = agrP3 Sg ;
isPron = False
} ;
nothing_NP = {
s = \\c => "mitte" ++ mikaanPron ! Sg ! npform2case Sg c ;
a = agrP3 Sg ;
isPron = False
} ;
at_least_AdN = ss "vähemalt" ;
at_most_AdN = ss "kuni" ;
as_CAdv = X.mkCAdv "sama palju" "kui" ;
except_Prep = postPrep partitive "väljaarvatud" ;
have_V2 = mkV2 (caseV adessive vOlema) ;
-- Kaarel: TODO: not sure what this is...
-- Name of the language in that language, s/suomi/eesti/ :--P
lin language_title_Utt = ss "eesti" ;
----------------------
-- Conjunctions
lin amp_Conj = mkConj "&" ;
@@ -34704,7 +35004,7 @@ lin haul_V = mkV "pukseerima" | mkV "sikutama" ;
lin haul_V2 = mkV2 "pukseerima" | mkV2 "sikutama" ;
lin haunt_V2 = mkV2 "kummitama" | mkV2 "painama" | mkV2 "sageli külastama" ;
lin have_V = mkV "olema" | mkV "omama" | mkV "pidama" | mkV "saama" | mkV "võtma" ;
lin have_V2 = mkV2 "olema" | mkV2 "omama" | mkV2 "pidama" | mkV2 "saama" | mkV2 "võtma" ;
----lin have_V2 = mkV2 "olema" | mkV2 "omama" | mkV2 "pidama" | mkV2 "saama" | mkV2 "võtma" ;
lin have_VV = mkVV "olema" | mkVV "omama" | mkVV "pidama" | mkVV "saama" | mkVV "võtma" ;
lin have_on_V = mkV "kavas olema" | mkV "ninapidi vedama" | mkV "seljas olema" ;
lin have_on_V2 = mkV2 "kavas olema" | mkV2 "ninapidi vedama" | mkV2 "seljas olema" ;
@@ -35679,7 +35979,7 @@ lin murder_V2 = mkV2 "mõrvama" | mkV2 "tapma" ;
lin murmur_V = mkV "pomisema" ;
lin murmur_V2 = mkV2 "pomisema" ;
lin muss_V2 = mkV2 "segamini ajama" ;
lin must_VV = mkVV "kohustatud olema" | mkVV "pidama" ;
----lin must_VV = mkVV "kohustatud olema" | mkVV "pidama" ;
lin muster_V = mkV "koguma" ;
lin muster_V2 = mkV2 "koguma" ;
lin mute_V2 = mkV2 "summutama" ;
@@ -38575,7 +38875,7 @@ lin wank_V = mkV "pihku lööma" ;
lin want_V = mkV "tahtma" ;
lin want_V2 = mkV2 "tahtma" ;
lin want_V2V = mkV2V "tahtma" ;
lin want_VV = mkVV "tahtma" ;
----lin want_VV = mkVV "tahtma" ;
lin wanton_V = mkV "õelutsema" | mkV "pillama" ;
lin war_V = mkV "sõdima" ;
lin warble_V = mkV "trillerdama" ;
@@ -39036,7 +39336,7 @@ lin even_Adv = ParadigmsEst.mkAdv "isegi" | ParadigmsEst.mkAdv "paaris" | Paradi
lin ever_Adv = ParadigmsEst.mkAdv "alalõpmata" | ParadigmsEst.mkAdv "alati" | ParadigmsEst.mkAdv "kunagi" | ParadigmsEst.mkAdv "väga" ;
lin evermore_Adv = ParadigmsEst.mkAdv "edaspidi" | ParadigmsEst.mkAdv "igavesti" ;
lin everyplace_Adv = ParadigmsEst.mkAdv "igal pool" ;
lin everywhere_Adv = ParadigmsEst.mkAdv "igale poole" | ParadigmsEst.mkAdv "igal pool" | ParadigmsEst.mkAdv "kõikjal" ;
----lin everywhere_Adv = ParadigmsEst.mkAdv "igale poole" | ParadigmsEst.mkAdv "igal pool" | ParadigmsEst.mkAdv "kõikjal" ;
lin ex_officio_Adv = ParadigmsEst.mkAdv "ametikohast tulenevalt" ;
lin express_Adv = ParadigmsEst.mkAdv "kiir-" | ParadigmsEst.mkAdv "kiirrong" | ParadigmsEst.mkAdv "selgesõnaline" | ParadigmsEst.mkAdv "väljendama" ;
lin extempore_Adv = ParadigmsEst.mkAdv "eksprompt" | ParadigmsEst.mkAdv "hetke ajel" | ParadigmsEst.mkAdv "peast" ;
@@ -39110,7 +39410,7 @@ lin heavenwards_Adv = ParadigmsEst.mkAdv "taeva poole" ;
lin heavily_Adv = ParadigmsEst.mkAdv "kõvasti" | ParadigmsEst.mkAdv "raskelt" | ParadigmsEst.mkAdv "tugevalt" ;
lin heavy_Adv = ParadigmsEst.mkAdv "kõva" | ParadigmsEst.mkAdv "ränk" | ParadigmsEst.mkAdv "raske" | ParadigmsEst.mkAdv "tihe" | ParadigmsEst.mkAdv "tõsine roll" | ParadigmsEst.mkAdv "turske" ;
lin hence_Adv = ParadigmsEst.mkAdv "nüüdsest" | ParadigmsEst.mkAdv "seega" | ParadigmsEst.mkAdv "seeläbi" | ParadigmsEst.mkAdv "siit ka" | ParadigmsEst.mkAdv "siit tulenevalt" ;
lin here_Adv = ParadigmsEst.mkAdv "kohal" | ParadigmsEst.mkAdv "siia" | ParadigmsEst.mkAdv "siin" ;
----lin here_Adv = ParadigmsEst.mkAdv "kohal" | ParadigmsEst.mkAdv "siia" | ParadigmsEst.mkAdv "siin" ;
lin hereabout_Adv = ParadigmsEst.mkAdv "siinkandis" ;
lin hereabouts_Adv = ParadigmsEst.mkAdv "siinkandis" ;
lin hereafter_Adv = ParadigmsEst.mkAdv "edaspidi" | ParadigmsEst.mkAdv "nüüdsest peale" | ParadigmsEst.mkAdv "tulevane elu" ;
@@ -39317,7 +39617,7 @@ lin quaveringly_Adv = ParadigmsEst.mkAdv "ebajärjekindlalt" ;
lin quick_Adv = ParadigmsEst.mkAdv "äkiline" | ParadigmsEst.mkAdv "elav" | ParadigmsEst.mkAdv "hell koht" | ParadigmsEst.mkAdv "kähku" | ParadigmsEst.mkAdv "kiire" | ParadigmsEst.mkAdv "taibukas" ;
lin quicker_Adv = ParadigmsEst.mkAdv "kiiremini" | ParadigmsEst.mkAdv "rutem" ;
lin quietly_Adv = ParadigmsEst.mkAdv "liikumatult" | ParadigmsEst.mkAdv "tasa" | ParadigmsEst.mkAdv "vaikselt" ;
lin quite_Adv = ParadigmsEst.mkAdv "hoopis" | ParadigmsEst.mkAdv "mõnevõrra" | ParadigmsEst.mkAdv "päris" | ParadigmsEst.mkAdv "täiesti" | ParadigmsEst.mkAdv "täpselt" | ParadigmsEst.mkAdv "üsna" ;
----lin quite_Adv = ParadigmsEst.mkAdv "hoopis" | ParadigmsEst.mkAdv "mõnevõrra" | ParadigmsEst.mkAdv "päris" | ParadigmsEst.mkAdv "täiesti" | ParadigmsEst.mkAdv "täpselt" | ParadigmsEst.mkAdv "üsna" ;
lin raggedly_Adv = ParadigmsEst.mkAdv "ebaühtlane" | ParadigmsEst.mkAdv "kärisevalt" | ParadigmsEst.mkAdv "sakiliselt" ;
lin rather_Adv = ParadigmsEst.mkAdv "kaunis" | ParadigmsEst.mkAdv "küllaltki" | ParadigmsEst.mkAdv "meelsamini" | ParadigmsEst.mkAdv "pigem" | ParadigmsEst.mkAdv "üpris" | ParadigmsEst.mkAdv "üsna" ;
lin rattling_Adv = ParadigmsEst.mkAdv "äge" | ParadigmsEst.mkAdv "elav" | ParadigmsEst.mkAdv "lõgisemine" | ParadigmsEst.mkAdv "logisev" ;
@@ -39366,7 +39666,7 @@ lin sometime_Adv = ParadigmsEst.mkAdv "kunagi" | ParadigmsEst.mkAdv "millalgi" ;
lin sometimes_Adv = ParadigmsEst.mkAdv "mõnikord" ;
lin someway_Adv = ParadigmsEst.mkAdv "kuidagi" | ParadigmsEst.mkAdv "mingil viisil" ;
lin somewhat_Adv = ParadigmsEst.mkAdv "mõnevõrra" ;
lin somewhere_Adv = ParadigmsEst.mkAdv "kusagil" ;
----lin somewhere_Adv = ParadigmsEst.mkAdv "kusagil" ;
lin soon_Adv = ParadigmsEst.mkAdv "kähku" | ParadigmsEst.mkAdv "peagi" | ParadigmsEst.mkAdv "varsti" ;
lin sooner_Adv = ParadigmsEst.mkAdv "ennem" | ParadigmsEst.mkAdv "ennemini" | ParadigmsEst.mkAdv "pigem" | ParadigmsEst.mkAdv "varem" ;
lin sotto_voce_Adv = ParadigmsEst.mkAdv "poolel häälel" | ParadigmsEst.mkAdv "sosinal" | ParadigmsEst.mkAdv "sotto voce" ;
@@ -39391,7 +39691,7 @@ lin sure_Adv = ParadigmsEst.mkAdv "kindel" | ParadigmsEst.mkAdv "muidugi" | Para
lin tandem_Adv = ParadigmsEst.mkAdv "paarisrakend" | ParadigmsEst.mkAdv "tandem" ;
lin tenfold_Adv = ParadigmsEst.mkAdv "kümnekordne" | ParadigmsEst.mkAdv "kümnekordselt" ;
lin then_Adv = ParadigmsEst.mkAdv "siis" ;
lin there_Adv = ParadigmsEst.mkAdv "seal" | ParadigmsEst.mkAdv "sinna" ;
----lin there_Adv = ParadigmsEst.mkAdv "seal" | ParadigmsEst.mkAdv "sinna" ;
lin thereabout_Adv = ParadigmsEst.mkAdv "sealkandis" | ParadigmsEst.mkAdv "selle kohta" ;
lin thereabouts_Adv = ParadigmsEst.mkAdv "sealkandis" | ParadigmsEst.mkAdv "selle kohta" ;
lin thereafter_Adv = ParadigmsEst.mkAdv "seejärel" | ParadigmsEst.mkAdv "seesugune" | ParadigmsEst.mkAdv "seetõttu" ;