From 24b595c98faa87a54130aca54f1e09fee23df929 Mon Sep 17 00:00:00 2001 From: aarne Date: Tue, 31 May 2005 17:42:39 +0000 Subject: [PATCH] upgraded resources, esp. romance --- lib/resource/abstract/ClauseI.gf | 21 +++++ lib/resource/abstract/Rules.gf | 6 +- lib/resource/english/RulesEng.gf | 2 +- lib/resource/french/ClauseFre.gf | 1 - lib/resource/french/SyntaxFre.gf | 5 ++ lib/resource/french/TypesFre.gf | 3 +- lib/resource/italian/SyntaxIta.gf | 8 +- lib/resource/italian/TypesIta.gf | 3 +- lib/resource/romance/ClauseRomance.gf | 108 ++++++++++++++++++----- lib/resource/romance/RulesRomance.gf | 6 ++ lib/resource/romance/SyntaxRomance.gf | 30 ++++--- lib/resource/romance/TypesRomance.gf | 1 + lib/resource/scandinavian/ClauseScand.gf | 5 +- lib/resource/scandinavian/RulesScand.gf | 3 + lib/resource/spanish/SyntaxSpa.gf | 8 +- lib/resource/spanish/TypesSpa.gf | 3 +- lib/resource/swedish/ClauseSwe.gf | 1 - 17 files changed, 167 insertions(+), 47 deletions(-) diff --git a/lib/resource/abstract/ClauseI.gf b/lib/resource/abstract/ClauseI.gf index d769660ba..e5b5d1702 100644 --- a/lib/resource/abstract/ClauseI.gf +++ b/lib/resource/abstract/ClauseI.gf @@ -31,6 +31,7 @@ incomplete concrete ClauseI of Clause = open Rules, Verbphrase in { QPredV np v = IntVP np (UseV v) ; QPredPassV np v = IntVP np (UsePassV v) ; QPredV2 np v x = IntVP np (ComplV2 v x) ; + QPredV3 np v x y = IntVP np (ComplV3 v x y) ; QPredReflV2 np v = IntVP np (ComplReflV2 v) ; QPredVS np v x = IntVP np (ComplVS v x) ; QPredVV np v x = IntVP np (ComplVV v x) ; @@ -47,9 +48,29 @@ incomplete concrete ClauseI of Clause = open Rules, Verbphrase in { QPredNP np v = IntVP np (PredNP v) ; QPredAdv np v = IntVP np (PredAdv v) ; + QPredProgVP np vp = IntVP np (PredProgVP vp) ; + IPredV a v = PosVP a (UseV v) ; IPredV2 a v x = PosVP a (ComplV2 v x) ; + IPredPassV a v = PosVP a (UsePassV v) ; + IPredV3 a v x y = PosVP a (ComplV3 v x y) ; + IPredReflV2 a v = PosVP a (ComplReflV2 v) ; + IPredVS a v x = PosVP a (ComplVS v x) ; + IPredVV a v x = PosVP a (ComplVV v x) ; + IPredVQ a v x = PosVP a (ComplVQ v x) ; + IPredVA a v x = PosVP a (ComplVA v x) ; + IPredV2A a v x y = PosVP a (ComplV2A v x y) ; + IPredSubjV2V a v x y = PosVP a (ComplSubjV2V v x y) ; + IPredObjV2V a v x y = PosVP a (ComplObjV2V v x y) ; + IPredV2S a v x y = PosVP a (ComplV2S v x y) ; + IPredV2Q a v x y = PosVP a (ComplV2Q v x y) ; + IPredAP a v = PosVP a (PredAP v) ; + IPredCN a v = PosVP a (PredCN v) ; + IPredNP a v = PosVP a (PredNP v) ; + IPredAdv a v = PosVP a (PredAdv v) ; + + IPredProgVP a vp = PosVP a (PredProgVP vp) ; {- -- Use VPs diff --git a/lib/resource/abstract/Rules.gf b/lib/resource/abstract/Rules.gf index cd12423dc..0d905fc6f 100644 --- a/lib/resource/abstract/Rules.gf +++ b/lib/resource/abstract/Rules.gf @@ -110,8 +110,8 @@ fun AdvPP : PP -> Adv ; -- "in London", "after the war" PrepNP : Prep -> NP -> PP ; -- "in London", "after the war" - AdvCN : CN -> PP -> CN ; -- "house in London" - AdvPN : PN -> PP -> NP ; -- "x to the power of k" + AdvCN : CN -> Adv -> CN ; -- "house in London" + AdvNP : NP -> Adv -> NP ; -- "the house in London" AdvAP : AdA -> AP -> AP ; -- "very good" AdvAdv : AdA -> Adv -> Adv ; -- "very well" @@ -148,7 +148,7 @@ fun QuestPhrase : QS -> Phr ; -- "Do I walk?" ImperOne, ImperMany : Imp -> Phr ; -- "Be a man!", "Be men!" - AdvCl : Cl -> Adv -> Cl ; -- "John walks in the park" + AdvCl : Cl -> Adv -> Cl ; -- "John walks in the park" AdvVPI : VPI -> Adv -> VPI ; -- "walk in the park" AdCPhr : AdC -> S -> Phr ; -- "Therefore, 2 is prime." AdvPhr : Adv -> S -> Phr ; -- "In India, there are tigers." diff --git a/lib/resource/english/RulesEng.gf b/lib/resource/english/RulesEng.gf index 025da26b7..026b571e7 100644 --- a/lib/resource/english/RulesEng.gf +++ b/lib/resource/english/RulesEng.gf @@ -111,7 +111,7 @@ lin AdvCN = advCommNounPhrase ; AdvAP = advAdjPhrase ; AdvAdv = cc2 ; - AdvPN pn pp = nameNounPhrase {s = \\c => pn.s ! c ++ pp.s ; g = pn.g} ; + AdvNP pn pp = {s = \\c => pn.s ! c ++ pp.s ; a = pn.a} ; --3 Sentences and relative clauses -- diff --git a/lib/resource/french/ClauseFre.gf b/lib/resource/french/ClauseFre.gf index 5c9b6f7d0..2da11ad40 100644 --- a/lib/resource/french/ClauseFre.gf +++ b/lib/resource/french/ClauseFre.gf @@ -1,5 +1,4 @@ --# -path=.:../romance:../abstract:../../prelude concrete ClauseFre of Clause = CategoriesFre ** ----- ClauseI with (Rules=RulesFre), (Verbphrase=VerbphraseFre) ; ClauseRomance with (SyntaxRomance=SyntaxFre) ; diff --git a/lib/resource/french/SyntaxFre.gf b/lib/resource/french/SyntaxFre.gf index feeb138d1..abff082f4 100644 --- a/lib/resource/french/SyntaxFre.gf +++ b/lib/resource/french/SyntaxFre.gf @@ -330,4 +330,9 @@ oper negNe = elisNe ; negPas = "pas" ; + progressiveSats subj vp = + mkSatsCopula subj + (["en train"] ++ elisDe ++ + vp.s ! VIInfinit ! (pgen2gen subj.g) ! subj.n ! subj.p) ; + } diff --git a/lib/resource/french/TypesFre.gf b/lib/resource/french/TypesFre.gf index e422b7184..dc50e505f 100644 --- a/lib/resource/french/TypesFre.gf +++ b/lib/resource/french/TypesFre.gf @@ -153,7 +153,8 @@ oper VFin VFut n p => aller ! Indic Futur n p ; VFin VCondit n p => aller ! Cond n p ; 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 } ; -- The full conjunction is a table on $VForm$: diff --git a/lib/resource/italian/SyntaxIta.gf b/lib/resource/italian/SyntaxIta.gf index 3053b1151..7591de11b 100644 --- a/lib/resource/italian/SyntaxIta.gf +++ b/lib/resource/italian/SyntaxIta.gf @@ -1,7 +1,7 @@ --# -path=.:../romance:../../prelude instance SyntaxIta of SyntaxRomance = - TypesIta ** open Prelude, (CO=Coordination), MorphoIta in { + TypesIta ** open Prelude, (CO=Coordination), MorphoIta, BeschIta in { flags optimize=all ; @@ -275,4 +275,10 @@ oper negNe = "non" ; negPas = [] ; + progressiveSats subj vp = + mkSatsObject subj + (mkTransVerbDir (verbPres (stare_16 "stare") AEsse)) --- hack to reuse + (nameNounPhrase (mkProperName ( --- this function + vp.s ! VIGerund ! (pgen2gen subj.g) ! subj.n ! subj.p) Masc)) ; + } diff --git a/lib/resource/italian/TypesIta.gf b/lib/resource/italian/TypesIta.gf index 0b334ad56..714fd21f9 100644 --- a/lib/resource/italian/TypesIta.gf +++ b/lib/resource/italian/TypesIta.gf @@ -121,7 +121,8 @@ oper VFin VFut n p => amare.s ! Fut n p ; VFin VCondit n p => amare.s ! Cond n p ; 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 } ; aux = a } ; diff --git a/lib/resource/romance/ClauseRomance.gf b/lib/resource/romance/ClauseRomance.gf index d7c765ce2..63744cd64 100644 --- a/lib/resource/romance/ClauseRomance.gf +++ b/lib/resource/romance/ClauseRomance.gf @@ -14,7 +14,6 @@ incomplete concrete ClauseRomance of Clause = CategoriesRomance ** sats2clause (mkSatsObject np v y) ; SPredV3 subj verb obj1 obj2 = sats2clause (insertObject (mkSatsObject subj verb obj1) verb.c3 verb.s3 obj2) ; - SPredReflV2 subj verb = sats2clause ( mkSatsObject subj @@ -22,7 +21,6 @@ incomplete concrete ClauseRomance of Clause = CategoriesRomance ** ---- {s = verb.s ; s2 = verb.s2 ; c = verb.c ; aux = AEsse} ---- this produces huge cf - find out why! AR 16/3/2005 (reflPronNounPhrase (pgen2gen subj.g) subj.n subj.p)) ; - SPredVS subj verb sent = sats2clause ( insertExtrapos (mkSats subj verb) @@ -49,7 +47,6 @@ incomplete concrete ClauseRomance of Clause = CategoriesRomance ** insertExtrapos (mkSatsObject subj verb obj) (\\_ => adj.s ! AF (pgen2gen obj.g) obj.n)) ; - SPredVV subj verb vp = sats2clause ( insertExtrapos @@ -70,7 +67,7 @@ incomplete concrete ClauseRomance of Clause = CategoriesRomance ** (\\_ => prepCase verb.c ++ vp.s ! VIInfinit ! pgen2gen subj.g ! subj.n ! subj.p) ) ; --- SPredProgVP + SPredProgVP np vp = sats2clause (progressiveSats np vp) ; SPredAP subj adj = @@ -86,22 +83,19 @@ incomplete concrete ClauseRomance of Clause = CategoriesRomance ** QPredV np v = sats2quest (mkSats (intNounPhrase np) v) ; - QPredPassV subj v = sats2quest (mkSatsCopula (intNounPhrase subj) (v.s ! VPart subj.g subj.n)) ; QPredV2 np v y = sats2quest (mkSatsObject (intNounPhrase np) v y) ; --- QPredV3 subj verb obj1 obj2 = --- sats2quest (insertObject (mkSatsObject (intNounPhrase subj) verb obj1) verb.c3 verb.s3 obj2) ; - + QPredV3 subj verb obj1 obj2 = + sats2quest ( + insertObject (mkSatsObject (intNounPhrase subj) verb obj1) verb.c3 verb.s3 obj2 + ) ; QPredReflV2 subj verb = sats2quest ( mkSatsObject (intNounPhrase subj) {s = verb.s ; s2 = [] ; c = accusative ; aux = AEsse} - ---- {s = verb.s ; s2 = verb.s2 ; c = verb.c ; aux = AEsse} - ---- this produces huge cf - find out why! AR 16/3/2005 (reflPronNounPhrase subj.g subj.n P3)) ; - QPredVS subj verb sent = sats2quest ( insertExtrapos (mkSats (intNounPhrase subj) verb) @@ -122,21 +116,20 @@ incomplete concrete ClauseRomance of Clause = CategoriesRomance ** (\\_ => quest.s ! IndirQ)) ; QPredVA subj verb adj = sats2quest ( - insertExtrapos (mkSats (intNounPhrase subj) verb) (\\_ => adj.s ! AF subj.g subj.n)) ; - + insertExtrapos (mkSats (intNounPhrase subj) verb) + (\\_ => adj.s ! AF subj.g subj.n)) ; QPredV2A subj verb obj adj = sats2quest ( insertExtrapos (mkSatsObject (intNounPhrase subj) verb obj) (\\_ => adj.s ! AF (pgen2gen obj.g) obj.n)) ; - QPredVV subj verb vp = sats2quest ( insertExtrapos (mkSats (intNounPhrase subj) verb) - (\\_ => prepCase verb.c ++ vp.s ! VIInfinit ! subj.g ! (intNounPhrase subj).n ! P3) + (\\_ => prepCase verb.c ++ + vp.s ! VIInfinit ! subj.g ! (intNounPhrase subj).n ! P3) ) ; - QPredObjV2V subj verb obj vp = sats2quest ( insertExtrapos @@ -161,14 +154,83 @@ incomplete concrete ClauseRomance of Clause = CategoriesRomance ** QPredAdv subj adv = sats2quest (mkSatsCopula (intNounPhrase subj) adv.s) ; ------ anteriority _ ; gender and number of Adj + QPredProgVP np vp = sats2quest (progressiveSats (intNounPhrase np) vp) ; - IPredV _ v = - sats2verbPhrase (mkSats pronImpers v) ; - IPredV2 _ v y = - sats2verbPhrase (mkSatsObject pronImpers v y) ; - IPredAP _ adj = - sats2verbPhrase (mkSatsCopula pronImpers (adj.s ! AF Masc Sg)) ; + +----- gender and number of Adj + + IPredV a v = + sats2verbPhrase a (mkSats pronImpers v) ; + IPredV2 a v y = + sats2verbPhrase a (mkSatsObject pronImpers v y) ; + IPredAP a adj = + sats2verbPhrase a (mkSatsCopula pronImpers (adj.s ! AF Masc Sg)) ; + IPredPassV a v = + sats2verbPhrase a (mkSatsCopula pronImpers (v.s ! VPart (pgen2gen pronImpers.g) pronImpers.n)) ; + IPredV3 a verb obj1 obj2 = + sats2verbPhrase a (insertObject (mkSatsObject pronImpers verb obj1) verb.c3 verb.s3 obj2) ; + IPredReflV2 a verb = + sats2verbPhrase a ( + mkSatsObject pronImpers + {s = verb.s ; s2 = [] ; c = accusative ; aux = AEsse} + ---- {s = verb.s ; s2 = verb.s2 ; c = verb.c ; aux = AEsse} + ---- this produces huge cf - find out why! AR 16/3/2005 + (reflPronNounPhrase (pgen2gen pronImpers.g) pronImpers.n pronImpers.p)) ; + IPredVS a verb sent = + sats2verbPhrase a ( + insertExtrapos (mkSats pronImpers verb) + (\\b => embedConj ++ sent.s ! subordMode verb b)) ; ---- mn + IPredVQ a verb quest = + sats2verbPhrase a ( + insertExtrapos (mkSats pronImpers verb) (\\_ => quest.s ! IndirQ)) ; + IPredV2S a verb obj sent = + sats2verbPhrase a ( + insertExtrapos + (mkSatsObject pronImpers verb obj) + (\\b => embedConj ++ sent.s ! subordMode verb b) + ) ; ---- mn ; + IPredV2Q a verb obj quest = + sats2verbPhrase a ( + insertExtrapos + (mkSatsObject pronImpers verb obj) + (\\_ => quest.s ! IndirQ)) ; + IPredVA a verb adj = + sats2verbPhrase a ( + insertExtrapos (mkSats pronImpers verb) (\\_ => adj.s ! AF (pgen2gen pronImpers.g) pronImpers.n)) ; + IPredV2A a verb obj adj = + sats2verbPhrase a ( + insertExtrapos + (mkSatsObject pronImpers verb obj) + (\\_ => adj.s ! AF (pgen2gen obj.g) obj.n)) ; + IPredVV a verb vp = + sats2verbPhrase a ( + insertExtrapos + (mkSats pronImpers verb) + (\\_ => prepCase verb.c ++ vp.s ! VIInfinit ! pgen2gen pronImpers.g ! pronImpers.n ! pronImpers.p) + ) ; + + IPredObjV2V a verb obj vp = + sats2verbPhrase a ( + insertExtrapos + (mkSatsObject pronImpers verb obj) + (\\_ => prepCase verb.c ++ vp.s ! VIInfinit ! pgen2gen obj.g ! obj.n ! obj.p) + ) ; + IPredSubjV2V a verb obj vp = + sats2verbPhrase a ( + insertExtrapos + (mkSatsObject pronImpers verb obj) + (\\_ => prepCase verb.c ++ vp.s ! VIInfinit ! pgen2gen pronImpers.g ! pronImpers.n ! pronImpers.p) + ) ; + + + IPredCN a cn = + sats2verbPhrase a (mkSatsCopula pronImpers (indefNoun pronImpers.n cn)) ; + IPredNP a np = + sats2verbPhrase a (mkSatsCopula pronImpers (np.s ! stressed nominative)) ; + IPredAdv a adv = + sats2verbPhrase a (mkSatsCopula pronImpers adv.s) ; + + IPredProgVP a vp = sats2verbPhrase a (progressiveSats pronImpers vp) ; diff --git a/lib/resource/romance/RulesRomance.gf b/lib/resource/romance/RulesRomance.gf index 886cf4b20..190e5bcee 100644 --- a/lib/resource/romance/RulesRomance.gf +++ b/lib/resource/romance/RulesRomance.gf @@ -96,6 +96,11 @@ lin AdvAP = advAdjPhrase ; AdvAdv = cc2 ; +--- Here the $np$ should become always stressed. + + AdvNP np adv = ** + {s = \\f => np.s ! f ++ adv.s ; c = Clit0} ; + --3 Sentences and relative clauses -- @@ -162,6 +167,7 @@ lin SubjImper = subjunctImperative ; SubjQS = subjunctQuestion ; ----- SubjVP = subjunctVerbPhrase ; + AdvSubj if A = {s = if.s ++ A.s ! if.m} ; PhrNP = useNounPhrase ; PhrOneCN = useCommonNounPhrase singular ; diff --git a/lib/resource/romance/SyntaxRomance.gf b/lib/resource/romance/SyntaxRomance.gf index b0f24cad3..ee825b75b 100644 --- a/lib/resource/romance/SyntaxRomance.gf +++ b/lib/resource/romance/SyntaxRomance.gf @@ -430,7 +430,7 @@ oper param VPForm = VPF Anteriority VF ; Anteriority = Simul | Anter ; - VIForm = VIInfinit | VIImperat Bool Number ; ---- | VIGerund ; + VIForm = VIInfinit | VIImperat Bool Number | VIGerund ; oper VerbPhrase = {s : VIForm => Gender => Number => Person => Str} ; @@ -1304,7 +1304,7 @@ oper je ++ ne ++ lui ++ ai ++ toujours ++ pas ++ dit ++ directement ++ oui } ; -negNe, negPas : Str ; + negNe, negPas : Str ; sats2quest : Sats -> Question = \x -> @@ -1312,12 +1312,12 @@ negNe, negPas : Str ; in {s = \\b,f,_ => cl.s ! b ! f} ; - sats2verbPhrase : Sats -> VerbPhrase = - \sats -> {s = \\vi,g,n,p => ---- b,cf => + sats2verbPhrase : {s : Str ; a : Anteriority} -> Sats -> VerbPhrase = + \ant,sats -> {s = \\vi,g,n,p => ---- b,cf => let b = True ; ---- lui = sats.s3 ; - dire = verbVIForm {s = sats.s4 ; aux = sats.aux} + dire = verbVIForm {s = sats.s4 ; aux = sats.aux} ant.a vi g n p sats.g2 sats.n2 ; ai = dire.p1 ; dit = dire.p2 ; @@ -1328,23 +1328,31 @@ negNe, negPas : Str ; oui = sats.s7 ! b in ne ++ lui ++ ai ++ toujours ++ pas ++ dit ++ directement ++ oui + ++ ant.s --- always [] ; hack to avoid ? in parsing } ; ---- What happens to polarity and anteriority ? verbVIForm : - Verb -> VIForm -> Gender -> Number -> Person -> Gender -> Number -> (Str * Str) = - \verb,cl,g,n,p,g2,n2 -> + Verb -> Anteriority -> + VIForm -> Gender -> Number -> Person -> Gender -> Number -> (Str * Str) = + \verb,ant,cl,g,n,p,g2,n2 -> let - aime : Number -> Str = \t -> verb.s ! vImper n P2 ; - aimer = verb.s ! VInfin + aime : Number -> Str = \t -> verb.s ! vImper t P2 ; + aimee = case ant of {Simul => [] ; _ => verb.s ! VPart Masc Sg} ; ---- g n + finverb = case ant of {Simul => verb.s ; _ => (auxVerb verb).s} ; + aimer = finverb ! VInfin ; + aimant = finverb ! VGer in case cl of { - VIImperat _ n => ; - VlInfinit => + VIImperat _ n => ; -- no imperative perfect + VIGerund => ; + VIInfinit => } ; predVerb0 : Verb -> Clause = \rain -> sats2clause (mkSats (pronNounPhrase pronImpers) rain) ; +progressiveSats : NounPhrase -> VerbPhrase -> Sats ; + } diff --git a/lib/resource/romance/TypesRomance.gf b/lib/resource/romance/TypesRomance.gf index dfaa8d9cc..8bc5689e1 100644 --- a/lib/resource/romance/TypesRomance.gf +++ b/lib/resource/romance/TypesRomance.gf @@ -158,6 +158,7 @@ param | VFin TMode Number Person | VImper NumPersI | VPart Gender Number + | VGer ; TMode = diff --git a/lib/resource/scandinavian/ClauseScand.gf b/lib/resource/scandinavian/ClauseScand.gf index fad26f724..8132c9b14 100644 --- a/lib/resource/scandinavian/ClauseScand.gf +++ b/lib/resource/scandinavian/ClauseScand.gf @@ -33,11 +33,11 @@ incomplete concrete ClauseScand of Clause = CategoriesScand ** 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) ; + QPredV3 np v x y = intVerbPhrase np (complDitransVerb v x y) ; 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) ; @@ -58,9 +58,10 @@ incomplete concrete ClauseScand of Clause = CategoriesScand ** QPredAV np v x = intVerbPhrase np (complVerbAdj v x) ; QPredObjA2V np v x y = intVerbPhrase np (complVerbAdj2 True v x y) ; + QPredProgVP np v = intVerbPhrase np (progressiveVerbPhrase v) ; + IPredV a v = predVerbGroupI True a (predVerb v) ; IPredV2 a v x = predVerbGroupI True a (complTransVerb v x) ; ----- SPredAP np v = predBeGroup np (\\_ => v.s ! AAdj) ; IPredAP a v = predVerbGroupI True a (predAdjective v) ; {- diff --git a/lib/resource/scandinavian/RulesScand.gf b/lib/resource/scandinavian/RulesScand.gf index 265ef5ac3..daa2b3c23 100644 --- a/lib/resource/scandinavian/RulesScand.gf +++ b/lib/resource/scandinavian/RulesScand.gf @@ -100,6 +100,8 @@ lin AdvCN = advCommNounPhrase ; AdvAP = advAdjPhrase ; AdvAdv = cc2 ; + AdvNP np adv = ** + {s = \\f => np.s ! f ++ adv.s} ; --3 Sentences and relative clauses -- @@ -167,6 +169,7 @@ lin SubjS = subjunctSentence ; SubjImper = subjunctImperative ; SubjQS = subjunctQuestion ; + AdvSubj if A = {s = if.s ++ A.s ! Sub} ; PhrNP = useNounPhrase ; PhrOneCN = useCommonNounPhrase singular ; diff --git a/lib/resource/spanish/SyntaxSpa.gf b/lib/resource/spanish/SyntaxSpa.gf index ecffc7873..6d8df8941 100644 --- a/lib/resource/spanish/SyntaxSpa.gf +++ b/lib/resource/spanish/SyntaxSpa.gf @@ -1,7 +1,7 @@ --# -path=.:../romance:../../prelude instance SyntaxSpa of SyntaxRomance = - TypesSpa ** open Prelude, (CO=Coordination), MorphoSpa in { + TypesSpa ** open Prelude, (CO=Coordination), MorphoSpa, BeschSpa in { oper nameNounPhrase = \jean -> normalNounPhrase @@ -358,5 +358,11 @@ oper negNe = "no" ; negPas = [] ; + progressiveSats subj vp = + mkSatsObject subj + (mkTransVerbDir (verbPres (estar_2 "estar") AHabere)) --- hack to reuse + (nameNounPhrase (mkProperName ( --- this function + vp.s ! VIGerund ! (pgen2gen subj.g) ! subj.n ! subj.p) Masc)) ; + } diff --git a/lib/resource/spanish/TypesSpa.gf b/lib/resource/spanish/TypesSpa.gf index f72eac447..c8a14b0a7 100644 --- a/lib/resource/spanish/TypesSpa.gf +++ b/lib/resource/spanish/TypesSpa.gf @@ -119,7 +119,8 @@ oper VImper SgP2 => amare.s ! VP (Imp Sg P2) ; VImper PlP1 => amare.s ! VP (Imp Pl P1) ; VImper PlP2 => amare.s ! VP (Imp Pl P2) ; - VPart g n => amare.s ! VP (Pass n g) + VPart g n => amare.s ! VP (Pass n g) ; + VGer => amare.s ! VI Ger } ; aux = a } ; diff --git a/lib/resource/swedish/ClauseSwe.gf b/lib/resource/swedish/ClauseSwe.gf index 806308cd0..28f535dae 100644 --- a/lib/resource/swedish/ClauseSwe.gf +++ b/lib/resource/swedish/ClauseSwe.gf @@ -2,4 +2,3 @@ concrete ClauseSwe of Clause = CategoriesSwe ** ClauseI with (Rules=RulesSwe), (Verbphrase=VerbphraseSwe) ; ----- ClauseScand with (SyntaxScand=SyntaxSwe) ;