diff --git a/lib/resource-1.0/log.txt b/lib/resource-1.0/log.txt new file mode 100644 index 000000000..3ad807ea9 --- /dev/null +++ b/lib/resource-1.0/log.txt @@ -0,0 +1,36 @@ +11/5/2006 + +LangFre + +373m, 55s, RelativeFre.gfc 43k + +Just ag in RelVP: + +120m, 40s, 38k + +agr,bool instead of ragr: + +319m, 52s, 42k + +move outside table the case of bool: + +221m , 45s, 50k + +move outside whole record + +213m, 46s, 49k CHOSEN 11/5 + +let-defined ag -> ag outside record + +275m, 52s, 42m + +let-defined ag outermost in branch + +284m, 51s, 44m + +ragr, outside record + +487m, 62s, 76m + + +UseRCl TFut ASimul PPos (RelSlash IdRP (AdvSlash (SlashPrep (GenericCl (ComplV2A paint_V2A (UsePN paris_PN) (PositA full_A))) before_Prep) everywhere_Adv)) \ No newline at end of file diff --git a/lib/resource-1.0/romance/CatRomance.gf b/lib/resource-1.0/romance/CatRomance.gf index de836e457..4fb240e2f 100644 --- a/lib/resource-1.0/romance/CatRomance.gf +++ b/lib/resource-1.0/romance/CatRomance.gf @@ -32,7 +32,7 @@ incomplete concrete CatRomance of Cat = -- Relative RCl = {s : Agr => Tense => Anteriority => Polarity => Mood => Str} ; - RP = {s : Bool => AAgr => Case => Str ; a : RAgr} ; + RP = {s : Bool => AAgr => Case => Str ; a : AAgr ; hasAgr : Bool} ; -- Verb diff --git a/lib/resource-1.0/romance/RelativeRomance.gf b/lib/resource-1.0/romance/RelativeRomance.gf index e7405bf9a..2b6565468 100644 --- a/lib/resource-1.0/romance/RelativeRomance.gf +++ b/lib/resource-1.0/romance/RelativeRomance.gf @@ -9,29 +9,35 @@ incomplete concrete RelativeRomance of Relative = s = \\ag,t,a,p,m => pronSuch ! ag ++ conjThat ++ cl.s ! t ! a ! p ! m } ; - RelVP rp vp = { - s = \\ag => - (mkClause - (rp.s ! False ! {g = ag.g ; n = ag.n} ! Nom) - (case rp.a of { - RNoAg => ag ; - RAg a => a ** {p = P3} - }) - vp).s + --- more efficient to compile than case inside mkClause; see log.txt + RelVP rp vp = case rp.hasAgr of { + True => {s = \\ag => + (mkClause + (rp.s ! False ! {g = ag.g ; n = ag.n} ! Nom) + {g = rp.a.g ; n = rp.a.n ; p = P3} + vp).s} ; + False => {s = \\ag => + (mkClause + (rp.s ! False ! {g = ag.g ; n = ag.n} ! Nom) + ag + vp).s + } } ; RelSlash rp slash = { s = \\ag,t,a,p,m => - slash.c2.s ++ rp.s ! False ! ag ! slash.c2.c ++ slash.s ! t ! a ! p ! m + slash.c2.s ++ rp.s ! False ! {g = ag.g ; n = ag.n} ! slash.c2.c ++ slash.s ! t ! a ! p ! m } ; FunRP p np rp = { s = \\_,a,c => np.s ! Ton Nom ++ p.s ++ rp.s ! True ! a ! p.c ; - a = RAg {g = np.a.g ; n = np.a.n} + a = {g = np.a.g ; n = np.a.n} ; + hasAgr = True } ; IdRP = { s = relPron ; - a = RNoAg + a = {g = Masc ; n = Sg} ; + hasAgr = False } ; }