diff --git a/lib/resource/french/ClauseFre.gf b/lib/resource/french/ClauseFre.gf new file mode 100644 index 000000000..333cfd3c1 --- /dev/null +++ b/lib/resource/french/ClauseFre.gf @@ -0,0 +1,4 @@ +--# -path=.:../romance:../abstract:../../prelude + +concrete ClauseFre of Clause = CategoriesFre ** + ClauseRomance with (SyntaxRomance=SyntaxFre) ; diff --git a/lib/resource/romance/CategoriesRomance.gf b/lib/resource/romance/CategoriesRomance.gf index a6d8a84be..de40714d5 100644 --- a/lib/resource/romance/CategoriesRomance.gf +++ b/lib/resource/romance/CategoriesRomance.gf @@ -25,7 +25,7 @@ incomplete concrete CategoriesRomance of Categories = open Prelude, SyntaxRomance in { flags - startcat=Phr ; + startcat=Phr ; optimize=all ; lincat N = CommNoun ; @@ -66,7 +66,7 @@ lincat V2S = TransVerb ; V2Q = TransVerb ; - V2V = TransVerb ** {s3 : Preposition ; c3 : CaseA} ; + V2V = TransVerb ** {c3 : CaseA} ; V2A = TransVerb ; V0 = Verb ; diff --git a/lib/resource/romance/ClauseRomance.gf b/lib/resource/romance/ClauseRomance.gf new file mode 100644 index 000000000..ee653c50a --- /dev/null +++ b/lib/resource/romance/ClauseRomance.gf @@ -0,0 +1,149 @@ +--# -path=.:../abstract:../../prelude + +incomplete concrete ClauseRomance of Clause = CategoriesRomance ** + open Prelude, SyntaxRomance in { + + flags optimize=all ; + + lin + SPredV np v = predVerbClause np v (complVerb v) ; + SPredPassV np v = predCopula np (passVerb v) ; + SPredV2 np v x = predVerbClause np v (complTransVerb v x) ; +-- SPredReflV2 np v = predVerbClause np v (reflTransVerb v) ; + SPredVS np v x = predVerbClause np v (complSentVerb v x) ; + SPredVV np v x = predVerbClause np v (complVerbVerb v x) ; + SPredVQ np v x = predVerbClause np v (complQuestVerb v x) ; + SPredVA np v x = predVerbClause np v (complAdjVerb v x) ; + SPredV2A np v x y = predVerbClause np v (complDitransAdjVerb v x y) ; + SPredSubjV2V np v x y = predVerbClause np v (complDitransVerbVerb False v x y) ; + SPredObjV2V np v x y = predVerbClause np v (complDitransVerbVerb True v x y) ; +{- + SPredV2S np v x y = predVerbClause np v (complDitransSentVerb v x y) ; + SPredV2Q np v x y = predVerbClause np v (complDitransQuestVerb v x y) ; +-} + SPredAP np v = predCopula np (complAdjective v) ; + SPredSuperl np a = predCopula np (complAdjective (superlAdjPhrase a)) ; + SPredCN np v = predCopula np (complCommNoun v) ; + SPredNP np v = predCopula np (complNounPhrase v) ; + SPredPP np v = predCopula np (complAdverb v) ; +{- + SPredAV np v x = predCopula np (complVerbAdj v x) ; + SPredObjA2V np v x y = predCopula np (complVerbAdj2 True v x y) ; + + SPredProgVP = progressiveClause ; + + QPredV np v = intVerbClause np v (complVerb v) ; + QPredPassV np v = predCopulaQ np (passVerb v) ; + QPredV2 np v x = intVerbClause np v (complTransVerb v x) ; +-- QPredReflV2 np v = intVerbClause np v (reflTransVerb v) ; + QPredVS np v x = intVerbClause np v (complSentVerb v x) ; + QPredVV np v x = intVerbClause np (aux2verb v) (complVerbVerb v x) ; + QPredVQ np v x = intVerbClause np v (complQuestVerb v x) ; + QPredVA np v x = intVerbClause np v (complAdjVerb v x) ; + QPredV2A np v x y = intVerbClause np v (complDitransAdjVerb v x y) ; + QPredSubjV2V np v x y = intVerbClause np v (complDitransVerbVerb + False v x y) ; + QPredObjV2V np v x y = intVerbClause np v (complDitransVerbVerb + True v x y) ; + QPredV2S np v x y = intVerbClause np v (complDitransSentVerb v x y) ; + QPredV2Q np v x y = intVerbClause np v (complDitransQuestVerb v x y) ; + + QPredAP np v = predCopulaQ np (complAdjective v) ; + QPredSuperl np a = predCopulaQ np (complAdjective (superlAdjPhrase a)) ; + QPredCN np v = predCopulaQ np (complCommNoun v) ; + QPredNP np v = predCopulaQ np (complNounPhrase v) ; + QPredPP np v = predCopulaQ np (complAdverb v) ; + QPredAV np v x = predCopulaQ np (complVerbAdj v x) ; + QPredObjA2V np v x y = predCopulaQ np (complVerbAdj2 True v x y) ; + + IPredV a v = predVerbI True a v (complVerb v) ; + IPredV2 a v x = predVerbI True a v (complTransVerb v x) ; + + IPredAP a v = predCopulaI True a (complAdjective v) ; +-} +{- +-- Use VPs + + PredVP = predVerbGroupClause ; + IntVP = intVerbPhrase ; + RelVP = relVerbPhrase ; + + + PosVP tp = predVerbGroup True tp.a ; + NegVP tp = predVerbGroup False tp.a ; + + AdvVP = adVerbPhrase ; + SubjVP = subjunctVerbPhrase ; +-} + + + +{- + lin + SPredV np v = predVerbGroupClause np (predVerb v) ; + SPredPassV np v = predVerbGroupClause np (passVerb v) ; + SPredV2 np v x = predVerbGroupClause np (complTransVerb v x) ; +-- SPredReflV2 np v = predVerbGroupClause np (reflTransVerb v) ; + SPredVS np v x = predVerbGroupClause np (complSentVerb v x) ; +-- SPredVV np v x = predVerbGroupClause np (complVerbVerb v x) ; +-- SPredVQ np v x = predVerbGroupClause np (complQuestVerb v x) ; +-- SPredVA np v x = predVerbGroupClause np (complAdjVerb v x) ; +-- SPredV2A np v x y = predVerbGroupClause np (complDitransAdjVerb v x y) ; +-- SPredSubjV2V np v x y = predVerbGroupClause np (complDitransVerbVerb False v x y) ; +-- SPredObjV2V np v x y = predVerbGroupClause np (complDitransVerbVerb True v x y) ; +-- SPredV2S np v x y = predVerbGroupClause np (complDitransSentVerb v x y) ; +-- SPredV2Q np v x y = predVerbGroupClause np (complDitransQuestVerb v x y) ; + + SPredAP np v = predVerbGroupClause np (predAdjective v) ; + SPredSuperl np a = predVerbGroupClause np (predAdjective (superlAdjPhrase a)) ; + SPredCN np v = predVerbGroupClause np (predCommNoun v) ; + SPredNP np v = predVerbGroupClause np (predNounPhrase v) ; + SPredPP np v = predVerbGroupClause np (predAdverb v) ; +-- SPredAV np v x = predVerbGroupClause np (complVerbAdj v x) ; +-- SPredObjA2V np v x y = predVerbGroupClause np (complVerbAdj2 True v x y) ; + +-- SPredProgVP = progressiveClause ; +-} +{- + QPredV np v = intVerbPhrase np (predVerb v) ; + QPredPassV np v = intVerbPhrase np (passVerb v) ; + QPredV2 np v x = intVerbPhrase np (complTransVerb v x) ; +-- QPredReflV2 np v = intVerbPhrase np (reflTransVerb v) ; + QPredVS np v x = intVerbPhrase np (complSentVerb v x) ; + QPredVV np v x = intVerbPhrase np (complVerbVerb v x) ; +-- QPredVQ np v x = intVerbPhrase np (complQuestVerb v x) ; +-- QPredVA np v x = intVerbPhrase np (complAdjVerb v x) ; +-- QPredV2A np v x y = intVerbPhrase np (complDitransAdjVerb v x y) ; +-- QPredSubjV2V np v x y = intVerbPhrase np (complDitransVerbVerb False v x y) ; +-- QPredObjV2V np v x y = intVerbPhrase np (complDitransVerbVerb True v x y) ; +-- QPredV2S np v x y = intVerbPhrase np (complDitransSentVerb v x y) ; +-- QPredV2Q np v x y = intVerbPhrase np (complDitransQuestVerb v x y) ; + + QPredAP np v = intVerbPhrase np (predAdjective v) ; + QPredSuperl np a = intVerbPhrase np (predAdjective (superlAdjPhrase a)) ; + QPredCN np v = intVerbPhrase np (predCommNoun v) ; + QPredNP np v = intVerbPhrase np (predNounPhrase v) ; + QPredPP np v = intVerbPhrase np (predAdverb v) ; +-- QPredAV np v x = intVerbPhrase np (complVerbAdj v x) ; +-- QPredObjA2V np v x y = intVerbPhrase np (complVerbAdj2 True v x y) ; +-} +-- IPredV a v = predVerbGroupI True a (predVerb v) ; +-- IPredV2 a v x = predVerbGroupI True a (complTransVerb v x) ; +-- IPredAP a v = predVerbGroupI True a (predAdjective v) ; + +{- +-- Use VPs + + PredVP = predVerbGroupClause ; + IntVP = intVerbPhrase ; + RelVP = relVerbPhrase ; + + + PosVP tp = predVerbGroup True tp.a ; + NegVP tp = predVerbGroup False tp.a ; + + AdvVP = adVerbPhrase ; + SubjVP = subjunctVerbPhrase ; +-} + +} \ No newline at end of file diff --git a/lib/resource/romance/SyntaxRomance.gf b/lib/resource/romance/SyntaxRomance.gf index 8fac52936..ecece8436 100644 --- a/lib/resource/romance/SyntaxRomance.gf +++ b/lib/resource/romance/SyntaxRomance.gf @@ -623,6 +623,38 @@ oper posNeg : Bool -> (verb, compl : Str) -> Str ; + complDitransAdjVerb : + TransVerb -> NounPhrase -> AdjPhrase -> Complemnt = \rend,toi,sec -> + let + rendtoi = complTransVerb rend toi + in + \\g,n,p => + let rt = rendtoi ! g ! n ! p in + {clit = rt.clit ; part = rt.part ; + compl = rt.compl ++ sec.s ! AF g n + } ; + + DitransVerbVerb = TransVerb ** {c3 : CaseA} ; + + complDitransVerbVerb : + Bool -> DitransVerbVerb -> NounPhrase -> VerbPhrase -> Complemnt = + \obj, demander, toi, nager -> + let + rendtoi = complTransVerb demander toi + in + \\g,n,p => + let + rt = rendtoi ! g ! n ! p ; + agr : Gender * Number * Person = case obj of { + True => ; + False => + } + in + {clit = rt.clit ; part = rt.part ; + compl = rt.compl ++ prepCase demander.c ++ + nager.s ! VIInfinit ! agr.p1 ! agr.p2 ! agr.p3 + } ; + --2 Adverbs --