Sélectionner une révision Git
numex.h 6,66 Kio
#ifndef NUMEX_H
#define NUMEX_H
#include <p2c/newasm.h>
#ifdef NUMEX_G
# define vextern
#else
# define vextern extern
#endif
#define ne_maxargs 255
#define ne_badvalue 1.2345678e277 /*not likely to occur in nature*/
#define ne_badescape (-50)
typedef enum {
ne_notype, ne_integer, ne_real, ne_string, ne_boolean
} ne_datatype;
typedef ne_datatype ne_datatypearray[ne_maxargs];
typedef enum {
ne_error, ne_ic, ne_rc, ne_sc, ne_ip, ne_rp, ne_sp, ne_if, ne_rf, ne_sf,
ne_iarg, ne_rarg, ne_sarg, ne_iadd, ne_isub, ne_imul, ne_idiv, ne_ineg,
ne_radd, ne_rsub, ne_rmul, ne_rdiv, ne_rneg, ne_rpow, ne_sadd, ne_itor,
ne_imod, ne_rbool, ne_sbool, ne_ieq, ne_ine, ne_ilt, ne_ile, ne_igt, ne_ige,
ne_req, ne_rne, ne_rlt, ne_rle, ne_rgt, ne_rge, ne_seq, ne_sne, ne_slt,
ne_sle, ne_sgt, ne_sge, ne_not, ne_and, ne_or, ne_xor, ne_lsh, ne_rsh,
ne_lnot, ne_ior, ne_ror, ne_sor, ne_iand, ne_rand, ne_sand, ne_icond,
ne_rcond, ne_scond, ne_round, ne_trunc, ne_ln, ne_exp, ne_iabs, ne_rabs,
ne_sqrt, ne_sin, ne_cos, ne_tan, ne_arctan, ne_rxp, ne_rxor
} ne_opkind;
typedef enum {
ne_noerror, ne_syntax, ne_overflow, ne_underflow, ne_divzero, ne_strlong,
ne_badtypes, ne_undef, ne_badval
} ne_errorkind;
typedef struct ne_functionrec {
uchar nargs, minargs, maxargs;
unsigned static_ : 1, subnex : 1, dummy_2 : 6;
union {
na_quadword qw;
struct ne_nexrec **nexp;
struct {
_PROCEDURE ipr;
unsigned arg1 : 3, arg2 : 3, arg3 : 3, arg4 : 3;
} U5;
_PROCEDURE rpr;
_PROCEDURE spr;
struct {
na_quadword qw2;
ne_datatype ptypes[ne_maxargs];
} U99;
} UU;
} ne_functionrec;
typedef struct ne_nexrec *ne_nexptrarray[ne_maxargs];
typedef na_quadword ne_argvalarray[ne_maxargs];