diff options
Diffstat (limited to 'Descriptors.icl')
-rw-r--r-- | Descriptors.icl | 24 |
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 |