diff options
| author | aarne <aarne@cs.chalmers.se> | 2008-09-30 14:16:39 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2008-09-30 14:16:39 +0000 |
| commit | e9d67dbd2dc569bb74e4685e72ac1f0b00396270 (patch) | |
| tree | 138c76525c2ff2f3987c7a9ee4e9c87078479f01 /next-lib | |
| parent | 203430ae6d440e7239b0c289df0380835427fba7 (diff) | |
started experiment on parametrizing more of RG definition
Diffstat (limited to 'next-lib')
| -rw-r--r-- | next-lib/src/parametric/Parametric.gf | 49 |
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} ; + +} |
