From e929080bb61c65508f94c9a4c9aa5145789d78ce Mon Sep 17 00:00:00 2001 From: aarne Date: Tue, 29 Mar 2016 18:50:34 +0000 Subject: [PATCH] a new Extra function for AP without CN, e.g. "a green one" --- lib/src/abstract/Extra.gf | 5 +++++ lib/src/english/ExtraEng.gf | 6 ++++++ lib/src/scandinavian/ExtraScand.gf | 11 ++++++++++- lib/src/swedish/ExtraSweAbs.gf | 1 - 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/lib/src/abstract/Extra.gf b/lib/src/abstract/Extra.gf index 1e41915f6..f2e3db404 100644 --- a/lib/src/abstract/Extra.gf +++ b/lib/src/abstract/Extra.gf @@ -105,4 +105,9 @@ abstract Extra = Cat ** { FrontExtPredVP : NP -> VP -> Cl ; -- I am here, she said InvFrontExtPredVP : NP -> VP -> Cl ; -- I am here, said she +-- to use an AP as CN without CN + + AdjAsCN : AP -> CN ; -- a green one ; en grön (Swe) + + } diff --git a/lib/src/english/ExtraEng.gf b/lib/src/english/ExtraEng.gf index 8a844f22c..a88a1c737 100644 --- a/lib/src/english/ExtraEng.gf +++ b/lib/src/english/ExtraEng.gf @@ -276,5 +276,11 @@ lin } ; ------- + lin + AdjAsCN ap = let cn = mkNoun "one" "one's" "ones" "ones'" ** {g = Neutr} + in { + s = \\n,c => preOrPost ap.isPre (ap.s ! agrgP3 n cn.g) (cn.s ! n ! c) ; + g = cn.g + } ; } diff --git a/lib/src/scandinavian/ExtraScand.gf b/lib/src/scandinavian/ExtraScand.gf index 8bab08d2a..c6906ac99 100644 --- a/lib/src/scandinavian/ExtraScand.gf +++ b/lib/src/scandinavian/ExtraScand.gf @@ -1,5 +1,5 @@ incomplete concrete ExtraScand of ExtraScandAbs = CatScand ** - open CommonScand,Coordination,ResScand, ParamX in { + open CommonScand,Coordination,ResScand, ParamX, Prelude in { flags coding=utf8 ; lin GenNP np = { @@ -7,6 +7,7 @@ incomplete concrete ExtraScand of ExtraScandAbs = CatScand ** det = DDef Indef } ; + ComplBareVS v s = insertObj (\\_ => s.s ! Sub) (predV v) ; CompBareCN cn = {s = \\a => case a.n of { @@ -112,4 +113,12 @@ incomplete concrete ExtraScand of ExtraScandAbs = CatScand ** UseFoc t p foc = {s = t.s ++ p.s ++ foc.s ! t.t ! t.a ! p.p} ; oper NONEXIST : Str = "#¿@§X?X&%/" ; + + lin + AdjAsCN ap = let g = utrum in { ---- neutrum ?? + s = \\n,d,c => ap.s ! agrAdj (gennum (ngen2gen g) n) d ; + g = g ; + isMod = True + } ; + } diff --git a/lib/src/swedish/ExtraSweAbs.gf b/lib/src/swedish/ExtraSweAbs.gf index 331d01d3e..46829b911 100644 --- a/lib/src/swedish/ExtraSweAbs.gf +++ b/lib/src/swedish/ExtraSweAbs.gf @@ -61,7 +61,6 @@ fun AdvComp : Comp -> Adv -> Comp ; -- jag är redan här - ----------------- Predeterminers,Quantifiers,Determiners bara_AdvFoc : AdvFoc ;