mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 11:42:49 -06:00
French almost complete (reflexives, ordinals missing)
This commit is contained in:
@@ -79,6 +79,8 @@ instance DiffFre of DiffRomance = open CommonRomance, PhonoFre, Prelude in {
|
|||||||
|
|
||||||
quelPron : AAgr => Str = aagrForms "quel" "quelle" "quels" "quelles" ;
|
quelPron : AAgr => Str = aagrForms "quel" "quelle" "quels" "quelles" ;
|
||||||
|
|
||||||
|
partQIndir = elision "c" ;
|
||||||
|
|
||||||
copula : Verb = {s = table VF ["être";"suis";"es";"est";"sommes";"êtes";"sont";"sois";"sois";"soit";"soyons";"soyez";"soient";"étais";"étais";"était";"étions";"étiez";"étaient";"fusse";"fusses";"fût";"fussions";"fussiez";"fussent";"fus";"fus";"fut";"fûmes";"fûtes";"furent";"serai";"seras";"sera";"serons";"serez";"seront";"serais";"serais";"serait";"serions";"seriez";"seraient";"sois";"soyons";"soyez";"été";"étés";"étée";"étées";"étant"]; vtyp=VHabere} ;
|
copula : Verb = {s = table VF ["être";"suis";"es";"est";"sommes";"êtes";"sont";"sois";"sois";"soit";"soyons";"soyez";"soient";"étais";"étais";"était";"étions";"étiez";"étaient";"fusse";"fusses";"fût";"fussions";"fussiez";"fussent";"fus";"fus";"fut";"fûmes";"fûtes";"furent";"serai";"seras";"sera";"serons";"serez";"seront";"serais";"serais";"serait";"serions";"seriez";"seraient";"sois";"soyons";"soyez";"été";"étés";"étée";"étées";"étant"]; vtyp=VHabere} ;
|
||||||
|
|
||||||
avoir_V : Verb = {s=table VF ["avoir";"ai";"as";"a";"avons";"avez";"ont";"aie";"aies";"ait";"ayons";"ayez";"aient";"avais";"avais";"avait";"avions";"aviez";"avaient";"eusse";"eusses";"eût";"eussions";"eussiez";"eussent";"eus";"eus";"eut";"eûmes";"eûtes";"eurent";"aurai";"auras";"aura";"aurons";"aurez";"auront";"aurais";"aurais";"aurait";"aurions";"auriez";"auraient";"aie";"ayons";"ayez";"eu";"eus";"eue";"eues";"ayant"];vtyp=VHabere};
|
avoir_V : Verb = {s=table VF ["avoir";"ai";"as";"a";"avons";"avez";"ont";"aie";"aies";"ait";"ayons";"ayez";"aient";"avais";"avais";"avait";"avions";"aviez";"avaient";"eusse";"eusses";"eût";"eussions";"eussiez";"eussent";"eus";"eus";"eut";"eûmes";"eûtes";"eurent";"aurai";"auras";"aura";"aurons";"aurez";"auront";"aurais";"aurais";"aurait";"aurions";"auriez";"auraient";"aie";"ayons";"ayez";"eu";"eus";"eue";"eues";"ayant"];vtyp=VHabere};
|
||||||
|
|||||||
@@ -337,7 +337,7 @@ oper
|
|||||||
A2S, A2V : Type = A2 ;
|
A2S, A2V : Type = A2 ;
|
||||||
|
|
||||||
mkV0 v = v ** {lock_V0 = <>} ;
|
mkV0 v = v ** {lock_V0 = <>} ;
|
||||||
mkVS v = v ** {mn,mp = Indic ; lock_VS = <>} ; ---- more moods
|
mkVS v = v ** {m = \\_ => Indic ; lock_VS = <>} ; ---- more moods
|
||||||
mkV2S v p = mkV2 v p ** {mn,mp = Indic ; lock_V2S = <>} ;
|
mkV2S v p = mkV2 v p ** {mn,mp = Indic ; lock_V2S = <>} ;
|
||||||
mkVV v = v ** {c2 = complAcc ; lock_VV = <>} ;
|
mkVV v = v ** {c2 = complAcc ; lock_VV = <>} ;
|
||||||
deVV v = v ** {c2 = complGen ; lock_VV = <>} ;
|
deVV v = v ** {c2 = complGen ; lock_VV = <>} ;
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ lin
|
|||||||
"il" (elision "l") "lui" "lui" "son" (elisPoss "s") "ses"
|
"il" (elision "l") "lui" "lui" "son" (elisPoss "s") "ses"
|
||||||
Masc Sg P3 Clit2 ;
|
Masc Sg P3 Clit2 ;
|
||||||
less_CAdv = ss "moins" ;
|
less_CAdv = ss "moins" ;
|
||||||
many_Det = {s = \\_,c => prepCase c ++ "plusierus" ; n = Pl} ;
|
many_Det = {s = \\_,c => prepCase c ++ "plusieurs" ; n = Pl} ;
|
||||||
more_CAdv = ss "plus" ;
|
more_CAdv = ss "plus" ;
|
||||||
most_Predet = {s = \\_,c => prepCase c ++ ["la plupart"] ; c = CPrep P_de} ;
|
most_Predet = {s = \\_,c => prepCase c ++ ["la plupart"] ; c = CPrep P_de} ;
|
||||||
much_Det = {s = \\_,c => prepCase c ++ "beaucoup" ++ elisDe ; n = Pl} ;
|
much_Det = {s = \\_,c => prepCase c ++ "beaucoup" ++ elisDe ; n = Pl} ;
|
||||||
@@ -127,116 +127,3 @@ lin
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
{-
|
|
||||||
lin
|
|
||||||
above_Prep = ss "ovanför" ;
|
|
||||||
after_Prep = ss "efter" ;
|
|
||||||
by8agent_Prep = ss "av" ;
|
|
||||||
all_Predet = {s = gennumForms "all" "allt" "alla"} ;
|
|
||||||
almost_AdA, almost_AdN = ss "nästan" ;
|
|
||||||
although_Subj = ss "fast" ;
|
|
||||||
always_AdV = ss "alltid" ;
|
|
||||||
and_Conj = ss "och" ** {n = Pl} ;
|
|
||||||
because_Subj = ss "eftersom" ;
|
|
||||||
before_Prep = ss "före" ;
|
|
||||||
behind_Prep = ss "bakom" ;
|
|
||||||
between_Prep = ss "mellan" ;
|
|
||||||
both7and_DConj = sd2 "både" "och" ** {n = Pl} ;
|
|
||||||
but_PConj = ss "men" ;
|
|
||||||
by8means_Prep = ss "med" ;
|
|
||||||
can8know_VV, can_VV =
|
|
||||||
mkVerb6 "kunna" "kan" "kunn" "kunde" "kunnat" "kunnen" **
|
|
||||||
{c2 = [] ; lock_VV = <>} ;
|
|
||||||
during_Prep = ss "under" ;
|
|
||||||
either7or_DConj = sd2 "antingen" "eller" ** {n = Sg} ;
|
|
||||||
everybody_NP = regNP "alla" "allas" Plg ;
|
|
||||||
every_Det = {s = \\_,_ => "varje" ; n = Sg ; det = DDef Indef} ;
|
|
||||||
everything_NP = regNP "allting" "alltings" SgNeutr ;
|
|
||||||
everywhere_Adv = ss "överallt" ;
|
|
||||||
first_Ord = {s = "första" ; isDet = True} ;
|
|
||||||
from_Prep = ss "från" ;
|
|
||||||
he_Pron = mkNP "han" "honom" "hans" "hans" "hans" SgUtr P3 ;
|
|
||||||
here_Adv = ss "här" ;
|
|
||||||
here7to_Adv = ss "hit" ;
|
|
||||||
here7from_Adv = ss "härifrån" ;
|
|
||||||
how_IAdv = ss "hur" ;
|
|
||||||
how8many_IDet = {s = \\_ => ["hur många"] ; n = Pl ; det = DDef Indef} ;
|
|
||||||
if_Subj = ss "om" ;
|
|
||||||
in8front_Prep = ss "framför" ;
|
|
||||||
i_Pron = mkNP "jag" "mig" "min" "mitt" "mina" SgUtr P1 ;
|
|
||||||
in_Prep = ss "i" ;
|
|
||||||
it_Pron = regNP "det" "dess" SgNeutr ;
|
|
||||||
less_CAdv = ss "mindre" ;
|
|
||||||
many_Det = {s = \\_,_ => "många" ; n = Pl ; det = DDef Indef} ;
|
|
||||||
more_CAdv = ss "mer" ;
|
|
||||||
most_Predet = {s = gennumForms ["den mesta"] ["det mesta"] ["de flesta"]} ;
|
|
||||||
much_Det = {s = \\_,_ => "mycket" ; n = Pl ; det = DDef Indef} ;
|
|
||||||
must_VV =
|
|
||||||
mkVerb6 "få" "måste" "få" "fick" "måst" "måst" ** {c2 = [] ; lock_VV = <>} ;
|
|
||||||
no_Phr = ss ["Nej"] ;
|
|
||||||
on_Prep = ss "på" ;
|
|
||||||
one_Quant = {s = \\_ => genderForms ["en"] ["ett"] ; n = Sg ; det = DIndef} ;
|
|
||||||
only_Predet = {s = \\_ => "bara"} ;
|
|
||||||
or_Conj = ss "eller" ** {n = Sg} ;
|
|
||||||
otherwise_PConj = ss "annars" ;
|
|
||||||
part_Prep = ss "av" ;
|
|
||||||
please_Voc = ss "tack" ; ---
|
|
||||||
possess_Prep = ss "av" ;
|
|
||||||
quite_Adv = ss "ganska" ;
|
|
||||||
she_Pron = mkNP "hon" "henne" "hennes" "hennes" "hennes" SgUtr P3 ;
|
|
||||||
so_AdA = ss "så" ;
|
|
||||||
someSg_Det = {s = \\_ => genderForms "någon" "något" ; n = Sg ; det = DIndef} ;
|
|
||||||
somePl_Det = {s = \\_,_ => "några" ; n = Pl ; det = DIndef} ;
|
|
||||||
somebody_NP = regNP "någon" "någons" SgUtr ;
|
|
||||||
something_NP = regNP "något" "någots" SgNeutr ;
|
|
||||||
somewhere_Adv = ss "någonstans" ;
|
|
||||||
that_Quant =
|
|
||||||
{s = \\_ => genderForms ["den där"] ["det där"] ; n = Sg ; det = DDef Def} ;
|
|
||||||
that_NP = regNP ["det där"] ["det därs"] SgNeutr ;
|
|
||||||
there_Adv = ss "där" ;
|
|
||||||
there7to_Adv = ss "dit" ;
|
|
||||||
there7from_Adv = ss "därifrån" ;
|
|
||||||
therefore_PConj = ss "därför" ;
|
|
||||||
these_NP = regNP ["de här"] ["det härs"] Plg ;
|
|
||||||
these_Quant = {s = \\_,_ => ["de här"] ; n = Pl ; det = DDef Def} ;
|
|
||||||
they_Pron = mkNP "de" "dem" "deras" "deras" "deras" Plg P1 ;
|
|
||||||
this_Quant =
|
|
||||||
{s = \\_ => genderForms ["den här"] ["det här"] ; n = Sg ; det = DDef Def} ;
|
|
||||||
this_NP = regNP ["det här"] ["det härs"] SgNeutr ;
|
|
||||||
those_NP = regNP ["de där"] ["det därs"] Plg ;
|
|
||||||
those_Quant = {s = \\_,_ => ["de där"] ; n = Pl ; det = DDef Def} ;
|
|
||||||
thou_Pron = mkNP "du" "dig" "din" "ditt" "dina" SgUtr P2 ;
|
|
||||||
through_Prep = ss "genom" ;
|
|
||||||
too_AdA = ss "för" ;
|
|
||||||
to_Prep = ss "till" ;
|
|
||||||
under_Prep = ss "under" ;
|
|
||||||
very_AdA = ss "mycket" ;
|
|
||||||
want_VV =
|
|
||||||
mkVerb6 "vilja" "vill" "vilj" "ville" "velat" "velad" **
|
|
||||||
{c2 = [] ; lock_VV = <>} ;
|
|
||||||
we_Pron = mkNP "vi" "oss" "vår" "vårt" "våra" Plg P1 ;
|
|
||||||
whatSg_IP = {s = \\_ => "vad" ; gn = SgUtr} ; ---- infl
|
|
||||||
whatPl_IP = {s = \\_ => "vad" ; gn = Plg} ; ---- infl
|
|
||||||
when_IAdv = ss "när" ;
|
|
||||||
when_Subj = ss "när" ;
|
|
||||||
where_IAdv = ss "var" ;
|
|
||||||
whichPl_IDet = {s = \\_ => "vilka" ; n = Pl ; det = DIndef} ;
|
|
||||||
whichSg_IDet = {s = genderForms "vilken" "vilket" ; n = Sg ; det = DIndef} ;
|
|
||||||
whoSg_IP = {s = vem.s ; gn = SgUtr} ;
|
|
||||||
whoPl_IP = {s = vem.s ; gn = Plg} ;
|
|
||||||
why_IAdv = ss "varför" ;
|
|
||||||
without_Prep = ss "utan" ;
|
|
||||||
with_Prep = ss "med" ;
|
|
||||||
ye_Pron = mkNP "ni" "er" "er" "ert" "era" Plg P2 ;
|
|
||||||
yes_Phr = ss ["ja"] ;
|
|
||||||
you_Pron = mkNP "ni" "er" "er" "ert" "era" SgUtr P2 ; --- wrong in refl
|
|
||||||
|
|
||||||
-- Auxiliaries that are used repeatedly.
|
|
||||||
|
|
||||||
oper
|
|
||||||
vem = mkNP "vem" "vem" "vems" "vems" "vems" SgUtr P3 ;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
-}
|
|
||||||
|
|||||||
@@ -12,25 +12,24 @@ incomplete concrete AdjectiveRomance of Adjective =
|
|||||||
isPre = False
|
isPre = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
{-
|
|
||||||
-- $SuperlA$ belongs to determiner syntax in $Noun$.
|
-- $SuperlA$ belongs to determiner syntax in $Noun$.
|
||||||
|
|
||||||
ComplA2 a np = {
|
ComplA2 adj np = {
|
||||||
s = \\ap => a.s ! AF (APosit ap) Nom ++ a.c2 ++ np.s ! accusative ;
|
s = \\af => adj.s ! Posit ! af ++ appCompl adj.c2 np.s ;
|
||||||
isPre = False
|
isPre = False
|
||||||
} ;
|
} ;
|
||||||
|
{-
|
||||||
ReflA2 a = {
|
ReflA2 a = {
|
||||||
s = \\ap => a.s ! AF (APosit ap) Nom ++ a.c2 ++
|
s = \\ap => a.s ! AF (APosit ap) Nom ++ a.c2 ++
|
||||||
reflPron (agrP3 Utr Sg) ; ----
|
reflPron (agrP3 Utr Sg) ; ----
|
||||||
isPre = False
|
isPre = False
|
||||||
} ;
|
} ;
|
||||||
|
-}
|
||||||
SentAP ap sc = {
|
SentAP ap sc = {
|
||||||
s = \\a => ap.s ! a ++ sc.s ;
|
s = \\a => ap.s ! a ++ sc.s ; --- mood
|
||||||
isPre = False
|
isPre = False
|
||||||
} ;
|
} ;
|
||||||
-}
|
|
||||||
AdAP ada ap = {
|
AdAP ada ap = {
|
||||||
s = \\a => ada.s ++ ap.s ! a ;
|
s = \\a => ada.s ++ ap.s ! a ;
|
||||||
isPre = ap.isPre
|
isPre = ap.isPre
|
||||||
|
|||||||
@@ -73,9 +73,10 @@ incomplete concrete CatRomance of Cat =
|
|||||||
|
|
||||||
-- Open lexical classes, e.g. Basic
|
-- Open lexical classes, e.g. Basic
|
||||||
|
|
||||||
V, VS, VQ, VA = Verb ;
|
V, VQ, VA = Verb ;
|
||||||
V2, VV, V2A = Verb ** {c2 : Compl} ;
|
V2, VV, V2A = Verb ** {c2 : Compl} ;
|
||||||
V3 = Verb ** {c2,c3 : Compl} ;
|
V3 = Verb ** {c2,c3 : Compl} ;
|
||||||
|
VS = Verb ** {m : Polarity => Mood} ;
|
||||||
|
|
||||||
A = {s : Degree => AForm => Str ; isPre : Bool} ;
|
A = {s : Degree => AForm => Str ; isPre : Bool} ;
|
||||||
A2 = {s : Degree => AForm => Str ; c2 : Compl} ;
|
A2 = {s : Degree => AForm => Str ; c2 : Compl} ;
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ resource CommonRomance = ParamRomance ** open Prelude in {
|
|||||||
clit1 : Agr => Str ; -- se
|
clit1 : Agr => Str ; -- se
|
||||||
clit2 : Str ; -- lui
|
clit2 : Str ; -- lui
|
||||||
comp : Agr => Str ; -- content(e) ; à ma mère ; hier
|
comp : Agr => Str ; -- content(e) ; à ma mère ; hier
|
||||||
ext : Str ; -- que je dors
|
ext : Polarity => Str ; -- que je dors / que je dorme
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
appVPAgr : VPAgr -> AAgr -> AAgr = \vp,agr ->
|
appVPAgr : VPAgr -> AAgr -> AAgr = \vp,agr ->
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ oper
|
|||||||
relPron : Bool => AAgr => Case => Str ;
|
relPron : Bool => AAgr => Case => Str ;
|
||||||
pronSuch : AAgr => Str ;
|
pronSuch : AAgr => Str ;
|
||||||
|
|
||||||
|
partQIndir : Str ; -- ce, ciò
|
||||||
|
|
||||||
-- These needed above.
|
-- These needed above.
|
||||||
|
|
||||||
param
|
param
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ incomplete concrete PhraseRomance of Phrase =
|
|||||||
UttIP ip = {s = ip.s ! Nom} ; --- Acc also
|
UttIP ip = {s = ip.s ! Nom} ; --- Acc also
|
||||||
UttIAdv iadv = iadv ;
|
UttIAdv iadv = iadv ;
|
||||||
UttNP np = {s = np.s ! Ton Nom} ;
|
UttNP np = {s = np.s ! Ton Nom} ;
|
||||||
---- UttVP vp = {s = infVP vp (agrP3 Utr Sg)} ;
|
UttVP vp = {s = infVP vp (agrP3 Fem Sg)} ; --- Agr
|
||||||
UttAdv adv = adv ;
|
UttAdv adv = adv ;
|
||||||
|
|
||||||
NoPConj = {s = []} ;
|
NoPConj = {s = []} ;
|
||||||
|
|||||||
@@ -21,27 +21,24 @@ incomplete concrete QuestionRomance of Question =
|
|||||||
in
|
in
|
||||||
cl.s ! t ! a ! b ! Indic
|
cl.s ! t ! a ! b ! Indic
|
||||||
} ;
|
} ;
|
||||||
{-
|
|
||||||
QuestSlash ip slash = {
|
QuestSlash ip slash = {
|
||||||
s = \\t,a,p =>
|
s = \\t,a,p =>
|
||||||
let
|
let
|
||||||
cls = slash.s ! t ! a ! p ;
|
cls = slash.s ! t ! a ! p ! Indic ;
|
||||||
who = slash.c2 ++ ip.s ! accusative --- stranding in ExtRomance
|
who = slash.c2.s ++ ip.s ! slash.c2.c
|
||||||
in table {
|
in table {
|
||||||
QDir => who ++ cls ! Inv ;
|
QDir => who ++ cls ;
|
||||||
QIndir => who ++ cls ! Sub
|
QIndir => partQIndir ++ who ++ cls
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
QuestIAdv iadv cl = {
|
QuestIAdv iadv cl = {
|
||||||
s = \\t,a,p =>
|
s = \\t,a,p,_ =>
|
||||||
let
|
let
|
||||||
cls = cl.s ! t ! a ! p ;
|
cls = cl.s ! t ! a ! p ! Indic ;
|
||||||
why = iadv.s
|
why = iadv.s
|
||||||
in table {
|
in why ++ cls
|
||||||
QDir => why ++ cls ! Inv ;
|
|
||||||
QIndir => why ++ cls ! Sub
|
|
||||||
}
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
PrepIP p ip = {
|
PrepIP p ip = {
|
||||||
@@ -50,13 +47,17 @@ incomplete concrete QuestionRomance of Question =
|
|||||||
|
|
||||||
AdvIP ip adv = {
|
AdvIP ip adv = {
|
||||||
s = \\c => ip.s ! c ++ adv.s ;
|
s = \\c => ip.s ! c ++ adv.s ;
|
||||||
gn = ip.gn
|
a = ip.a
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
IDetCN idet num ord cn = let g = cn.g in {
|
IDetCN idet num ord cn =
|
||||||
s = \\c =>
|
let
|
||||||
idet.s ! g ++ num.s ! g ++ ord.s ++ cn.s ! idet.n ! idet.det ! caseNP c ;
|
g = cn.g ;
|
||||||
gn = gennum g idet.n
|
n = idet.n ;
|
||||||
|
a = aagr g n
|
||||||
|
in {
|
||||||
|
s = \\c => idet.s ! g ! c ++ num.s ! g ++ ord.s ! a ++ cn.s ! n ;
|
||||||
|
a = a
|
||||||
} ;
|
} ;
|
||||||
-}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,12 +20,11 @@ incomplete concrete RelativeRomance of Relative =
|
|||||||
in
|
in
|
||||||
cl.s ! t ! ant ! b ! m
|
cl.s ! t ! ant ! b ! m
|
||||||
} ;
|
} ;
|
||||||
{-
|
|
||||||
RelSlash rp slash = {
|
RelSlash rp slash = {
|
||||||
s = \\t,a,p,ag =>
|
s = \\t,a,p,m,ag =>
|
||||||
rp.s ! ag.gn ! RNom ++ slash.s ! t ! a ! p ! Sub ++ slash.c2
|
slash.c2.s ++ rp.s ! False ! ag ! slash.c2.c ++ slash.s ! t ! a ! p ! m
|
||||||
} ;
|
} ;
|
||||||
-}
|
|
||||||
|
|
||||||
FunRP p np rp = {
|
FunRP p np rp = {
|
||||||
s = \\_,a,c => np.s ! Ton Nom ++ p.s ++ rp.s ! True ! a ! p.c ;
|
s = \\_,a,c => np.s ! Ton Nom ++ p.s ++ rp.s ! True ! a ! p.c ;
|
||||||
@@ -36,7 +35,4 @@ incomplete concrete RelativeRomance of Relative =
|
|||||||
a = RNoAg
|
a = RNoAg
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- RCl = {s : Tense => Anteriority => Polarity => Mood => Agr => Str} ;
|
|
||||||
-- RP = {s : AAgr => RelForm => Str ; a : RAgr} ;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ oper
|
|||||||
clit1 = \\a => [] ; ----
|
clit1 = \\a => [] ; ----
|
||||||
clit2 = [] ;
|
clit2 = [] ;
|
||||||
comp = \\a => [] ;
|
comp = \\a => [] ;
|
||||||
ext = [] ;
|
ext = \\p => []
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
insertObject : Compl -> Pronoun -> VP -> VP = \c,np,vp ->
|
insertObject : Compl -> Pronoun -> VP -> VP = \c,np,vp ->
|
||||||
@@ -121,6 +121,15 @@ oper
|
|||||||
comp = \\a => vp.comp ! a ++ co ;
|
comp = \\a => vp.comp ! a ++ co ;
|
||||||
ext = vp.ext ;
|
ext = vp.ext ;
|
||||||
} ;
|
} ;
|
||||||
|
insertExtrapos : (Polarity => Str) -> VP -> VP = \co,vp -> {
|
||||||
|
s = vp.s ;
|
||||||
|
agr = vp.agr ;
|
||||||
|
clit1 = vp.clit1 ;
|
||||||
|
clit2 = vp.clit2 ;
|
||||||
|
neg = vp.neg ;
|
||||||
|
comp = vp.comp ;
|
||||||
|
ext = \\p => vp.ext ! p ++ co ! p ;
|
||||||
|
} ;
|
||||||
|
|
||||||
mkClause : Str -> Agr -> VP ->
|
mkClause : Str -> Agr -> VP ->
|
||||||
{s : Tense => Anteriority => Polarity => Mood => Str} =
|
{s : Tense => Anteriority => Polarity => Mood => Str} =
|
||||||
@@ -138,7 +147,7 @@ oper
|
|||||||
inf = vps.inf ! (appVPAgr vp.agr (aagr agr.g agr.n)) ; --- subtype bug
|
inf = vps.inf ! (appVPAgr vp.agr (aagr agr.g agr.n)) ; --- subtype bug
|
||||||
neg = vp.neg ! b ;
|
neg = vp.neg ! b ;
|
||||||
clit = vp.clit1 ! agr ++ vp.clit2 ;
|
clit = vp.clit1 ! agr ++ vp.clit2 ;
|
||||||
compl = vp.comp ! agr ++ vp.ext
|
compl = vp.comp ! agr ++ vp.ext ! b
|
||||||
in
|
in
|
||||||
subj ++ neg.p1 ++ clit ++ verb ++ neg.p2 ++ inf ++ compl
|
subj ++ neg.p1 ++ clit ++ verb ++ neg.p2 ++ inf ++ compl
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
incomplete concrete SentenceRomance of Sentence =
|
incomplete concrete SentenceRomance of Sentence =
|
||||||
CatRomance ** open CommonRomance, ResRomance in {
|
CatRomance ** open Prelude, CommonRomance, ResRomance in {
|
||||||
|
|
||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
PredVP np vp = mkClause (np.s ! Aton Nom) np.a vp ;
|
PredVP np vp = mkClause (np.s ! Aton Nom) np.a vp ;
|
||||||
|
|
||||||
-- PredSCVP sc vp = mkClause sc.s (agrP3 neutrum Sg) vp ;
|
PredSCVP sc vp = mkClause sc.s (agrP3 Masc Sg) vp ;
|
||||||
|
|
||||||
ImpVP vp = {
|
ImpVP vp = {
|
||||||
s = \\pol,aag =>
|
s = \\pol,aag =>
|
||||||
@@ -14,30 +14,30 @@ incomplete concrete SentenceRomance of Sentence =
|
|||||||
agr = aag ** {p = P2} ;
|
agr = aag ** {p = P2} ;
|
||||||
verb = (vp.s ! VPImperat).fin ! agr
|
verb = (vp.s ! VPImperat).fin ! agr
|
||||||
in
|
in
|
||||||
verb ++ vp.comp ! agr ++ vp.ext --- neg,clit
|
verb ++ vp.comp ! agr ++ vp.ext ! pol ---- neg,clit
|
||||||
} ;
|
} ;
|
||||||
{-
|
|
||||||
SlashV2 np v2 =
|
SlashV2 np v2 =
|
||||||
mkClause
|
mkClause
|
||||||
(np.s ! nominative) np.a
|
(np.s ! Aton Nom) np.a
|
||||||
(predV v2) **
|
(predV v2) **
|
||||||
{c2 = v2.c2} ;
|
{c2 = v2.c2} ;
|
||||||
|
|
||||||
SlashVVV2 np vv v2 =
|
SlashVVV2 np vv v2 =
|
||||||
mkClause
|
mkClause
|
||||||
(np.s ! nominative) np.a
|
(np.s ! Aton Nom) np.a
|
||||||
(insertObj (\\_ => vv.c2 ++ infVP (predV v2) np.a) (predV vv)) **
|
(insertComplement (\\a => prepCase vv.c2.c ++ v2.s ! VInfin) (predV v2)) **
|
||||||
{c2 = v2.c2} ;
|
{c2 = v2.c2} ;
|
||||||
|
|
||||||
AdvSlash slash adv = {
|
AdvSlash slash adv = {
|
||||||
s = \\t,a,b,o => slash.s ! t ! a ! b ! o ++ adv.s ;
|
s = \\t,a,b,m => slash.s ! t ! a ! b ! m ++ adv.s ;
|
||||||
c2 = slash.c2
|
c2 = slash.c2
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
SlashPrep cl prep = cl ** {c2 = prep.s} ;
|
SlashPrep cl prep = cl ** {c2 = {s = prep.s ; c = prep.c ; isDir = False}} ;
|
||||||
|
|
||||||
EmbedS s = {s = conjThat ++ s.s ! Sub} ;
|
EmbedS s = {s = conjThat ++ s.s ! Indic} ; --- mood
|
||||||
EmbedQS qs = {s = qs.s ! QIndir} ;
|
EmbedQS qs = {s = qs.s ! QIndir} ;
|
||||||
EmbedVP vp = {s = infVP vp (agrP3 utrum Sg)} ; --- agr
|
EmbedVP vp = {s = infVP vp (agrP3 Masc Sg)} ; --- agr
|
||||||
-}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ incomplete concrete TensedRomance of Tensed = CatRomance, TenseX **
|
|||||||
lin
|
lin
|
||||||
UseCl t a p cl = {s = \\o => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! o} ;
|
UseCl t a p cl = {s = \\o => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! o} ;
|
||||||
UseQCl t a p cl = {s = \\q => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! q} ;
|
UseQCl t a p cl = {s = \\q => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! q} ;
|
||||||
-- UseRCl t a p cl = {s = \\r => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! r} ;
|
UseRCl t a p cl =
|
||||||
|
{s = \\r,ag => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! r ! ag} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,17 +12,15 @@ incomplete concrete VerbRomance of Verb =
|
|||||||
|
|
||||||
ComplVV v vp = insertComplement (\\a => prepCase v.c2.c ++ infVP vp a) (predV v) ;
|
ComplVV v vp = insertComplement (\\a => prepCase v.c2.c ++ infVP vp a) (predV v) ;
|
||||||
|
|
||||||
{-
|
ComplVS v s = insertExtrapos (\\b => conjThat ++ s.s ! (v.m ! b)) (predV v) ;
|
||||||
ComplVS v s = insertObj (\\_ => conjThat ++ s.s ! Sub) (predV v) ;
|
ComplVQ v q = insertExtrapos (\\_ => q.s ! QIndir) (predV v) ;
|
||||||
ComplVQ v q = insertObj (\\_ => q.s ! QIndir) (predV v) ;
|
|
||||||
|
|
||||||
ComplVA v ap =
|
ComplVA v ap =
|
||||||
insertObj (\\a => ap.s ! agrAdj a.gn DIndef) (predV v) ;
|
insertComplement (\\a => ap.s ! AF a.g a.n) (predV v) ;
|
||||||
ComplV2A v np ap =
|
ComplV2A v np ap =
|
||||||
insertAdv
|
insertComplement
|
||||||
(ap.s ! agrAdj np.a.gn DIndef)
|
(\\a => ap.s ! AF np.a.g np.a.n)
|
||||||
(insertObj (\\_ => v.c2 ++ np.s ! accusative) (predV v)) ;
|
(insertObject v.c2 np (predV v)) ;
|
||||||
-}
|
|
||||||
|
|
||||||
UseComp comp = insertComplement comp.s (predV copula) ;
|
UseComp comp = insertComplement comp.s (predV copula) ;
|
||||||
|
|
||||||
@@ -40,8 +38,8 @@ incomplete concrete VerbRomance of Verb =
|
|||||||
insertObj
|
insertObj
|
||||||
(\\a => v.s ! VI (VPtPret (agrAdj a.gn DIndef) Nom))
|
(\\a => v.s ! VI (VPtPret (agrAdj a.gn DIndef) Nom))
|
||||||
(predV verbBecome) ;
|
(predV verbBecome) ;
|
||||||
|
|
||||||
UseVS, UseVQ = \vv -> {s = vv.s ; c2 = [] ; vtype = vv.vtype} ;
|
|
||||||
-}
|
-}
|
||||||
|
|
||||||
|
UseVS, UseVQ = \vv -> {s = vv.s ; c2 = complAcc ; vtyp = vv.vtyp} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user