Lichen

templates/progops.h

338:61776a5a0e16
2016-12-07 Paul Boddie Associate constant name information with references so that structure members such as function instance default members can be generated statically, thus eliminating unnecessary structure initialisation in the translated code. Improved the determination of dynamic functions in the importer to consider only non-constant defaults.
     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_EOFError    21 void __raise_eof_error();    22 #endif /* __HAVE___builtins___exception_io_EOFError */    23     24 #ifdef __HAVE___builtins___exception_io_IOError    25 void __raise_io_error(__attr value);    26 #endif /* __HAVE___builtins___exception_io_IOError */    27     28 void __raise_memory_error();    29 void __raise_overflow_error();    30 void __raise_zero_division_error();    31 void __raise_type_error();    32 __attr __ensure_instance(__attr arg);    33     34 /* Generic invocation operations. */    35     36 __attr __invoke(__attr callable, int always_callable,    37                 unsigned int nkwargs, __param kwcodes[], __attr kwargs[],    38                 unsigned int nargs, __attr args[]);    39     40 /* Error routines. */    41     42 __attr __unbound_method(__attr args[]);    43     44 /* Generic operations depending on specific program details. */    45     46 void __SETDEFAULT(__ref obj, int pos, __attr value);    47     48 __attr __GETDEFAULT(__ref obj, int pos);    49     50 int __BOOL(__attr attr);