summaryrefslogtreecommitdiff
path: root/examples/extmini/Syntax.gf
diff options
context:
space:
mode:
Diffstat (limited to 'examples/extmini/Syntax.gf')
-rw-r--r--examples/extmini/Syntax.gf47
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 ;
+
+}