diff --git a/lib/src/bulgarian/ParseEngBul.gf b/lib/src/bulgarian/ParseEngBul.gf index e9f977921..c9ef515ea 100644 --- a/lib/src/bulgarian/ParseEngBul.gf +++ b/lib/src/bulgarian/ParseEngBul.gf @@ -7,7 +7,7 @@ concrete ParseEngBul of ParseEngAbs = NumeralBul, SymbolBul [PN, Symb, MkSymb, SymbPN], ConjunctionBul, - VerbBul - [SlashV2V, PassV2, UseCopula], + VerbBul - [SlashV2V, PassV2, UseCopula, ComplVV], AdverbBul, PhraseBul, SentenceBul, @@ -75,6 +75,14 @@ lin daComplex ant.a p.p vp ! Perf ! agr) (slashV vv vv.c2) ; + ComplVV vv ant p vp = + insertObj (\\agr => ant.s ++ p.s ++ + case vv.typ of { + VVInf => daComplex ant.a p.p vp ! Perf ! agr; + VVGerund => gerund vp ! Imperf ! agr + }) + (predV vv) ; + PredVPosv np vp = { s = \\t,a,p,o => let diff --git a/lib/src/english/ParseEng.gf b/lib/src/english/ParseEng.gf index 6c200bf15..2f0cac16a 100644 --- a/lib/src/english/ParseEng.gf +++ b/lib/src/english/ParseEng.gf @@ -7,7 +7,7 @@ concrete ParseEng of ParseEngAbs = NumeralEng, SymbolEng [PN, Symb, MkSymb, SymbPN], ConjunctionEng, - VerbEng - [SlashV2V, PassV2, UseCopula], + VerbEng - [SlashV2V, PassV2, UseCopula, ComplVV], AdverbEng, PhraseEng, SentenceEng, @@ -74,6 +74,9 @@ lin v.c3 ++ vpi.s ! VVAux ! a) (predVc v) ; + ComplVV v a p vp = insertObj (\\agr => a.s ++ p.s ++ + infVP v.typ vp a.a p.p agr) + (predVV v) ; PredVPosv np vp = { s = \\t,a,b,o => diff --git a/lib/src/english/ParseEngAbs.gf b/lib/src/english/ParseEngAbs.gf index b99d07ef6..ef3a29644 100644 --- a/lib/src/english/ParseEngAbs.gf +++ b/lib/src/english/ParseEngAbs.gf @@ -6,7 +6,7 @@ abstract ParseEngAbs = Numeral, Symbol [PN, Symb, String, MkSymb, SymbPN], Conjunction, - Verb - [SlashV2V, PassV2, UseCopula], + Verb - [SlashV2V, PassV2, UseCopula, ComplVV], Adverb, Phrase, Sentence, @@ -45,6 +45,8 @@ fun CompoundCN : Num -> N -> CN -> CN ; SlashVPIV2V : V2V -> Pol -> VPI -> VPSlash ; SlashSlashV2V : V2V -> Ant -> Pol -> VPSlash -> VPSlash ; + + ComplVV : VV -> Ant -> Pol -> VP -> VP ; PredVPosv,PredVPovs : NP -> VP -> Cl ;