aboutsummaryrefslogtreecommitdiff
path: root/frontend/genericsupport.icl
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/genericsupport.icl')
-rw-r--r--frontend/genericsupport.icl65
1 files changed, 62 insertions, 3 deletions
diff --git a/frontend/genericsupport.icl b/frontend/genericsupport.icl
index 993149d..6ac079b 100644
--- a/frontend/genericsupport.icl
+++ b/frontend/genericsupport.icl
@@ -1,6 +1,6 @@
implementation module genericsupport
-import syntax, checksupport
+import syntax
getGenericClassInfo ::
!(Global Index)
@@ -87,7 +87,7 @@ genericIdentToClassIdent id_name kind
kind_to_short_string :: !TypeKind -> {#Char}
kind_to_short_string KindConst = "s"
-kind_to_short_string (KindArrow kinds) = kinds_to_str kinds +++ "s"
+kind_to_short_string (KindArrow kinds) = kinds_to_str kinds +++ "s"
where
kinds_to_str [] = ""
kinds_to_str [KindConst:ks] = "s" +++ kinds_to_str ks
@@ -105,4 +105,63 @@ where
type_cons_to_str (TypeConsBasic bt) = toString bt
type_cons_to_str TypeConsArrow = "ARROW"
type_cons_to_str (TypeConsVar tv) = tv.tv_ident.id_name
- \ No newline at end of file
+
+field_n_of_GenericTypeDefDescriptor :: !String -> Int
+field_n_of_GenericTypeDefDescriptor "gtd_name" = 0
+field_n_of_GenericTypeDefDescriptor "gtd_arity" = 1
+field_n_of_GenericTypeDefDescriptor "gtd_num_conses" = 2
+field_n_of_GenericTypeDefDescriptor "gtd_conses" = 3
+field_n_of_GenericTypeDefDescriptor _ = -1
+
+field_n_of_GenericConsDescriptor :: !String -> Int
+field_n_of_GenericConsDescriptor "gcd_name" = 0
+field_n_of_GenericConsDescriptor "gcd_arity" = 1
+field_n_of_GenericConsDescriptor "gcd_prio" = 2
+field_n_of_GenericConsDescriptor "gcd_type_def" = 3
+field_n_of_GenericConsDescriptor "gcd_type" = 4
+field_n_of_GenericConsDescriptor "gcd_index" = 5
+field_n_of_GenericConsDescriptor _ = -1
+
+field_n_of_GenericFieldDescriptor :: !String -> Int
+field_n_of_GenericFieldDescriptor "gfd_name" = 0
+field_n_of_GenericFieldDescriptor "gfd_index" = 1
+field_n_of_GenericFieldDescriptor "gfd_cons" = 2
+field_n_of_GenericFieldDescriptor _ = -1
+
+field_n_of_GenericRecordDescriptor :: !String -> Int
+field_n_of_GenericRecordDescriptor "grd_name" = 0
+field_n_of_GenericRecordDescriptor "grd_arity" = 1
+field_n_of_GenericRecordDescriptor "grd_type_arity" = 2
+field_n_of_GenericRecordDescriptor "grd_type" = 3
+field_n_of_GenericRecordDescriptor "grd_fields" = 4
+field_n_of_GenericRecordDescriptor _ = -1
+
+field_0_name_of_generic_info :: !Int -> String
+field_0_name_of_generic_info 0 = "gtd_name"
+field_0_name_of_generic_info 1 = "gcd_name"
+field_0_name_of_generic_info 2 = "grd_name"
+field_0_name_of_generic_info 3 = "gfd_name"
+
+field_1_name_of_generic_info :: !Int -> String
+field_1_name_of_generic_info 0 = "gtd_arity"
+field_1_name_of_generic_info 1 = "gcd_arity"
+field_1_name_of_generic_info 2 = "grd_arity"
+field_1_name_of_generic_info 3 = "gfd_index"
+
+field_2_name_of_generic_info :: !Int -> String
+field_2_name_of_generic_info 0 = "gtd_num_conses"
+field_2_name_of_generic_info 1 = "gcd_prio"
+field_2_name_of_generic_info 2 = "grd_type_arity"
+field_2_name_of_generic_info 3 = "gfd_cons"
+
+field_3_name_of_generic_info :: !Int -> String
+field_3_name_of_generic_info 0 = "gtd_conses"
+field_3_name_of_generic_info 1 = "gcd_type_def"
+field_3_name_of_generic_info 2 = "grd_type"
+
+field_4_name_of_generic_info :: !Int -> String
+field_4_name_of_generic_info 1 = "gcd_type"
+field_4_name_of_generic_info 2 = "grd_fields"
+
+field_5_name_of_generic_info :: !Int -> String
+field_5_name_of_generic_info 1 = "gcd_index"