summaryrefslogtreecommitdiff
path: root/next-lib/src/parametric
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2008-09-30 14:16:39 +0000
committeraarne <aarne@cs.chalmers.se>2008-09-30 14:16:39 +0000
commite9d67dbd2dc569bb74e4685e72ac1f0b00396270 (patch)
tree138c76525c2ff2f3987c7a9ee4e9c87078479f01 /next-lib/src/parametric
parent203430ae6d440e7239b0c289df0380835427fba7 (diff)
started experiment on parametrizing more of RG definition
Diffstat (limited to 'next-lib/src/parametric')
-rw-r--r--next-lib/src/parametric/Parametric.gf49
1 files changed, 49 insertions, 0 deletions
diff --git a/next-lib/src/parametric/Parametric.gf b/next-lib/src/parametric/Parametric.gf
new file mode 100644
index 000000000..2b32f0b8a
--- /dev/null
+++ b/next-lib/src/parametric/Parametric.gf
@@ -0,0 +1,49 @@
+interface Parametric = {
+
+oper
+
+-- primitive
+
+ PS : Type ;
+ S : Type ;
+ Cl : Type ;
+ NP : Type ;
+ CN : Type ;
+ AP : Type ;
+
+ VPComp : Type ;
+
+ CCase : Type ;
+ Agr : Type ;
+
+ V : Type ;
+ N : Type ;
+ A : Type ;
+
+ agrNP : NP -> Agr ;
+
+ PredVP : NP -> VP -> Cl ;
+
+ mkVPComp : (Agr => Str) -> Str -> Str -> VPComp ;
+
+ insertVPComp : VPComp -> VP -> VP ;
+
+-- derived
+
+ VP : Type = {
+ verb : V ;
+ comp : VPComp
+ } ;
+
+ VPSlash : Type = VP ** {c : CComp} ;
+
+ UseV : V -> VP = \v -> {
+ verb = v ;
+ comp = mkVPComp (\\_ => []) [] []
+ } ;
+
+ SlashV : V -> (Agr => Str) -> Str -> Str -> CCase -> VPSlash =
+ \v,comp,adv,ext,c ->
+ insertVPComp (mkVPComp comp adv ext) (UseV v) ** {c = c} ;
+
+}