diff --git a/lib/src/chinese/AdverbChi.gf b/lib/src/chinese/AdverbChi.gf index d47786c8b..dcabdefec 100644 --- a/lib/src/chinese/AdverbChi.gf +++ b/lib/src/chinese/AdverbChi.gf @@ -2,7 +2,7 @@ concrete AdverbChi of Adverb = CatChi ** open ResChi, Prelude in { lin - PositAdvAdj a = {s = a.s ; advType = ATManner} ; + PositAdvAdj a = {s = a.s ++ "地" ; advType = ATManner} ; ---- for all adjs? PrepNP prep np = ss (appPrep prep np.s) ** {advType = prep.advType} ; --- should depend on np too ? diff --git a/lib/src/chinese/NounChi.gf b/lib/src/chinese/NounChi.gf index b5ec68c64..4b8d16925 100644 --- a/lib/src/chinese/NounChi.gf +++ b/lib/src/chinese/NounChi.gf @@ -17,6 +17,7 @@ concrete NounChi of Noun = CatChi ** open ResChi, Prelude in { PPartNP np v2 = mkNP ((predV v2 v2.part).verb.s ++ possessive_s ++ np.s) ; ---- ?? AdvNP np adv = mkNP (adv.s ++ possessiveIf adv.advType ++ np.s) ; + ExtAdvNP np adv = mkNP (adv.s ++ possessiveIf adv.advType ++ embedInCommas np.s) ; ---- commas? DetQuant quant num = { s = case num.numType of { diff --git a/lib/src/chinese/VerbChi.gf b/lib/src/chinese/VerbChi.gf index 28a14a7a9..8d3f3af58 100644 --- a/lib/src/chinese/VerbChi.gf +++ b/lib/src/chinese/VerbChi.gf @@ -42,7 +42,7 @@ concrete VerbChi of Verb = CatChi ** open ResChi, Prelude in { insertObj np (insertObj (mkNP (infVP vp)) (predV v v.part)) ** {c2 = vp.c2 ; isPre = vp.isPre} ; - AdvVP vp adv = case adv.advType of { + ExtAdvVP, AdvVP = \vp,adv -> case adv.advType of { ---- ExtAdvVP also ? ATManner => insertObj (ss (deVAdv_s ++ adv.s)) vp ; -- he sleeps *well* ATPlace True => insertAdvPost adv vp ; -- he today *in the house* sleeps ATPlace False => insertAdvPost (ss (zai_V.s ++ adv.s)) vp ; -- he today *here* sleeps diff --git a/lib/src/dutch/NounDut.gf b/lib/src/dutch/NounDut.gf index 63c2854a6..6b95f519b 100644 --- a/lib/src/dutch/NounDut.gf +++ b/lib/src/dutch/NounDut.gf @@ -39,6 +39,11 @@ concrete NounDut of Noun = CatDut ** open ResDut, Prelude in { a = np.a } ; + ExtAdvNP np adv = heavyNP { + s = \\c => np.s ! c ++ embedInCommas adv.s ; + a = np.a + } ; + DetQuantOrd quant num ord = let n = num.n ; diff --git a/lib/src/german/NounGer.gf b/lib/src/german/NounGer.gf index 25dab5565..fb2115cce 100644 --- a/lib/src/german/NounGer.gf +++ b/lib/src/german/NounGer.gf @@ -46,6 +46,11 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in { a = np.a } ; + ExtAdvNP np adv = heavyNP { + s = \\c => np.s ! c ++ embedInCommas adv.s ; + a = np.a + } ; + DetQuantOrd quant num ord = let n = num.n ; diff --git a/lib/src/romance/NounRomance.gf b/lib/src/romance/NounRomance.gf index f14596ac5..9fecb0540 100644 --- a/lib/src/romance/NounRomance.gf +++ b/lib/src/romance/NounRomance.gf @@ -46,6 +46,12 @@ incomplete concrete NounRomance of Noun = hasClit = False } ; + ExtAdvNP np adv = heavyNPpol np.isNeg { + s = \\c => (np.s ! c).ton ++ embedInCommas adv.s ; + a = np.a ; + hasClit = False + } ; + DetQuantOrd quant num ord = { s,sp = \\g,c => quant.s ! num.isNum ! num.n ! g ! c ++ num.s ! g ++ ord.s ! aagr g num.n ; diff --git a/lib/src/scandinavian/NounScand.gf b/lib/src/scandinavian/NounScand.gf index 4b811e0f7..93ed4cbc3 100644 --- a/lib/src/scandinavian/NounScand.gf +++ b/lib/src/scandinavian/NounScand.gf @@ -45,6 +45,11 @@ incomplete concrete NounScand of Noun = a = np.a } ; + ExtAdvNP np adv = { + s = \\c => np.s ! c ++ embedInCommas adv.s ; + a = np.a + } ; + DetQuantOrd quant num ord = { s = \\b,g => quant.s ! num.n ! b ! True ! g ++ num.s ! g ++ ord.s ; diff --git a/lib/src/translator/ExtensionsChi.gf b/lib/src/translator/ExtensionsChi.gf index da11323d5..0e823ee0e 100644 --- a/lib/src/translator/ExtensionsChi.gf +++ b/lib/src/translator/ExtensionsChi.gf @@ -51,6 +51,15 @@ lin s = v.s ; c = ge_s ---- ge } ; + + GerundNP vp = { + s = infVP vp ; ---- ? + } ; + + GerundAdv vp = { + s = infVP vp ++ "地" ; ---- ? + advType = ATManner ; + } ; GerundAP v = { s = v.s ++ de_s ; ----