diff options
Diffstat (limited to 'examples/extmini/GrammarCmn.gf')
| -rw-r--r-- | examples/extmini/GrammarCmn.gf | 274 |
1 files changed, 0 insertions, 274 deletions
diff --git a/examples/extmini/GrammarCmn.gf b/examples/extmini/GrammarCmn.gf deleted file mode 100644 index 144db1b78..000000000 --- a/examples/extmini/GrammarCmn.gf +++ /dev/null @@ -1,274 +0,0 @@ -concrete GrammarCmn of Grammar = open ResCmn, Prelude in { -flags coding = utf8; - - lincat - S = {s : Aspect => Str} ; - Cl = {s : Bool => Aspect => Str; - np: Str; - vp: Bool => Aspect => Str} ; - NP = ResCmn.NP ; - -- {s : Str ; n : Number} ; - VP = ResCmn.VP ; - -- { verb : Verb ; compl : Str ; prePart : Str} ; - AP = {s : Str; monoSyl: Bool} ; - CN = ResCmn.Noun ; -- {s : Str; Counter : Str} ; - Det = {s : Str ; n : Number} ; - N = Noun ; -- {s : Str; Counter : Str} ; - A = ResCmn.Adj ; -- {s : Str; monoSyl: Bool} ; - V = ResCmn.Verb; - -- Verb : Type = {s : Bool => Aspect => Str ; vinf : Str} ; - V2 = ResCmn.Verb ; - AdA = {s : Str} ; - Pol = {s : Str ; b : Bool} ; - Tense = {s : Str ; t : TTense} ; - Conj = {s : SForm => Str} ; - - lin - - UseCl t p cl = {s = \\a => cl.s ! p.b ! a } ; - PredVP np vp = {s = \\p,a => np.s ++ vp.prePart ++ vp.verb.s ! p ! a ++ vp.compl; - np = np.s; - vp = \\p,a => vp.verb.s ! p ! a ++ vp.compl} ; - - ComplV2 v2 np = { - verb = v2 ; - compl = np.s ; - prePart = [] - } ; - - DetCN det cn = case det.n of { - Sg => {s = det.s ++ cn.Counter ++ cn.s ; n = Sg } ; - Pl => {s = det.s ++ "些" ++ cn.s ; n = Pl } - } ; - - ModCN ap cn = case ap.monoSyl of { - True => {s = ap.s ++ cn.s ; Counter = cn.Counter} ; - False => {s = ap.s ++ "的" ++ cn.s ; Counter = cn.Counter} - } ; - - CompAP ap = { - verb = copula ; - compl = ap.s ++ "的" ; - prePart = [] - } ; - - AdAP ada ap = { - s = ada.s ++ ap.s ; - monoSyl = False - } ; - - ConjS co x y = {s = \\a => x.s ! a ++ co.s ! Sent ++ y.s ! a} ; - ConjAP co x y = {s = x.s ++ co.s ! Phr APhrase ++ y.s; - monoSyl = False} ; - - ConjNP co x y = { - s = x.s ++ co.s ! Phr NPhrase ++ y.s ; - n = Pl - } ; - - - UseN n = n ; - - UseA adj = adj ; - - UseV v = { - verb = v ; - compl = [] ; - prePart = [] ; - } ; - - - a_Det = mkDet "一" Sg ; - every_Det = mkDet "每" Sg ; - the_Det = mkDet "那" Sg ; - - this_Det = mkDet "这" Sg ; - these_Det = mkDet "这" Pl ; - that_Det = mkDet "那" Sg ; - those_Det = mkDet "那" Pl ; - - i_NP = pronNP "我" Sg ; - youSg_NP = pronNP "你" Sg ; - he_NP = pronNP "他" Sg ; - she_NP = pronNP "她" Pl ; - we_NP = pronNP "我们" Pl ; - youPl_NP = pronNP "你们" Pl ; - they_NP = pronNP "他们" Pl ; - - very_AdA = ss "非常" ; - - - Pos = {s = [] ; b = True} ; - Neg = {s = [] ; b = False} ; - - Pres = {s = [] ; t = TPres} ; - Perf = {s = [] ; t = TPerf} ; - Past = {s = [] ; t = TPast} ; - Fut = {s = [] ; t = TFut} ; - - and_Conj = {s = table { - Phr NPhrase => "和" ; - Phr APhrase => "而" ; - Phr VPhrase => "又" ; - Sent => [] - } - } ; - - or_Conj = {s = table { - Phr _ => "或" ; - Sent => "还是" - } - } ; - --- more - - lincat - Utt = {s : Str} ; - QS = {s : Aspect => Str} ; - QCl = {s : Bool => Aspect => Str; - np: Str; - vp: Bool => Aspect => Str} ; - PN = {s : Str ; n : Number } ; - - ClSlash = {s : Bool => Aspect => Str ; - np: Str ; - vp: Bool => Aspect => Str ; - prepMain : Str ; - prepPre : Str} ; - Adv = {s : Str ; prePart : Str} ; - Prep = {s : Str ; prePart : Str} ; - VS = Verb ; - VQ = Verb ; - VV = {s : Bool => Aspect => Str ; vinf : Str} ; - IP = {s : Str} ; - Subj = {prePart : Str ;sufPart : Str} ; - IAdv = {s : Str} ; - - lin - - UttS s = {s = s.s ! (ResCmn.Perf | ResCmn.DurStat | - ResCmn.DurProg | ResCmn.Exper) } ; - - UttQS s = {s = s.s ! (ResCmn.Perf | ResCmn.DurStat | - ResCmn.DurProg | ResCmn.Exper) } ; - - UseQCl t p cl = {s = \\a => cl.s ! p.b ! a} ; - - QuestCl cl = {s = \\p,a => cl.s ! p ! a ++ "吗"; - np = cl.np ; - vp = cl.vp } ; - - QuestVP ip vp = { - s = \\p,a => ip.s ++ vp.prePart ++ vp.verb.s ! p ! a ++ vp.compl ; - np = ip.s ; - vp = \\p,a => vp.prePart ++ vp.verb.s ! p ! a ++ vp.compl - } ; - - QuestSlash ip cls = { - s =\\p,a => cls.prepPre ++ cls.np ++ cls.prepMain ++ cls.vp ! p ! a ++ "的是" ++ ip.s ; - np = cls.np ; - vp = cls.vp - } ; - - QuestIAdv iadv cl = {s = \\p,a => cl.np ++ iadv.s ++ cl.vp ! p ! a ; - np = cl.np ; - vp = \\p,a => cl.vp ! p ! a - } ; - - SubjCl cl subj s = { - s = \\p,a => subj.prePart ++ s.s ! a ++ subj.sufPart ++ cl.s ! p ! a ; - np = subj.prePart ++ s.s ! ResCmn.Perf ++ subj.sufPart ++ cl.np ; - vp = \\p,a => cl.vp ! p ! a } ; - - CompAdv adv = { - verb = {s = table { - True => table { _ => "在"} ; - False => table { _ => "不在"} - } ; - vinf = "在" - } ; - compl = adv.s ; - prePart = [] - } ; - - PrepNP prep np = { - s = np.s ++ prep.s ; - prePart = prep.prePart - } ; - - ComplVS v s = { - verb = v ; - compl = s.s ! ResCmn.Perf ; - prePart = [] - } ; - - ComplVQ v q = { - verb = v ; - compl = q.s ! ResCmn.Perf ; - prePart = [] - } ; - - ComplVV v vp = { - verb = v ; - compl = vp.verb.vinf ++ vp.compl ; - prePart = vp.prePart - } ; - - SlashV2 np v2 = { - s = \\p,a => np.s ++ v2.s ! p ! a ; - np = np.s ; - vp = \\p,a => v2.s ! p ! a ; - prepMain = [] ; - prepPre = [] - } ; - - SlashPrep cl prep = { - s = \\b, a => cl.s ! b ! a ; - np = cl.np ; - vp = cl.vp ; - prepMain = prep.s ; - prepPre = prep.prePart - } ; - - AdvVP vp adv = { - verb = vp.verb ; - compl = vp.compl ; - prePart = adv.prePart ++ adv.s - } ; - - UsePN pn = { - s = pn.s ; - n = pn.n - } ; - - AdvNP np adv = { - s = adv.prePart ++ adv.s ++ "的" ++ np.s ; - n = np.n - } ; - - who_IP = ss "谁" ; - here_Adv = mkAdv [] "这里" ; - by_Prep = mkPrep "旁边" [] ; - in_Prep = mkPrep "里" []; - of_Prep = mkPrep "的" []; - with_Prep = mkPrep "一起" "和"; - - can_VV = {s = table{True => table{ _ => "能"}; - False =>table{ _ => "不能"} } ; - vinf = [] }; - must_VV = {s = table{True => table{ _ => "必须"}; - False =>table{ _ => "不能"} } ; - vinf = []}; - want_VV = {s = table{True => table{ _ => "想"}; - False =>table{ _ => "不想"} } ; - vinf = []}; - - although_Subj = mkSubj "虽然" "但"; - because_Subj = mkSubj "因为" "所以" ; - when_Subj = mkSubj [] "的时候" ; - - when_IAdv = ss "什么时候" ; - where_IAdv = ss "在哪里" ; - why_IAdv = ss "为什么" ; - -} |
