| version 1.4, 2004/09/11 12:13:41 |
version 1.13, 2015/10/08 08:14:25 |
|
|
| /* $OpenXM: OpenXM/src/kan96xx/Kan/stackm.h,v 1.3 2003/11/20 09:20:36 takayama Exp $ */ |
/* $OpenXM: OpenXM/src/kan96xx/Kan/stackm.h,v 1.12 2005/07/18 10:55:16 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) |
| |
#else |
| |
#define MYSETJMP(e) setjmp(e) |
| |
#define MYSIGSETJMP(e,f) sigsetjmp(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 */ |
|
|
| char *token; |
char *token; |
| int kind; |
int kind; |
| struct object object; |
struct object object; |
| |
int tflag; |
| }; |
}; |
| |
|
| /* used in kind of tokens */ |
/* used in kind of tokens */ |
|
|
| #define EXECUTABLE_STRING 4 /* strings enclosed by {} */ |
#define EXECUTABLE_STRING 4 /* strings enclosed by {} */ |
| #define EXECUTABLE_ARRAY 8 |
#define EXECUTABLE_ARRAY 8 |
| |
|
| |
/* Used in tflag of tokens, bit wise */ |
| |
#define NO_DELAY 0x2 |
| |
|
| |
|
| /********** macros to use Sarray **********************/ |
/********** macros to use Sarray **********************/ |
| Line 130 if ((ob).tag != Sarray) {fprintf(stderr,"Warning: PUTO |
|
| Line 145 if ((ob).tag != Sarray) {fprintf(stderr,"Warning: PUTO |
|
| #define isNullList(list) ((struct object *)NULL == list) |
#define isNullList(list) ((struct object *)NULL == list) |
| #define NULLLIST (struct object *)NULL |
#define NULLLIST (struct object *)NULL |
| |
|
| /* for dictionary */ |
/* For dictionary, flag bit */ |
| #define SET_ATTR_FOR_ALL_WORDS 0x10 |
#define SET_ATTR_FOR_ALL_WORDS 0x10 |
| |
#define OR_ATTR_FOR_ALL_WORDS 0x20 |
| #define PROTECT 0x1 |
#define PROTECT 0x1 |
| #define ABSOLUTE_PROTECT 0x2 |
#define ABSOLUTE_PROTECT 0x2 |
| #define ATTR_INFIX 0x4 |
#define ATTR_INFIX 0x4 |
| |
#define ATTR_EXPORT 0x8 |
| |
|
| /* For status */ |
/* For status, flag bit */ |
| #define STATUS_EOF -1 |
#define STATUS_EOF -1 |
| #define STATUS_BREAK 0x1 |
#define STATUS_BREAK 0x1 |
| #define STATUS_INFIX 0x2 |
#define STATUS_INFIX 0x2 |
| Line 144 if ((ob).tag != Sarray) {fprintf(stderr,"Warning: PUTO |
|
| Line 161 if ((ob).tag != Sarray) {fprintf(stderr,"Warning: PUTO |
|
| |
|
| typedef enum {CCPUSH,CCPOP,CCRESTORE} actionOfContextControl; |
typedef enum {CCPUSH,CCPOP,CCRESTORE} actionOfContextControl; |
| |
|
| |
#define SCANNERBUF_SIZE 240 |