diff options
| author | aarne <aarne@chalmers.se> | 2012-08-24 06:30:10 +0000 |
|---|---|---|
| committer | aarne <aarne@chalmers.se> | 2012-08-24 06:30:10 +0000 |
| commit | 2b77d3e0b05d59c9e7c5a9d50b3a850ddeed82dd (patch) | |
| tree | cb40c4fda2f40d68d3ae1b16c0eae10bd7d67279 /examples/extmini/Syntax.gf | |
| parent | 57b260508c2fac00c15843003154d1cdf0ad083b (diff) | |
extended mini resource grammar in examples, with Eng, Ita, Cmn (Mandarin Chinese by Jolene)
Diffstat (limited to 'examples/extmini/Syntax.gf')
| -rw-r--r-- | examples/extmini/Syntax.gf | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/examples/extmini/Syntax.gf b/examples/extmini/Syntax.gf new file mode 100644 index 000000000..01a51d0ee --- /dev/null +++ b/examples/extmini/Syntax.gf @@ -0,0 +1,47 @@ +interface Syntax = Grammar - + [UseCl,PredVP,ComplV2,UseV,DetCN,ModCN,CompAP,AdAP, + ConjS,ConjNP,UseN,UseA,Pres,Perf,Pos,Neg] ** + open Grammar in { + +oper + mkS = overload { + mkS : Cl -> S = UseCl Pres Pos ; + mkS : Tense -> Cl -> S = \t -> UseCl t Pos ; + mkS : Pol -> Cl -> S = UseCl Pres ; + mkS : Tense -> Pol -> Cl -> S = UseCl ; + mkS : Conj -> S -> S -> S = ConjS ; + } ; + + mkCl = overload { + mkCl : NP -> V -> Cl = \np,v -> PredVP np (UseV v) ; + mkCl : NP -> V2 -> NP -> Cl = \np,v,o -> PredVP np (ComplV2 v o) ; + mkCl : NP -> A -> Cl = \np,a -> PredVP np (CompAP (UseA a)) ; + mkCl : NP -> AP -> Cl = \np,ap -> PredVP np (CompAP ap) ; + mkCl : NP -> VP -> Cl = PredVP ; + } ; + + mkAP = overload { + mkAP : A -> AP = UseA ; + mkAP : AdA -> AP -> AP = AdAP ; + } ; + + mkNP = overload { + mkNP : Det -> N -> NP = \d,n -> DetCN d (UseN n) ; + mkNP : Det -> CN -> NP = \d,n -> DetCN d n ; + mkNP : Conj -> NP -> NP -> NP = ConjNP ; + } ; + + mkCN = overload { + mkCN : N -> CN = UseN ; + mkCN : A -> N -> CN = \a,n -> ModCN (UseA a) (UseN n) ; + mkCN : A -> CN -> CN = \a,n -> ModCN (UseA a) n ; + mkCN : AP -> N -> CN = \a,n -> ModCN a (UseN n) ; + mkCN : AP -> CN -> CN = \a,n -> ModCN a n ; + } ; + + presTense : Tense = Pres ; + perfTense : Tense = Perf ; + posPol : Pol = Pos ; + negPol : Pol = Neg ; + +} |
