aboutsummaryrefslogtreecommitdiff
path: root/frontend/syntax.dcl
diff options
context:
space:
mode:
authorjohnvg2010-02-05 13:37:42 +0000
committerjohnvg2010-02-05 13:37:42 +0000
commit230bf72b9ab3e4c6d572be193680037c64b7bf02 (patch)
tree62cf8e414277aede9a42da7ab92e4e8d2c17961e /frontend/syntax.dcl
parentmake local build_ functions global (diff)
add optimizations for generic bimap,
add bimap instances for standard generic types to compiler git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1764 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/syntax.dcl')
-rw-r--r--frontend/syntax.dcl9
1 files changed, 5 insertions, 4 deletions
diff --git a/frontend/syntax.dcl b/frontend/syntax.dcl
index b182073..a73ab4d 100644
--- a/frontend/syntax.dcl
+++ b/frontend/syntax.dcl
@@ -530,24 +530,25 @@ NoGlobalIndex :== {gi_module=NoIndex,gi_index=NoIndex}
, tdi_gen_rep :: !Optional GenericTypeRep
}
-// AA..
// type structure is used to specialize a generic to a type
:: GenTypeStruct
= GTSAppCons TypeKind [GenTypeStruct]
| GTSAppVar TypeVar [GenTypeStruct]
| GTSVar TypeVar
- | GTSArrow GenTypeStruct GenTypeStruct // needed for simplifying bimaps
- | GTSAppConsBimapKindConst // needed for simplifying bimaps
| GTSCons DefinedSymbol GenTypeStruct
| GTSField DefinedSymbol GenTypeStruct
| GTSObject DefinedSymbol GenTypeStruct
| GTSE
+ | GTSArrow GenTypeStruct GenTypeStruct // for optimizing bimaps
+ | GTSAppConsBimapKindConst // for optimizing bimaps
+ | GTSAppBimap TypeKind [GenTypeStruct] // for optimizing bimaps
+ | GTSPair !GenTypeStruct !GenTypeStruct // for optimizing bimaps
+ | GTSEither !GenTypeStruct !GenTypeStruct // for optimizing bimaps
:: GenericTypeRep =
{ gtr_type :: GenTypeStruct // generic structure type
, gtr_iso :: DefinedSymbol // the conversion isomorphism
}
-// ..AA
:: TypeDefInfos :== {# .{# TypeDefInfo}}