Lichen

templates/native.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 #ifndef __NATIVE_H__     2 #define __NATIVE_H__     3      4 /* Native functions. */     5      6 __attr __fn_native__exit(__attr __args[]);     7 __attr __fn_native__get_argv(__attr __args[]);     8 __attr __fn_native__get_path(__attr __args[]);     9     10 __attr __fn_native__is(__attr __args[]);    11 __attr __fn_native__is_not(__attr __args[]);    12     13 __attr __fn_native__get_maxint(__attr __args[]);    14 __attr __fn_native__get_minint(__attr __args[]);    15     16 __attr __fn_native__int_add(__attr __args[]);    17 __attr __fn_native__int_div(__attr __args[]);    18 __attr __fn_native__int_mod(__attr __args[]);    19 __attr __fn_native__int_mul(__attr __args[]);    20 __attr __fn_native__int_neg(__attr __args[]);    21 __attr __fn_native__int_pow(__attr __args[]);    22 __attr __fn_native__int_sub(__attr __args[]);    23     24 __attr __fn_native__int_and(__attr __args[]);    25 __attr __fn_native__int_not(__attr __args[]);    26 __attr __fn_native__int_or(__attr __args[]);    27 __attr __fn_native__int_xor(__attr __args[]);    28     29 __attr __fn_native__int_rdiv(__attr __args[]);    30 __attr __fn_native__int_rmod(__attr __args[]);    31 __attr __fn_native__int_rpow(__attr __args[]);    32 __attr __fn_native__int_rsub(__attr __args[]);    33     34 __attr __fn_native__int_lt(__attr __args[]);    35 __attr __fn_native__int_gt(__attr __args[]);    36 __attr __fn_native__int_eq(__attr __args[]);    37 __attr __fn_native__int_ne(__attr __args[]);    38     39 __attr __fn_native__int_str(__attr __args[]);    40     41 __attr __fn_native__str_add(__attr __args[]);    42 __attr __fn_native__str_lt(__attr __args[]);    43 __attr __fn_native__str_gt(__attr __args[]);    44 __attr __fn_native__str_eq(__attr __args[]);    45 __attr __fn_native__str_len(__attr __args[]);    46 __attr __fn_native__str_nonempty(__attr __args[]);    47 __attr __fn_native__str_ord(__attr __args[]);    48 __attr __fn_native__str_substr(__attr __args[]);    49     50 __attr __fn_native__list_init(__attr __args[]);    51 __attr __fn_native__list_setsize(__attr __args[]);    52 __attr __fn_native__list_append(__attr __args[]);    53 __attr __fn_native__list_concat(__attr __args[]);    54 __attr __fn_native__list_len(__attr __args[]);    55 __attr __fn_native__list_nonempty(__attr __args[]);    56 __attr __fn_native__list_element(__attr __args[]);    57 __attr __fn_native__list_setelement(__attr __args[]);    58     59 __attr __fn_native__buffer_str(__attr __args[]);    60     61 __attr __fn_native__get_using(__attr __args[]);    62     63 __attr __fn_native__object_getattr(__attr __args[]);    64     65 __attr __fn_native__isinstance(__attr __args[]);    66 __attr __fn_native__issubclass(__attr __args[]);    67     68 __attr __fn_native__fdopen(__attr __args[]);    69 __attr __fn_native__fread(__attr __args[]);    70 __attr __fn_native__fwrite(__attr __args[]);    71 __attr __fn_native__read(__attr __args[]);    72 __attr __fn_native__write(__attr __args[]);    73     74 /* Module initialisation. */    75     76 void __main_native();    77     78 #endif /* __NATIVE_H__ */