[BACK]Return to stackm.h CVS log [TXT][DIR] Up to [local] / OpenXM / src / kan96xx / Kan

Diff for /OpenXM/src/kan96xx/Kan/stackm.h between version 1.1 and 1.14

version 1.1, 1999/10/08 02:12:01 version 1.14, 2015/10/08 11:49:37
Line 1 
Line 1 
   /* $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.
Line 7 
Line 8 
 /******************* 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
Line 34 
Line 45 
 #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. */
   
Line 61  union cell {
Line 73  union cell {
   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 97  struct tokens{
Line 114  struct tokens{
   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 */
Line 105  struct tokens{
Line 123  struct 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 149  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

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.14

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>