version 1.2, 2000/01/16 07:55:41 |
version 1.10, 2005/06/15 02:22:51 |
|
|
/* $OpenXM$ */ |
/* $OpenXM: OpenXM/src/kan96xx/Kan/stackm.h,v 1.9 2005/06/09 04:47: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. |
|
|
#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. */ |
}; |
}; |
|
|
struct dictionary { |
struct dictionary { |
|
|
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 137 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; |
|
|