diff --git a/lib/src/chinese/DictEngChi.gf b/lib/src/chinese/DictEngChi.gf index 11004750f..7665121bd 100644 --- a/lib/src/chinese/DictEngChi.gf +++ b/lib/src/chinese/DictEngChi.gf @@ -2216,7 +2216,7 @@ back_V = mkV "支持" ; attractive_A = mkA "优美" ; withdrawal_N = mkN "撤离" ; while_N = mkN "时间" ; -top_N = mkN "while" ; +---- top_N = mkN "while" ; syndicate_N = mkN "辛迪加" ; speed_N = mkN "速度" ; sophisticated_A = mkA "尖端" ; @@ -2362,7 +2362,7 @@ ohio_PN = mkPN "俄亥俄" ; mining_N = mkN "采矿" ; low_N = mkN "低" ; legislator_N = mkN "立委" ; -houston_PN = mkPN "Xiūsīdùn" ; +---- houston_PN = mkPN "Xiūsīdùn" ; hard_Adv = mkAdv "硬" ; grant_N = mkN "授与" ; forest_N = mkN "森林" ; @@ -2486,7 +2486,7 @@ will_N = mkN "意志" ; use_VV = mkVV "使用" ; unfortunate_A = mkA "不幸" ; turnover_N = mkN "营业额" ; -theme_N = mkN "Zhǔtí" ; +---- theme_N = mkN "Zhǔtí" ; switch_V = mkV "交换" ; strategist_N = mkN "战略家" ; shortage_N = mkN "短缺" ; @@ -5016,7 +5016,7 @@ frenzy_N = mkN "狂妄" ; free_of_A2 = mkA2 "免费" ; frame_N = mkN "框架" ; fortunate_A = mkA "幸运" ; -forth_Adv = mkAdv "forth" ; +---- forth_Adv = mkAdv "forth" ; forbid_V2 = mkV2 "禁止" ; flood_V2 = mkV2 "淹没" ; fitness_N = mkN "健身" ; diff --git a/lib/src/chinese/ExtraChi.gf b/lib/src/chinese/ExtraChi.gf index ea960393f..e8ff7c4bd 100644 --- a/lib/src/chinese/ExtraChi.gf +++ b/lib/src/chinese/ExtraChi.gf @@ -1,10 +1,32 @@ concrete ExtraChi of ExtraChiAbs = CatChi ** - open ResChi, Prelude in { + open ResChi, Coordination, Prelude in { lincat Aspect = {s : Str ; a : ResChi.Aspect} ; + VPS = {s : Str} ; + [VPS] = {s1,s2 : Str} ; + VPI = {s : Str} ; --- ??? + [VPI] = {s1,s2 : Str} ; --- ??? + [CN] = {s : Str ; c : Str} ; lin PassVPSlash vps = insertAdv (mkNP passive_s) vps ; + MkVPS t p vp = {s = t.s ++ p.s ++ (mkClause [] vp).s ! p.p ! t.t} ; + ConjVPS c = conjunctDistrSS (c.s ! CSent) ; + BaseVPS = twoSS ; + ConsVPS = consrSS duncomma ; + + MkVPI vp = {s = (mkClause [] vp).s ! Pos ! APlain} ; --- ?? almost just a copy of VPS + ConjVPI c = conjunctDistrSS (c.s ! CSent) ; + BaseVPI = twoSS ; + ConsVPI = consrSS duncomma ; + + ConjCN c = conjunctDistrSS (c.s ! CPhr CNPhrase) ** {c = ge_s} ; --- classifier always ge + BaseCN = twoSS ; + ConsCN = consrSS duncomma ; + + GenRP nu cn = {s = cn.s ++ relative_s} ; ---- ?? + + } diff --git a/lib/src/chinese/ExtraChiAbs.gf b/lib/src/chinese/ExtraChiAbs.gf index e76669589..d0de1b03b 100644 --- a/lib/src/chinese/ExtraChiAbs.gf +++ b/lib/src/chinese/ExtraChiAbs.gf @@ -1,4 +1,11 @@ -abstract ExtraChiAbs = Cat, Extra [VPSlash, PassVPSlash] ** { +abstract ExtraChiAbs = Cat, + + Extra [NP, Quant, VPSlash, VP, Tense, Aspect, GenNP, PassVPSlash, + Temp, Pol, Conj, VPS, ListVPS, S, Num, CN, RP, MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS, GenRP, + VPI, VPIForm, VPIInf, VPIPresPart, ListVPI, VV, MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV, + ClSlash, RCl, EmptyRelSlash, ListCN, ConjCN, BaseCN, ConsCN] + + ** { cat Aspect ; } ; diff --git a/lib/src/chinese/ParseChi.gf b/lib/src/chinese/ParseChi.gf index 6a13e6824..51522de25 100644 --- a/lib/src/chinese/ParseChi.gf +++ b/lib/src/chinese/ParseChi.gf @@ -17,7 +17,7 @@ concrete ParseChi of ParseEngAbs = ExtraChi [NP, Quant, VPSlash, VP, Tense, Aspect, GenNP, PassVPSlash, Temp, Pol, Conj, VPS, ListVPS, S, Num, CN, RP, MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS, GenRP, VPI, VPIForm, VPIInf, VPIPresPart, ListVPI, VV, MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV, - ClSlash, RCl, EmptyRelSlash], + ClSlash, RCl, EmptyRelSlash, ListCN, ConjCN, BaseCN, ConsCN], DictEngChi ** open ResChi, ParadigmsChi, SyntaxChi, Prelude in { diff --git a/lib/src/chinese/ResChi.gf b/lib/src/chinese/ResChi.gf index 67bd97bdc..ae3a92d75 100644 --- a/lib/src/chinese/ResChi.gf +++ b/lib/src/chinese/ResChi.gf @@ -65,6 +65,8 @@ resource ResChi = ParamX ** open Prelude in { bword : Str -> Str -> Str = \x,y -> x ++ y ; -- change to x + y to treat words as single tokens word : Str -> Str = \s -> case s of { + x@? + y@? + z@? + u@? + v@? + w@? => bword x (bword y (bword z (bword u (bword v w)))) ; + x@? + y@? + z@? + u@? + v@? => bword x (bword y (bword z (bword u v))) ; x@? + y@? + z@? + u@? => bword x (bword y (bword z u)) ; x@? + y@? + z@? => bword x (bword y z) ; x@? + y@? => bword x y ; diff --git a/lib/src/chinese/SentenceChi.gf b/lib/src/chinese/SentenceChi.gf index 6c62812dc..853a0d5ab 100644 --- a/lib/src/chinese/SentenceChi.gf +++ b/lib/src/chinese/SentenceChi.gf @@ -34,13 +34,16 @@ concrete SentenceChi of Sentence = CatChi ** EmbedQS qs = qs ; EmbedVP vp = ss (infVP vp) ; - UseCl t p cl = {s = cl.s ! p.p ! t.t} ; - UseQCl t p cl = {s = cl.s ! p.p ! t.t} ; - UseRCl t p cl = {s = cl.s ! p.p ! t.t} ; - UseSlash t p cl = {s = cl.s ! p.p ! t.t ; c2 = cl.c2} ; + UseCl t p cl = {s = t.s ++ p.s ++ cl.s ! p.p ! t.t} ; + UseQCl t p cl = {s = t.s ++ p.s ++ cl.s ! p.p ! t.t} ; + UseRCl t p cl = {s = t.s ++ p.s ++ cl.s ! p.p ! t.t} ; + UseSlash t p cl = {s = t.s ++ p.s ++ cl.s ! p.p ! t.t ; c2 = cl.c2} ; AdvS a s = ss (a.s ++ s.s) ; ExtAdvS a s = ss (a.s ++ chcomma ++ s.s) ; RelS s r = ss (s.s ++ r.s) ; + + SSubjS a subj b = ss (a.s ++ subj.prePart ++ b.s ++ subj.sufPart) ; + } diff --git a/lib/src/chinese/VerbChi.gf b/lib/src/chinese/VerbChi.gf index 759a3e5c3..43d8343d3 100644 --- a/lib/src/chinese/VerbChi.gf +++ b/lib/src/chinese/VerbChi.gf @@ -18,8 +18,8 @@ concrete VerbChi of Verb = CatChi ** open ResChi, Prelude in { ComplVV v vp = { verb = v ; - compl = vp.verb.s ++ vp.compl ; - prePart = vp.prePart + compl = vp.prePart ++ vp.verb.s ++ vp.compl ; + prePart = [] } ; ComplVS v s = insertObj s (predV v []) ;