aboutsummaryrefslogtreecommitdiff
path: root/frontend/genericsupport.dcl
diff options
context:
space:
mode:
authoralimarin2002-03-25 15:04:33 +0000
committeralimarin2002-03-25 15:04:33 +0000
commit5ed289050bba7924972700181478cb22e9d69c70 (patch)
tree43d0c8ebe33e14ad0d4f637ddae3de94acd7bf07 /frontend/genericsupport.dcl
parentfix version number (diff)
new implementation of generics
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1062 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/genericsupport.dcl')
-rw-r--r--frontend/genericsupport.dcl32
1 files changed, 32 insertions, 0 deletions
diff --git a/frontend/genericsupport.dcl b/frontend/genericsupport.dcl
new file mode 100644
index 0000000..670979c
--- /dev/null
+++ b/frontend/genericsupport.dcl
@@ -0,0 +1,32 @@
+definition module genericsupport
+
+import syntax, checksupport
+
+lookupGenericClassInfo ::
+ !TypeKind
+ !GenericClassInfos
+ -> !(Optional GenericClassInfo)
+
+addGenericClassInfo ::
+ !GenericClassInfo
+ !GenericClassInfos
+ -> !GenericClassInfos
+
+getGenericMember ::
+ !(Global Index) // generic
+ !TypeKind // kind argument
+ !{#CommonDefs} // modules
+ !*GenericHeap
+ ->
+ ( Optional (Global Index)
+ , !*GenericHeap
+ )
+
+//****************************************************************************************
+// Ident Helpers
+//****************************************************************************************
+makeIdent :: !String -> !Ident
+postfixIdent :: !Ident !String -> !Ident
+genericIdentToClassIdent :: !Ident !TypeKind -> !Ident
+genericIdentToMemberIdent :: !Ident !TypeKind -> !Ident
+genericIdentToFunIdent :: !Ident !TypeCons -> !Ident