aboutsummaryrefslogtreecommitdiff
path: root/Descriptors.icl
diff options
context:
space:
mode:
authorCamil Staps2016-06-30 21:18:07 +0200
committerCamil Staps2016-06-30 21:18:07 +0200
commit9498270f46646c34cba3885a2e455b08daf9c324 (patch)
tree9bade895bed4d5a59ced986ad437cf7e5a93aba9 /Descriptors.icl
parentGraphStore, Nodes (diff)
Descriptors, Program
Diffstat (limited to 'Descriptors.icl')
-rw-r--r--Descriptors.icl24
1 files changed, 24 insertions, 0 deletions
diff --git a/Descriptors.icl b/Descriptors.icl
new file mode 100644
index 0000000..11ec8ea
--- /dev/null
+++ b/Descriptors.icl
@@ -0,0 +1,24 @@
+implementation module ABC.Descriptors
+
+import StdEnv
+
+import ABC.Machine
+import ABC.Misc
+
+d_ap_entry :: Desc -> InstrId
+d_ap_entry (Desc e _ _) = e
+
+d_arity :: Desc -> Arity
+d_arity (Desc _ a _) = a
+
+d_name :: Desc -> String
+d_name (Desc _ _ n) = n
+
+
+ds_get :: DescId DescStore -> Desc
+ds_get 0 [d:_] = d
+ds_get _ [] = abortn "ds_get: index too large"
+ds_get i [_:s] = ds_get (i-1) s
+
+ds_init :: [Desc] -> DescStore
+ds_init ds = ds