Lichen

templates/native/int.h

934:2989aab1b4f7
10 months ago Paul Boddie Renamed the utf8string class to unicode, eliminating the unicode function. This means that the simple case of merely returning an object if it is already a Unicode object no longer occurs when using the unicode callable, but such behaviour might be better supported with more general customised instantiation functionality.
     1 /* Native functions for integer operations.     2      3 Copyright (C) 2016, 2017 Paul Boddie <paul@boddie.org.uk>     4      5 This program is free software; you can redistribute it and/or modify it under     6 the terms of the GNU General Public License as published by the Free Software     7 Foundation; either version 3 of the License, or (at your option) any later     8 version.     9     10 This program is distributed in the hope that it will be useful, but WITHOUT    11 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS    12 FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more    13 details.    14     15 You should have received a copy of the GNU General Public License along with    16 this program.  If not, see <http://www.gnu.org/licenses/>.    17 */    18     19 #ifndef __NATIVE_INT_H__    20 #define __NATIVE_INT_H__    21     22 #include "types.h"    23     24 /* Integer operations. */    25     26 __attr __fn_native_int_is_int(__attr __self, __attr obj);    27 __attr __fn_native_int_int_add(__attr __self, __attr _data, __attr other);    28 __attr __fn_native_int_int_sub(__attr __self, __attr _data, __attr other);    29 __attr __fn_native_int_int_mul(__attr __self, __attr _data, __attr other);    30 __attr __fn_native_int_int_div(__attr __self, __attr _data, __attr other);    31 __attr __fn_native_int_int_mod(__attr __self, __attr _data, __attr other);    32 __attr __fn_native_int_int_neg(__attr __self, __attr _data);    33 __attr __fn_native_int_int_pow(__attr __self, __attr _data, __attr other);    34     35 __attr __fn_native_int_int_and(__attr __self, __attr _data, __attr other);    36 __attr __fn_native_int_int_not(__attr __self, __attr _data);    37 __attr __fn_native_int_int_or(__attr __self, __attr _data, __attr other);    38 __attr __fn_native_int_int_xor(__attr __self, __attr _data, __attr other);    39     40 __attr __fn_native_int_int_lshift(__attr __self, __attr _data, __attr other);    41 __attr __fn_native_int_int_rshift(__attr __self, __attr _data, __attr other);    42     43 __attr __fn_native_int_int_eq(__attr __self, __attr _data, __attr other);    44 __attr __fn_native_int_int_ge(__attr __self, __attr _data, __attr other);    45 __attr __fn_native_int_int_gt(__attr __self, __attr _data, __attr other);    46 __attr __fn_native_int_int_le(__attr __self, __attr _data, __attr other);    47 __attr __fn_native_int_int_lt(__attr __self, __attr _data, __attr other);    48 __attr __fn_native_int_int_ne(__attr __self, __attr _data, __attr other);    49     50 __attr __fn_native_int_int_str(__attr __self, __attr _data);    51     52 /* Module initialisation. */    53     54 void __main_native_int();    55     56 #endif /* __NATIVE_INT_H__ */