forked from GitHub/gf-core
gerund and participle translations for Fre,Ita,Spa and Ger. Some a bit questionable.
This commit is contained in:
@@ -6041,7 +6041,7 @@ VP (Imp Sg P1) => variants {}
|
|||||||
VImper PlP1 => amar.s ! VP (Imp Pl P1) ;
|
VImper PlP1 => amar.s ! VP (Imp Pl P1) ;
|
||||||
VImper PlP2 => amar.s ! VP (Imp Pl P2) ;
|
VImper PlP2 => amar.s ! VP (Imp Pl P2) ;
|
||||||
VPart g n => amar.s ! VP (Pass n g) ;
|
VPart g n => amar.s ! VP (Pass n g) ;
|
||||||
VGer => amar.s ! VI Ger
|
VGer | VPresPart => amar.s ! VI Ger
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -244,7 +244,7 @@ oper
|
|||||||
VFin VCondit n p => aller ! Condi n p ; --# notpresent
|
VFin VCondit n p => aller ! Condi n p ; --# notpresent
|
||||||
VImper np => aller ! Imper np ;
|
VImper np => aller ! Imper np ;
|
||||||
VPart g n => aller ! Part (PPasse g n) ;
|
VPart g n => aller ! Part (PPasse g n) ;
|
||||||
VGer => aller ! Part PPres -- *en* allant
|
VGer | VPresPart => aller ! Part PPres -- *en* allant
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
Verbe : Type = VForm => Str ;
|
Verbe : Type = VForm => Str ;
|
||||||
|
|||||||
@@ -6502,7 +6502,8 @@ oper venire_110 : Str -> Verbo = \venire ->
|
|||||||
VFin VCondit n p => amare.s ! Cond n p ; --# notpresent
|
VFin VCondit n p => amare.s ! Cond n p ; --# notpresent
|
||||||
VImper np => amare.s ! Imper np ;
|
VImper np => amare.s ! Imper np ;
|
||||||
VPart g n => amare.s ! Part PassP g n ;
|
VPart g n => amare.s ! Part PassP g n ;
|
||||||
VGer => amare.s ! Ger
|
VGer => amare.s ! Ger ;
|
||||||
|
VPresPart => Predef.tk 2 (amare.s ! Ger) + "te"
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -87,6 +87,7 @@ param
|
|||||||
| VImper NumPersI
|
| VImper NumPersI
|
||||||
| VPart Gender Number
|
| VPart Gender Number
|
||||||
| VGer
|
| VGer
|
||||||
|
| VPresPart --- = VGer except in Italian
|
||||||
;
|
;
|
||||||
|
|
||||||
TMood =
|
TMood =
|
||||||
|
|||||||
@@ -276,18 +276,26 @@ oper
|
|||||||
--- have a "-" with possibly a special verb form with "t":
|
--- have a "-" with possibly a special verb form with "t":
|
||||||
--- "comment fera-t-il" vs. "comment fera Pierre"
|
--- "comment fera-t-il" vs. "comment fera Pierre"
|
||||||
|
|
||||||
infVP : VP -> Agr -> Str = \vp,agr ->
|
infVP : VP -> Agr -> Str = \vp ->
|
||||||
let
|
let
|
||||||
iform = orB vp.clit3.hasClit (isVRefl vp.s.vtyp) ;
|
iform = orB vp.clit3.hasClit (isVRefl vp.s.vtyp) ;
|
||||||
inf = vp.s.s ! VInfin iform ;
|
vf = VInfin iform ;
|
||||||
|
in
|
||||||
|
nominalVP vf iform vp ;
|
||||||
|
|
||||||
|
gerVP : VP -> Agr -> Str = nominalVP VGer True ;
|
||||||
|
|
||||||
|
nominalVP : VF -> Bool -> VP -> Agr -> Str = \vf,iform,vp,agr ->
|
||||||
|
let
|
||||||
|
inf = vp.s.s ! vf ;
|
||||||
neg = vp.neg ! RPos ; --- Neg not in API
|
neg = vp.neg ! RPos ; --- Neg not in API
|
||||||
obj = neg.p2 ++ vp.s.p ++ vp.comp ! agr ++ vp.ext ! RPos ; ---- pol
|
obj = vp.s.p ++ vp.comp ! agr ++ vp.ext ! RPos ; ---- pol
|
||||||
refl = case isVRefl vp.s.vtyp of {
|
refl = case isVRefl vp.s.vtyp of {
|
||||||
True => reflPron agr.n agr.p Acc ; ---- case ?
|
True => reflPron agr.n agr.p Acc ; ---- case ?
|
||||||
_ => []
|
_ => []
|
||||||
} ;
|
} ;
|
||||||
in
|
in
|
||||||
neg.p1 ++ clitInf iform (refl ++ vp.clit1 ++ vp.clit2 ++ vp.clit3.s) inf ++ obj ;
|
neg.p1 ++ neg.p2 ++ clitInf iform (refl ++ vp.clit1 ++ vp.clit2 ++ vp.clit3.s) inf ++ obj ; -- ne pas dormant
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6471,7 +6471,7 @@ oper llover_89 : Str -> Verbum = \llover ->
|
|||||||
VImper PlP1 => amar.s ! VPB (Imper Pl P1) ;
|
VImper PlP1 => amar.s ! VPB (Imper Pl P1) ;
|
||||||
VImper PlP2 => amar.s ! VPB (Imper Pl P2) ;
|
VImper PlP2 => amar.s ! VPB (Imper Pl P2) ;
|
||||||
VPart g n => amar.s ! VPB (Pass n g) ;
|
VPart g n => amar.s ! VPB (Pass n g) ;
|
||||||
VGer => amar.s ! VI Ger
|
VGer | VPresPart => amar.s ! VI Ger
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -59,29 +59,43 @@ lin
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
{-
|
GerundNP vp =
|
||||||
GerundN v = {
|
let a = agrP3 Masc Sg ---- agr
|
||||||
s = \\n,c => v.s ! VPresPart ;
|
in
|
||||||
g = Neutr
|
heavyNP {s = \\c => prepCase c ++ infVP vp a ; a = a} ; -- parlare tedesco non è facile
|
||||||
} ;
|
|
||||||
|
|
||||||
GerundAP v = {
|
|
||||||
s = \\agr => v.s ! VPresPart ;
|
|
||||||
isPre = True
|
|
||||||
} ;
|
|
||||||
-- }
|
|
||||||
|
|
||||||
PastPartAP v = {
|
GerundAdv vp =
|
||||||
|
let a = agrP3 Masc Sg
|
||||||
|
in
|
||||||
|
{s = gerVP vp a} | {s = "en" ++ gerVP vp a} ;
|
||||||
|
|
||||||
|
WithoutVP vp = SyntaxFre.mkAdv without_Prep (lin NP (GerundNP (lin VP vp))) ; -- senza dormire
|
||||||
|
|
||||||
|
InOrderToVP vp = SyntaxFre.mkAdv for_Prep (lin NP (GerundNP (lin VP vp))) ; -- per dormire
|
||||||
|
|
||||||
|
ByVP vp = GerundAdv (lin VP vp) ;
|
||||||
|
|
||||||
|
PresPartAP vp = {
|
||||||
s = table {
|
s = table {
|
||||||
AF g n => v.s ! VPart g n ;
|
AF g n => nominalVP VPresPart True vp (agrP3 g n) ;
|
||||||
_ => v.s ! VPart Masc Sg ---- the adverb form
|
_ => nominalVP VPresPart True vp (agrP3 Masc Sg) ---- the adverb form
|
||||||
} ;
|
} ;
|
||||||
isPre = True
|
isPre = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
--{-
|
PastPartAP vp = {
|
||||||
OrdCompar a = {s = \\c => a.s ! AAdj Compar c } ;
|
s = table {
|
||||||
-}
|
AF g n => nominalVP (VPart g n) True vp (agrP3 g n) ;
|
||||||
|
_ => nominalVP (VPart Masc Sg) True vp (agrP3 Masc Sg) ---- the adverb form
|
||||||
|
} ;
|
||||||
|
isPre = False
|
||||||
|
} ;
|
||||||
|
|
||||||
|
PastPartAgentAP vp np =
|
||||||
|
let part = PastPartAP (lin VP vp)
|
||||||
|
in part ** {
|
||||||
|
s = \\a => part.s ! a ++ (SyntaxFre.mkAdv (mkPrep "par") (lin NP np)).s
|
||||||
|
} ;
|
||||||
|
|
||||||
PositAdVAdj a = {s = a.s ! Posit ! AA} ;
|
PositAdVAdj a = {s = a.s ! Posit ! AA} ;
|
||||||
|
|
||||||
|
|||||||
@@ -78,22 +78,46 @@ lin
|
|||||||
isPre = True
|
isPre = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
GerundN v = { -- parsing
|
GerundNP vp = { -- infinitive: Bier zu trinken
|
||||||
s = \\n,c => v.s ! VInf False ; --- formalisieren, not formalisierung
|
s = \\c => (prepC c).s ++ useInfVP False vp ;
|
||||||
g = Neutr
|
a = Ag Neutr Sg P3 ;
|
||||||
} ;
|
isPron = False
|
||||||
|
} ;
|
||||||
|
|
||||||
|
GerundAdv vp = { -- Bier trinkend
|
||||||
|
s = (vp.nn ! agrP3 Sg).p1 ++ (vp.nn ! agrP3 Sg).p2 ++ vp.a2 ++ vp.inf ++ vp.ext ++ vp.infExt ++ vp.s.s ! VPresPart APred
|
||||||
|
} ;
|
||||||
|
|
||||||
|
WithoutVP vp = { -- ohne Bier zu trinken
|
||||||
|
s = "ohne" ++ useInfVP False vp
|
||||||
|
} ;
|
||||||
|
|
||||||
|
InOrderToVP vp = { -- um Bier zu trinken
|
||||||
|
s = "um" ++ useInfVP False vp
|
||||||
|
} ;
|
||||||
|
|
||||||
|
ByVP vp = { ---- durch Bier zu drinken
|
||||||
|
s = "durch" ++ useInfVP False vp ----
|
||||||
|
} ;
|
||||||
|
|
||||||
|
PresPartAP vp = {
|
||||||
|
s = \\af => (vp.nn ! agrP3 Sg).p1 ++ (vp.nn ! agrP3 Sg).p2 ++ vp.a2 ++ vp.inf ++ vp.ext ++ vp.infExt ++ vp.s.s ! VPresPart af ;
|
||||||
|
isPre = True
|
||||||
|
} ;
|
||||||
|
|
||||||
|
PastPartAP vp = {
|
||||||
|
s = \\af => (vp.nn ! agrP3 Sg).p1 ++ (vp.nn ! agrP3 Sg).p2 ++ vp.a2 ++ vp.inf ++ vp.ext ++ vp.infExt ++ vp.s.s ! VPastPart af ;
|
||||||
|
isPre = True
|
||||||
|
} ;
|
||||||
|
|
||||||
|
PastPartAgentAP vp np =
|
||||||
|
let agent = (SyntaxGer.mkAdv von_Prep (lin NP np)).s
|
||||||
|
in {
|
||||||
|
s = \\af => (vp.nn ! agrP3 Sg).p1 ++ (vp.nn ! agrP3 Sg).p2 ++ vp.a2 ++ agent ++ vp.inf ++ vp.ext ++ vp.infExt ++ vp.s.s ! VPastPart af ;
|
||||||
|
isPre = True
|
||||||
|
} ;
|
||||||
|
|
||||||
{-
|
{-
|
||||||
GerundAP v = { -- beckoning
|
|
||||||
s = \\agr => v.s ! VPresPart ;
|
|
||||||
isPre = True
|
|
||||||
} ;
|
|
||||||
|
|
||||||
PastPartAP v = { -- broken
|
|
||||||
s = \\agr => v.s ! VPPart ;
|
|
||||||
isPre = True
|
|
||||||
} ;
|
|
||||||
|
|
||||||
OrdCompar a = {s = \\c => a.s ! AAdj Compar c } ; -- higher
|
OrdCompar a = {s = \\c => a.s ! AAdj Compar c } ; -- higher
|
||||||
|
|
||||||
PositAdVAdj a = {s = a.s ! AAdv} ; -- really
|
PositAdVAdj a = {s = a.s ! AAdv} ; -- really
|
||||||
|
|||||||
@@ -58,31 +58,43 @@ lin
|
|||||||
isPre = False
|
isPre = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- infVP : VP -> Agr -> Str = \vp,agr ->
|
GerundNP vp =
|
||||||
|
let a = agrP3 Masc Sg ---- agr
|
||||||
|
in
|
||||||
|
heavyNP {s = \\c => prepCase c ++ infVP vp a ; a = a} ; -- parlare tedesco non è facile
|
||||||
|
|
||||||
{-
|
GerundAdv vp =
|
||||||
GerundN v = {
|
let a = agrP3 Masc Sg
|
||||||
s = \\n,c => v.s ! VPresPart ;
|
in
|
||||||
g = Neutr
|
{s = gerVP vp a} ; -- dormendo
|
||||||
} ;
|
|
||||||
|
|
||||||
GerundAP v = {
|
|
||||||
s = \\agr => v.s ! VPresPart ;
|
|
||||||
isPre = True
|
|
||||||
} ;
|
|
||||||
-- }
|
|
||||||
|
|
||||||
PastPartAP v = {
|
WithoutVP vp = SyntaxIta.mkAdv without_Prep (lin NP (GerundNP (lin VP vp))) ; -- senza dormire
|
||||||
|
|
||||||
|
InOrderToVP vp = SyntaxIta.mkAdv for_Prep (lin NP (GerundNP (lin VP vp))) ; -- per dormire
|
||||||
|
|
||||||
|
ByVP vp = GerundAdv (lin VP vp) ;
|
||||||
|
|
||||||
|
PresPartAP vp = {
|
||||||
s = table {
|
s = table {
|
||||||
AF g n => v.s ! VPart g n ;
|
AF g n => nominalVP VPresPart True vp (agrP3 g n) ;
|
||||||
_ => v.s ! VPart Masc Sg ---- the adverb form
|
_ => nominalVP VPresPart True vp (agrP3 Masc Sg) ---- the adverb form
|
||||||
} ;
|
} ;
|
||||||
isPre = True
|
isPre = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
--{-
|
PastPartAP vp = {
|
||||||
OrdCompar a = {s = \\c => a.s ! AAdj Compar c } ;
|
s = table {
|
||||||
-}
|
AF g n => nominalVP (VPart g n) True vp (agrP3 g n) ;
|
||||||
|
_ => nominalVP (VPart Masc Sg) True vp (agrP3 Masc Sg) ---- the adverb form
|
||||||
|
} ;
|
||||||
|
isPre = False
|
||||||
|
} ;
|
||||||
|
|
||||||
|
PastPartAgentAP vp np =
|
||||||
|
let part = PastPartAP (lin VP vp)
|
||||||
|
in part ** {
|
||||||
|
s = \\a => part.s ! a ++ (SyntaxIta.mkAdv da_Prep (lin NP np)).s
|
||||||
|
} ;
|
||||||
|
|
||||||
PositAdVAdj a = {s = a.s ! Posit ! AA} ;
|
PositAdVAdj a = {s = a.s ! Posit ! AA} ;
|
||||||
|
|
||||||
|
|||||||
@@ -58,29 +58,44 @@ lin
|
|||||||
isPre = False
|
isPre = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
{-
|
|
||||||
GerundN v = {
|
|
||||||
s = \\n,c => v.s ! VPresPart ;
|
|
||||||
g = Neutr
|
|
||||||
} ;
|
|
||||||
|
|
||||||
GerundAP v = {
|
|
||||||
s = \\agr => v.s ! VPresPart ;
|
|
||||||
isPre = True
|
|
||||||
} ;
|
|
||||||
-- }
|
|
||||||
|
|
||||||
PastPartAP v = {
|
GerundNP vp =
|
||||||
|
let a = agrP3 Masc Sg ---- agr
|
||||||
|
in
|
||||||
|
heavyNP {s = \\c => prepCase c ++ infVP vp a ; a = a} ; -- parlare tedesco non è facile
|
||||||
|
|
||||||
|
GerundAdv vp =
|
||||||
|
let a = agrP3 Masc Sg
|
||||||
|
in
|
||||||
|
{s = gerVP vp a} ; -- dormendo
|
||||||
|
|
||||||
|
WithoutVP vp = SyntaxSpa.mkAdv without_Prep (lin NP (GerundNP (lin VP vp))) ; -- senza dormire
|
||||||
|
|
||||||
|
InOrderToVP vp = SyntaxSpa.mkAdv for_Prep (lin NP (GerundNP (lin VP vp))) ; -- per dormire
|
||||||
|
|
||||||
|
ByVP vp = GerundAdv (lin VP vp) ;
|
||||||
|
|
||||||
|
PresPartAP vp = {
|
||||||
s = table {
|
s = table {
|
||||||
AF g n => v.s ! VPart g n ;
|
AF g n => nominalVP VPresPart True vp (agrP3 g n) ;
|
||||||
_ => v.s ! VPart Masc Sg ---- the adverb form
|
_ => nominalVP VPresPart True vp (agrP3 Masc Sg) ---- the adverb form
|
||||||
} ;
|
} ;
|
||||||
isPre = True
|
isPre = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
--{-
|
PastPartAP vp = {
|
||||||
OrdCompar a = {s = \\c => a.s ! AAdj Compar c } ;
|
s = table {
|
||||||
-}
|
AF g n => nominalVP (VPart g n) True vp (agrP3 g n) ;
|
||||||
|
_ => nominalVP (VPart Masc Sg) True vp (agrP3 Masc Sg) ---- the adverb form
|
||||||
|
} ;
|
||||||
|
isPre = False
|
||||||
|
} ;
|
||||||
|
|
||||||
|
PastPartAgentAP vp np =
|
||||||
|
let part = PastPartAP (lin VP vp)
|
||||||
|
in part ** {
|
||||||
|
s = \\a => part.s ! a ++ (SyntaxSpa.mkAdv (mkPrep "por") (lin NP np)).s
|
||||||
|
} ;
|
||||||
|
|
||||||
PositAdVAdj a = {s = a.s ! Posit ! AA} ;
|
PositAdVAdj a = {s = a.s ! Posit ! AA} ;
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,11 @@ concrete TranslateFre of Translate =
|
|||||||
DocumentationFre,
|
DocumentationFre,
|
||||||
|
|
||||||
ChunkFre,
|
ChunkFre,
|
||||||
ExtensionsFre [CompoundN,AdAdV,UttAdV,ApposNP,MkVPI, MkVPS, PredVPS, PassVPSlash, PassAgentVPSlash, CompoundAP],
|
ExtensionsFre [
|
||||||
|
CompoundN,AdAdV,UttAdV,ApposNP,MkVPI, MkVPS, PredVPS, PassVPSlash, PassAgentVPSlash, CompoundAP
|
||||||
|
, PastPartAP, PastPartAgentAP, PresPartAP, GerundNP, GerundAdv
|
||||||
|
, WithoutVP, InOrderToVP, ByVP
|
||||||
|
],
|
||||||
|
|
||||||
DictionaryFre **
|
DictionaryFre **
|
||||||
open PhonoFre, MorphoFre, ResFre, CommonRomance, ParadigmsFre, SyntaxFre, Prelude, (G = GrammarFre) in {
|
open PhonoFre, MorphoFre, ResFre, CommonRomance, ParadigmsFre, SyntaxFre, Prelude, (G = GrammarFre) in {
|
||||||
|
|||||||
@@ -23,8 +23,11 @@ concrete TranslateGer of Translate =
|
|||||||
DocumentationGer,
|
DocumentationGer,
|
||||||
|
|
||||||
ChunkGer,
|
ChunkGer,
|
||||||
ExtensionsGer [CompoundN,AdAdV,UttAdV,ApposNP,MkVPI, MkVPS, PredVPS, PassVPSlash, PassAgentVPSlash, CompoundAP,
|
ExtensionsGer [
|
||||||
DirectComplVS, DirectComplVQ, FocusObjS],
|
CompoundN,AdAdV,UttAdV,ApposNP,MkVPI, MkVPS, PredVPS, PassVPSlash, PassAgentVPSlash, CompoundAP
|
||||||
|
, PastPartAP, PastPartAgentAP, PresPartAP, GerundNP, GerundAdv
|
||||||
|
, WithoutVP, InOrderToVP, ByVP
|
||||||
|
],
|
||||||
|
|
||||||
DictionaryGer **
|
DictionaryGer **
|
||||||
open MorphoGer, ResGer, ParadigmsGer, SyntaxGer, CommonScand, (E = ExtraGer), Prelude in {
|
open MorphoGer, ResGer, ParadigmsGer, SyntaxGer, CommonScand, (E = ExtraGer), Prelude in {
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ concrete TranslateIta of Translate =
|
|||||||
ExtensionsIta [
|
ExtensionsIta [
|
||||||
CompoundN,AdAdV,UttAdV,ApposNP,MkVPI, MkVPS, PredVPS, PassVPSlash, PassAgentVPSlash, CompoundAP
|
CompoundN,AdAdV,UttAdV,ApposNP,MkVPI, MkVPS, PredVPS, PassVPSlash, PassAgentVPSlash, CompoundAP
|
||||||
, PastPartAP, PastPartAgentAP, PresPartAP, GerundNP, GerundAdv
|
, PastPartAP, PastPartAgentAP, PresPartAP, GerundNP, GerundAdv
|
||||||
---- , WithoutVP, InOrderToVP, ByVP
|
, WithoutVP, InOrderToVP, ByVP
|
||||||
],
|
],
|
||||||
|
|
||||||
DictionaryIta **
|
DictionaryIta **
|
||||||
|
|||||||
@@ -25,7 +25,11 @@ concrete TranslateSpa of Translate =
|
|||||||
DocumentationSpa,
|
DocumentationSpa,
|
||||||
|
|
||||||
ChunkSpa,
|
ChunkSpa,
|
||||||
ExtensionsSpa [CompoundN,AdAdV,UttAdV,ApposNP,MkVPI, MkVPS, PredVPS, PassVPSlash, PassAgentVPSlash, CompoundAP],
|
ExtensionsSpa [
|
||||||
|
CompoundN,AdAdV,UttAdV,ApposNP,MkVPI, MkVPS, PredVPS, PassVPSlash, PassAgentVPSlash, CompoundAP
|
||||||
|
, PastPartAP, PastPartAgentAP, PresPartAP, GerundNP, GerundAdv
|
||||||
|
, WithoutVP, InOrderToVP, ByVP
|
||||||
|
],
|
||||||
|
|
||||||
DictionarySpa **
|
DictionarySpa **
|
||||||
open MorphoSpa, ResSpa, ParadigmsSpa, SyntaxSpa, (E = ExtraSpa), (G = GrammarSpa), Prelude in {
|
open MorphoSpa, ResSpa, ParadigmsSpa, SyntaxSpa, (E = ExtraSpa), (G = GrammarSpa), Prelude in {
|
||||||
|
|||||||
Reference in New Issue
Block a user