version 1.7, 2004/09/16 23:53:44 |
version 1.14, 2015/10/08 11:49:37 |
|
|
/* $OpenXM: OpenXM/src/kan96xx/Kan/stackm.h,v 1.6 2004/09/12 00:26:21 takayama Exp $ */ |
/* $OpenXM: OpenXM/src/kan96xx/Kan/stackm.h,v 1.13 2015/10/08 08:14:25 takayama Exp $ */ |
#define LOAD_SM1_PATH "/usr/local/lib/sm1/" |
#define LOAD_SM1_PATH "/usr/local/lib/sm1/" |
/* Do not forget to put / at the tail. |
/* Do not forget to put / at the tail. |
"/usr/local/lib/sm1" does not work. |
"/usr/local/lib/sm1" does not work. |
|
|
/******************* stackm.h ******************************/ |
/******************* stackm.h ******************************/ |
#include <setjmp.h> |
#include <setjmp.h> |
|
|
|
#if defined(__CYGWIN__) || defined(__MSYS__) |
|
#define MYSETJMP(e) _setjmp(e) |
|
#define MYSIGSETJMP(e,f) _setjmp(e) |
|
#define MYLONGJMP(e,f) _longjmp(e,f) |
|
#define MYSIGLONGJMP(e,f) _longjmp(e,f) |
|
#else |
|
#define MYSETJMP(e) setjmp(e) |
|
#define MYSIGSETJMP(e,f) sigsetjmp(e,f) |
|
#define MYLONGJMP(e,f) longjmp(e,f) |
|
#define MYSIGLONGJMP(e,f) siglongjmp(e,f) |
|
#endif |
|
|
/**** data types (class identifiers) ************/ |
/**** data types (class identifiers) ************/ |
/* Never change the following orders. |
/* Never change the following orders. |
If you add a new class, add that class at the bottom and give the |
If you add a new class, add that class at the bottom and give the |
|
|
#define SrationalFunction 16 |
#define SrationalFunction 16 |
#define Sclass 17 /* class, for extension */ |
#define Sclass 17 /* class, for extension */ |
#define Sdouble 18 |
#define Sdouble 18 |
|
#define SbyteArray 19 |
|
|
#define TYPES 19 /* number of data types. */ |
#define TYPES 20 /* number of data types. */ |
/* NOTE! If you change the above, you need to change mklookup.c too. */ |
/* NOTE! If you change the above, you need to change mklookup.c too. */ |
/* Change also dr.sm1 : datatype constants. */ |
/* Change also dr.sm1 : datatype constants. */ |
|
|
|
|
struct coeff *universalNumber; |
struct coeff *universalNumber; |
void *voidp; |
void *voidp; |
double *dbl; |
double *dbl; |
|
unsigned char *bytes; |
}; |
}; |
|
|
struct object{ |
struct object{ |
int tag; /* class identifier */ |
int tag; /* class identifier */ |
union cell lc; /* left cell */ |
union cell lc; /* left cell */ |
union cell rc; /* right cell */ |
union cell rc; /* right cell */ |
|
struct object *attr; /* Attribute list. See misc-2005/06/gfan/test1.sm1 |
|
as to performance test. */ |
}; |
}; |
|
|
|
#define OINIT { .attr = NULL} |
|
|
struct dictionary { |
struct dictionary { |
char *key; |
char *key; |
int h0; /* Value of hash functions */ |
int h0; /* Value of hash functions */ |
Line 149 if ((ob).tag != Sarray) {fprintf(stderr,"Warning: PUTO |
|
Line 165 if ((ob).tag != Sarray) {fprintf(stderr,"Warning: PUTO |
|
|
|
typedef enum {CCPUSH,CCPOP,CCRESTORE} actionOfContextControl; |
typedef enum {CCPUSH,CCPOP,CCRESTORE} actionOfContextControl; |
|
|
|
#define SCANNERBUF_SIZE 240 |