diff options
| author | aarne <aarne@chalmers.se> | 2009-08-28 07:05:08 +0000 |
|---|---|---|
| committer | aarne <aarne@chalmers.se> | 2009-08-28 07:05:08 +0000 |
| commit | f34dd228eb122680f9f52f115443f8459f203883 (patch) | |
| tree | 4e86e92f8db9336abdfdaeeecada4f26f575ab80 /contrib/summerschool/mini/Syntax.gf | |
| parent | b6abe5f8f5ae85220ba208aa0f99932f5f8e321c (diff) | |
added contrib and summerschool
Diffstat (limited to 'contrib/summerschool/mini/Syntax.gf')
| -rw-r--r-- | contrib/summerschool/mini/Syntax.gf | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/contrib/summerschool/mini/Syntax.gf b/contrib/summerschool/mini/Syntax.gf new file mode 100644 index 000000000..0941f9600 --- /dev/null +++ b/contrib/summerschool/mini/Syntax.gf @@ -0,0 +1,45 @@ +interface Syntax = Grammar - + [UseCl,PredVP,ComplV2,UseV,DetCN,ModCN,CompAP,AdAP, + 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 ; + } ; + + 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 ; + } ; + + 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 ; + +} |
