diff options
author | johnvg | 2012-08-14 10:03:06 +0000 |
---|---|---|
committer | johnvg | 2012-08-14 10:03:06 +0000 |
commit | 8f235418ef16fc1341fef9698688c3fdee20b79f (patch) | |
tree | 74da14decf5a0709f3254af5780a740f823a7c32 /frontend/postparse.icl | |
parent | remove VI_Expression pointer values after copying a case alternative in the f... (diff) |
add extendable algebraic data types (merged from iTask branch)
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@2149 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/postparse.icl')
-rw-r--r-- | frontend/postparse.icl | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/frontend/postparse.icl b/frontend/postparse.icl index c384ca8..c34395f 100644 --- a/frontend/postparse.icl +++ b/frontend/postparse.icl @@ -1318,6 +1318,20 @@ reorganiseDefinitions icl_module [PD_Type type_def=:{td_rhs = AbstractTypeSpec p type_def = { type_def & td_rhs = AbstractSynType properties type } c_defs = { c_defs & def_types = [type_def : c_defs.def_types] } = (fun_defs, c_defs, imports, imported_objects,foreign_exports, ca) +reorganiseDefinitions icl_module [PD_Type type_def=:{td_rhs = ExtendableConses cons_defs} : defs] def_counts=:{cons_count,type_count} ca + # (cons_symbs, cons_count) = determine_symbols_of_conses cons_defs cons_count + def_counts & cons_count=cons_count, type_count=type_count+1 + (fun_defs, c_defs, imports, imported_objects,foreign_exports, ca) = reorganiseDefinitions icl_module defs def_counts ca + type_def & td_rhs = ExtendableAlgType cons_symbs + c_defs & def_types = [type_def : c_defs.def_types], def_constructors = mapAppend ParsedConstructorToConsDef cons_defs c_defs.def_constructors + = (fun_defs, c_defs, imports, imported_objects,foreign_exports, ca) +reorganiseDefinitions icl_module [PD_Type type_def=:{td_rhs = MoreConses type_ext_ident cons_defs} : defs] def_counts=:{cons_count,type_count} ca + # (cons_symbs, cons_count) = determine_symbols_of_conses cons_defs cons_count + def_counts & cons_count=cons_count, type_count=type_count+1 + (fun_defs, c_defs, imports, imported_objects,foreign_exports, ca) = reorganiseDefinitions icl_module defs def_counts ca + type_def & td_rhs = UncheckedAlgConses type_ext_ident cons_symbs + c_defs & def_types = [type_def : c_defs.def_types], def_constructors = mapAppend ParsedConstructorToConsDef cons_defs c_defs.def_constructors + = (fun_defs, c_defs, imports, imported_objects,foreign_exports, ca) reorganiseDefinitions icl_module [PD_Class class_def=:{class_ident,class_arity,class_args} members : defs] def_counts=:{mem_count} ca # type_context = { tc_class = TCClass {glob_module = NoIndex, glob_object = {ds_ident = class_ident, ds_arity = class_arity, ds_index = NoIndex }}, tc_types = [ TV tv \\ tv <- class_args ], tc_var = nilPtr} |