00001
00002 #define ABS(x) ((x)>=0?(x):-(x))
00003 #define MIN(a,b) (((a)<(b))?(a):(b))
00004 #define MAX(a,b) (((a)>(b))?(a):(b))
00005
00006
00007 #define NSCRAT 8196
00008 #define MAX_USER_SUBRS 900
00009 #define MAX_USER_FUNCS 600
00010 #define MAX_USER_BLOCKS 600
00011 #define MXNEST 5
00012 #define ANA_SUBSC_FUN 1
00013 #define ANA_POW_FUN 3
00014 typedef unsigned char byte;
00015 struct sdesc { int n; byte *p; };
00016
00017
00018
00019 struct sym_desc { byte class,type; short xx;
00020 union { union { byte b; short w; int l; float f; double d;} scalar;
00021 struct { int *ptr; int bstore; } array;
00022 struct { short args[4]; } evb;
00023 struct { short args[4]; } edb; } spec;};
00024
00025
00026 struct ana_subr_struct {
00027 char *name;
00028 int minargs;
00029 int maxargs;
00030 int (*ptr)();
00031 };
00032
00033 struct ahead { byte ndim, c1, c2, c3;
00034
00035 int dims[8];
00036 struct flist *facts;};
00037
00038 struct flist { int type;
00039
00040 union { byte b; short w; int l; float f; double d;} value;
00041 struct flist *next; };
00042
00043 union scalar { byte b; short w; int l; float f; double d; };
00044
00045 struct user_subr_table {
00046 char *name; char *line; int num; struct user_subr_table *next; };
00047
00048 struct sym_list { int num; struct sym_list *next; };