|
|
1.1 ! root 1: /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ ! 2: ! 3: /* ! 4: $Header: b2tcP.h,v 1.4 85/08/22 16:43:20 timo Exp $ ! 5: */ ! 6: ! 7: /* polytype representation */ ! 8: ! 9: typedef value typekind; ! 10: typedef value polytype; ! 11: ! 12: /* accessing, NOT giving new values */ ! 13: ! 14: typekind kind(); /* polytype u */ ! 15: intlet nsubtypes(); /* polytype u */ ! 16: polytype subtype(); /* polytype u, intlet i */ ! 17: polytype asctype(); /* polytype u */ ! 18: polytype keytype(); /* polytype u */ ! 19: value ident(); /* polytype u */ ! 20: ! 21: /* MaKe Types, where subtypes are "eaten" */ ! 22: ! 23: polytype mkt_polytype(); /* typekind k; intlet nsub */ ! 24: /* visible only in bunif.c */ ! 25: /* Procedure putsubtype(); */ /* polytype sub, *pcomp; intlet isub */ ! 26: /* to be used after mkt_polytype or ! 27: * mkt_compound */ ! 28: ! 29: polytype mkt_number(); ! 30: polytype mkt_text(); ! 31: polytype mkt_tn(); ! 32: polytype mkt_error(); ! 33: polytype mkt_list(); /* polytype s */ ! 34: polytype mkt_table(); /* polytype k, a */ ! 35: polytype mkt_lt(); /* polytype s */ ! 36: polytype mkt_tlt(); /* polytype s */ ! 37: /* next to be used with putsubtype() calls */ ! 38: polytype mkt_compound(); /* intlet nsub */ ! 39: polytype mkt_var(); /* value id */ ! 40: polytype mkt_newvar(); ! 41: ! 42: polytype p_copy(); /* polytype u */ ! 43: /* Procedure p_release(); */ /* polytype u */ ! 44: ! 45: /* predicates */ ! 46: ! 47: bool are_same_types(); /* polytype u, v */ ! 48: bool have_same_structure();/* polytype u, v */ ! 49: ! 50: bool t_is_number(); /* typekind k */ ! 51: bool t_is_text(); /* typekind k */ ! 52: bool t_is_tn(); /* typekind k */ ! 53: bool t_is_error(); /* typekind k */ ! 54: bool t_is_list(); /* typekind k */ ! 55: bool t_is_table(); /* typekind k */ ! 56: bool t_is_lt(); /* typekind k */ ! 57: bool t_is_tlt(); /* typekind k */ ! 58: bool t_is_compound(); /* typekind k */ ! 59: bool t_is_var(); /* typekind k */ ! 60: bool has_number(); /* typekind k */ ! 61: bool has_text(); /* typekind k */ ! 62: bool has_lt(); /* typekind k */ ! 63: ! 64: /* typetable */ ! 65: ! 66: /* Procedure repl_type_of(); */ /* polytype u, tu */ ! 67: bool table_has_type_of(); /* polytype u */ ! 68: polytype type_of(); /* polytype u */ ! 69: polytype bottom_var(); /* polytype u */ ! 70: ! 71: /* Procedure usetypetable(); */ /* value t */ ! 72: /* Procedure deltypetable(); */ ! 73: ! 74: /* init */ ! 75: ! 76: /* Procedure initpol(); */ /* */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.