version 1.1, 1999/10/08 02:12:01 |
version 1.13, 2015/10/08 08:14:25 |
|
|
|
/* $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 129 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_EXPORT 0x8 |
|
|
|
/* For status, flag bit */ |
|
#define STATUS_EOF -1 |
|
#define STATUS_BREAK 0x1 |
|
#define STATUS_INFIX 0x2 |
|
#define DO_QUOTE 0x10 |
|
|
typedef enum {CCPUSH,CCPOP,CCRESTORE} actionOfContextControl; |
typedef enum {CCPUSH,CCPOP,CCRESTORE} actionOfContextControl; |
|
|
|
#define SCANNERBUF_SIZE 240 |