summaryrefslogtreecommitdiff
path: root/examples/extmini/GrammarCmn.gf
diff options
context:
space:
mode:
Diffstat (limited to 'examples/extmini/GrammarCmn.gf')
-rw-r--r--examples/extmini/GrammarCmn.gf274
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 "为什么" ;
-
-}