Skip to content
Extraits de code Groupes Projets
Valider 975cb79b rédigé par Etienne BRATEAU's avatar Etienne BRATEAU
Parcourir les fichiers

Remove unuse numex

parent 221af119
Branches Domi
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
#ifndef NUMEX_H
#define NUMEX_H
#include <p2c/strlist.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];
typedef struct ne_nexrec {
uchar nargs;
unsigned op : 7;
union {
na_quadword qw;
unsigned err : 4;
long i;
double r;
char *s;
struct {
long *ip;
strlist_t *ips;
struct ne_nexrec *p1, *p2, *p3, *p4;
} U10;
struct {
double *rp;
strlist_t *rps;
} U11;
struct {
char **sp;
strlist_t *sps;
} U12;
struct {
ne_functionrec *fp;
strlist_t *fps;
} U15;
struct {
struct ne_nexrec **ep;
strlist_t *eps;
} U16;
struct {
na_quadword qw2;
ne_nexptrarray pvals;
} U99;
} UU;
} ne_nexrec;
typedef struct ne_desc {
strlist_t *symtab;
unsigned casesens : 1, builtin : 1, scaled : 1, doubleeq : 1, isfunc : 1,
dummy0 : 7, error : 4;
char units[6];
long startident[9], ident[9]; /*must not contain #0*/
_PROCEDURE symproc;
na_long dummy1, dummy2;
} ne_desc;
#define ne_kind_intconst 'A' /*for symbol table entries*/
#define ne_kind_intvalue 'B'
#define ne_kind_intptr 'C'
#define ne_kind_intfunc 'D'
#define ne_kind_realconst 'E'
#define ne_kind_srealconst 'F'
#define ne_kind_realptr 'G'
#define ne_kind_realfunc 'H'
#define ne_kind_strconst 'I'
#define ne_kind_strvalue 'J'
#define ne_kind_strptr 'K'
#define ne_kind_strfunc 'L'
#define ne_kind_intarg 'M'
#define ne_kind_realarg 'N'
#define ne_kind_strarg 'O'
#define ne_kind_realxptr 'P'
#define ne_kind_nex 'Z'
vextern na_quadword *ne_argarray;
extern void ne_init (ne_desc *desc);
extern void ne_compile (char *ex, ne_nexrec **nex, ne_desc *desc);
extern void ne_intcompile (char *ex, long *endp, ne_nexrec **nex,
ne_desc *desc);
extern void ne_dump (ne_nexrec *nex);
extern void ne_uncompile (ne_nexrec *nex, char *ex, ne_desc *desc);
extern void ne_copy (ne_nexrec *nex, ne_nexrec **newnex);
extern void ne_dispose (ne_nexrec **nex);
extern void ne_constant (ne_nexrec **nex, ne_desc *desc, char *which);
extern void ne_notconstant (ne_nexrec **nex, ne_desc *desc, char *which);
extern void ne_constantlist (ne_nexrec **nex, ne_desc *desc,
strlist_t *which);
extern void ne_notconstantlist (ne_nexrec **nex, ne_desc *desc,
strlist_t *which);
extern ne_nexrec *ne_makeerror (ne_errorkind err);
extern ne_datatype ne_exprtype (ne_nexrec *nex);
extern ne_nexrec *ne_typecast (ne_nexrec *nex, ne_datatype typ);
extern void ne_evaluate (ne_nexrec *nex, ne_nexrec *res);
extern long ne_ievaluate (ne_nexrec *nex, ne_desc *desc);
extern double ne_revaluate (ne_nexrec *nex, ne_desc *desc);
extern char *ne_sevaluate (char *Result, ne_nexrec *nex, ne_desc *desc);
extern long ne_ievalexpr (char *ex, ne_desc *desc);
extern double ne_revalexpr (char *ex, ne_desc *desc);
extern char *ne_sevalexpr (char *Result, char *ex, ne_desc *desc);
extern void ne_makeintconst (strlist_t *sym, long i);
extern void ne_makesrealconst (strlist_t *sym, double r);
extern void ne_makerealconst (strlist_t *sym, double r);
extern void ne_makestrconst (strlist_t *sym, char *s);
extern void ne_makeintvar (strlist_t *sym, long *i);
extern void ne_makerealvar (strlist_t *sym, double *r);
extern void ne_makerealxvar (strlist_t *sym, double *r);
extern void ne_makestrvar (strlist_t *sym, char *s);
extern void ne_makestrptrvar (strlist_t *sym, char **sp);
extern void ne_makeintfunc (strlist_t *sym, ne_datatype t1,
ne_datatype t2, ne_datatype t3,
_PROCEDURE pr);
extern void ne_makerealfunc (strlist_t *sym, ne_datatype t1,
ne_datatype t2, ne_datatype t3,
_PROCEDURE pr);
extern void ne_makestrfunc (strlist_t *sym, ne_datatype t1,
ne_datatype t2, ne_datatype t3,
_PROCEDURE pr);
extern void ne_makeintmfunc (strlist_t *sym, long nargs,
ne_datatype *args, _PROCEDURE pr);
extern void ne_makerealmfunc (strlist_t *sym, long nargs,
ne_datatype *args, _PROCEDURE pr);
extern void ne_makestrmfunc (strlist_t *sym, long nargs,
ne_datatype *args, _PROCEDURE pr);
extern void ne_makeintsfunc (strlist_t *sym, long nargs,
ne_datatype *args, ne_nexrec **nex);
extern void ne_makerealsfunc (strlist_t *sym, long nargs,
ne_datatype *args, ne_nexrec **nex);
extern void ne_makestrsfunc (strlist_t *sym, long nargs,
ne_datatype *args, ne_nexrec **nex);
extern void ne_makeintarg (strlist_t *sym, long i);
extern void ne_makerealarg (strlist_t *sym, long i);
extern void ne_makestrarg (strlist_t *sym, long i);
extern void ne_setminargs (strlist_t *sym, long minargs);
extern void ne_setmaxargs (strlist_t *sym, long maxargs);
extern void ne_makestaticfunc (strlist_t *sym);
extern void ne_disposesym (strlist_t *sym);
extern void ne_disposesymtab (strlist_t **symtab);
extern int ne_condeval (ne_nexrec *nex);
extern long ne_ieval (ne_nexrec *nex);
extern double ne_reval (ne_nexrec *nex);
extern char *ne_seval (char *Result, ne_nexrec *nex);
extern int ne_readreal (char *s, double *r, ne_desc *desc);
#undef vextern
#endif /*NUMEX_H*/
/* End. */
......@@ -104,7 +104,6 @@ OBJS = sysdevs.o \
math.o \
rnd.o \
regex.o \
numex.o \
p2clib.o \
loc.p2clib.o
......@@ -238,7 +237,6 @@ psysinc:
cp ../include/p2c/newasm.h psys/include/p2c
cp ../include/p2c/newcrt.h psys/include/p2c
cp ../include/p2c/regex.h psys/include/p2c
cp ../include/p2c/numex.h psys/include/p2c
cp ../include/p2c/plot.h psys/include/p2c
cp ../include/p2c/plot_routines.h psys/include/p2c
cp ../include/p2c/rnd.h psys/include/p2c
......@@ -260,7 +258,6 @@ psyssrc:
cp newci.c psys/src
cp newcrt.c psys/src
cp newkbd.c psys/src
cp numex.c psys/src
cp p2clib.c psys/src
cp plot.c psys/src
cp plot.font psys/src
......
Ce diff est replié.
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter