1 /* Program type definitions. */ 2 3 #include <stdlib.h> 4 #include "types.h" 5 6 /* Common operations. */ 7 8 __attr __new(const __table *table, __ref cls, size_t size); 9 10 __fragment *__new_fragment(unsigned int n); 11 12 void __newdata_sequence(__attr args[], unsigned int number); 13 14 #ifdef __HAVE___builtins___dict_dict 15 void __newdata_mapping(__attr args[], unsigned int number); 16 #endif /* __HAVE___builtins___dict_dict */ 17 18 /* Exception raising. */ 19 20 #ifdef __HAVE___builtins___exception_io_IOError 21 void __raise_io_error(__attr value); 22 #endif /* __HAVE___builtins___exception_io_IOError */ 23 24 void __raise_memory_error(); 25 void __raise_overflow_error(); 26 void __raise_zero_division_error(); 27 void __raise_type_error(); 28 __attr __ensure_instance(__attr arg); 29 30 /* Generic invocation operations. */ 31 32 __attr __invoke(__attr callable, int always_callable, 33 unsigned int nkwargs, __param kwcodes[], __attr kwargs[], 34 unsigned int nargs, __attr args[]); 35 36 /* Error routines. */ 37 38 __attr __unbound_method(__attr args[]); 39 40 /* Generic operations depending on specific program details. */ 41 42 void __SETDEFAULT(__ref obj, int pos, __attr value); 43 44 __attr __GETDEFAULT(__ref obj, int pos); 45 46 int __BOOL(__attr attr);