Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 9ad30998e99ca4d991f22244c7c0aa66c15c962a
  • develop par défaut
  • renovate/configure
  • rebase-v4
  • cherry-pick-moise protégée
5 résultats

matrixeventprocessor.ts

Blame
  • p2c.h 6,98 Kio
    #ifndef P2C_H
    #define P2C_H
    
    #include <stdio.h>
    
    # include <stddef.h>
    # include <stdlib.h>
    
    #include <string.h>
    
    #ifdef __linux__
    #include <unistd.h>
    #endif
    
    
    #include <ctype.h>
    #include <math.h>
    #include <setjmp.h>
    #include <assert.h>
    #include <stdbool.h>
    
    # define log1p(X) log(1+(X))
    
    typedef struct __p2c_jmp_buf {
        struct __p2c_jmp_buf *next;
        jmp_buf jbuf;
    } __p2c_jmp_buf;
    
    
    /* Warning: The following will not work if setjmp is used simultaneously.
       This also violates the ANSI restriction about using vars after longjmp,
       but a typical implementation of longjmp will get it right anyway. */
    #ifndef FAKE_TRY
    # define TRY(x)         do { __p2c_jmp_buf __try_jb;  \
    			     __try_jb.next = __top_jb;  \
    			     if (!setjmp((__top_jb = &__try_jb)->jbuf)) {
    # define RECOVER(x)	__top_jb = __try_jb.next; } else {
    # define RECOVER2(x,L)  __top_jb = __try_jb.next; } else {  \
    			     if (0) { L: __top_jb = __try_jb.next; }
    # define ENDTRY(x)      } } while (0) 
    #else
    # define TRY(x)         if (1) {
    # define RECOVER(x)     } else do {
    # define RECOVER2(x,L)  } else do { L: ;
    # define ENDTRY(x)      } while (0)
    #endif
    
    
    #define SETBITS  32
    
    typedef signed char schar;
    typedef unsigned char uchar;
    
    typedef struct {
        void* proc;
    	void* link;
    } _PROCEDURE;
    
    #ifndef _FNSIZE
    # define _FNSIZE  120
    #endif
    
    
    extern void    PASCAL_MAIN   (int, char **);
    extern char    **P_argv;
    extern int     P_argc;
    extern short   P_escapecode;
    extern int     P_ioresult;
    extern __p2c_jmp_buf *__top_jb;
    extern int     bigendian;
    
    extern int      _OutMem     ();
    extern int      _CaseCheck  ();
    extern int      _NilCheck   ();
    extern char   *_ShowEscape   (char *, int, int, char *);
    extern int	_Escape      (int);
    extern int	_EscIO       (int);
    
    extern int      microsleep    (long);
    extern long     ipow         (long, long);
    extern char    *strsub       (char *, char *, int, int);
    extern char    *strltrim     (char *);
    extern char    *strrtrim     (char *);
    extern char    *strrpt       (char *, char *, int);
    extern char    *strpad       (char *, char *, int, int);
    extern int      strpos2      (char *, char *, int);
    extern void    strmove      (int len, char * s, int spos, char * d, int dpos);
    extern int     strcicmp     (char * s1, char * s2);
    extern long     memavail    ();
    extern int      P_peek       (FILE *);
    extern int      P_eof        (FILE *);
    extern int      P_eoln       (FILE *);
    extern void     P_readpaoc   (FILE *, char *, int);
    extern void     P_readlnpaoc  (FILE *, char *, int);
    extern long     P_maxpos     (FILE *);
    extern char    *P_trimname   (char *, int);
    extern long    *P_setunion   (long *, long *, long *);
    extern long    *P_setint     (long *, long *, long *);
    extern long    *P_setdiff    (long *, long *, long *);
    extern long    *P_setxor     (long *, long *, long *);
    extern int      P_inset      (unsigned, long *);
    extern int      P_setequal   (long *, long *);
    extern int      P_subset     (long *, long *);
    extern long    *P_addset     (long *, unsigned);
    extern long    *P_addsetr    (long *, unsigned, unsigned);
    extern long    *P_remset     (long *, unsigned);
    extern long    *P_setcpy     (long *, long *);
    extern long    *P_expset     (long *, long);
    extern long     P_packset    (long *);
    extern int      P_getcmdline  (int l, int h, char *line);
    extern void     TimeStamp    (int *Day, int *Month, int *Year,
    				 int *Hour, int *Min, int *Sec);
    extern void	P_sun_argv   (char *, int, int);
    
    extern void     _local_p2c_init (void);
    
    
    /* I/O error handling */
    #define _CHKIO(cond,ior,val,def)  ((cond) ? P_ioresult=0,(val)  \
    					  : P_ioresult=(ior),(def))
    #define _SETIO(cond,ior)          (P_ioresult = (cond) ? 0 : (ior))
    
    /* Following defines are suitable for the HP Pascal operating system */
    #define FileNotFound     10
    #define FileNotOpen      13
    #define FileWriteError   38
    #define BadInputFormat   14
    #define EndOfFile        30
    
    /* Creating temporary files */
    
    /* File buffers */
    #define FILEBUF(f,sc,type) sc int f##_BFLAGS;   \
    			   sc type f##_BUFFER
    #define FILEBUFNC(f,type)  int f##_BFLAGS;   \
    			   type f##_BUFFER
    
    #define RESETBUF(f,type)   (f##_BFLAGS = 1)
    #define SETUPBUF(f,type)   (f##_BFLAGS = 0)
    
    #define GETFBUF(f,type)    (*((f##_BFLAGS == 1 &&   \
    			       ((f##_BFLAGS = 2),   \
    				fread(&f##_BUFFER,  \
    				      sizeof(type),1,(f)))),\
    			      &f##_BUFFER))
    #define AGETFBUF(f,type)   (f##_BFLAGS == 1 &&   \
    			     ((f##_BFLAGS = 2),   \
    			      fread(f,_BUFFER,  \
    				    sizeof(type),1,(f)))),\
    			    f,_BUFFER)
    
    #define PUTFBUF(f,type,v)  (GETFBUF(f,type) = (v))
    #define CPUTFBUF(f,v)      (PUTFBUF(f,char,v))
    #define APUTFBUF(f,type,v) (memcpy(AGETFBUF(f,type), (v),  \
    				   sizeof(f,_BUFFER)))
    
    #define GET(f,type)        (f##_BFLAGS == 1 ?   \
    			    fread(&f##_BUFFER,sizeof(type),1,(f)) :  \
    			    (f##_BFLAGS = 1))
    
    #define PUT(f,type)        (fwrite(&f##_BUFFER,sizeof(type),1,(f)),  \
    			    (f##_BFLAGS = 0))
    #define CPUT(f)            (PUT(f,char))
    
    #define BUFEOF(f)	   (f##_BFLAGS != 2 && P_eof(f))
    #define BUFFPOS(f)	   (ftell(f) - (f##_BFLAGS == 2))
    
    typedef struct {
        FILE *f;
        FILEBUFNC(f,char);
        char name[_FNSIZE];
    } _TEXT;
    
    /* Memory allocation */
    # define Malloc(n)  (malloc((n != 0) ? (n) : 1) ?: (void*)_OutMem())
    #define Free(p)     (free((void*)(p)), (p)=NULL)
    
    /* sign extension */
    #define SEXT(x,n)   ((x) | -(((x) & (1L<<((n)-1))) << 1))
    
    /* packed arrays */   /* BEWARE: these are untested! */
    #define P_getbits_UB(a,i,n,L)   ((int)((a)[(i)>>((L)-(n))] >>   \
    				       (((~(i))&((1<<((L)-(n)))-1)) << (n)) &  \
    				       (1<<(1<<(n)))-1))
    
    #define P_getbits_SB(a,i,n,L)   ((int)((a)[(i)>>((L)-(n))] <<   \
    				       (16 - ((((~(i))&((1<<((L)-(n)))-1))+1) <<\
    					      (n)) >> (16-(1<<(n))))))
    
    #define P_putbits_UB(a,i,x,n,L) ((a)[(i)>>((L)-(n))] |=   \
    				 (x) << (((~(i))&((1<<((L)-(n)))-1)) << (n)))
    
    #define P_putbits_SB(a,i,x,n,L) ((a)[(i)>>((L)-(n))] |=   \
    				 ((x) & (1<<(1<<(n)))-1) <<   \
    				 (((~(i))&((1<<((L)-(n)))-1)) << (n)))
    
    #define P_clrbits_B(a,i,n,L)    ((a)[(i)>>((L)-(n))] &=   \
    				 ~( ((1<<(1<<(n)))-1) <<   \
    				   (((~(i))&((1<<((L)-(n)))-1)) << (n))) )
    
    /* small packed arrays */
    #define P_getbits_US(v,i,n)     ((int)((v) >> ((i)<<(n)) & (1<<(1<<(n)))-1))
    #define P_getbits_SS(v,i,n)     ((int)((long)(v) << (SETBITS - (((i)+1) << (n))) >> (SETBITS-(1<<(n)))))
    #define P_putbits_US(v,i,x,n)   ((v) |= (x) << ((i) << (n)))
    #define P_putbits_SS(v,i,x,n)   ((v) |= ((x) & (1<<(1<<(n)))-1) << ((i)<<(n)))
    #define P_clrbits_S(v,i,n)      ((v) &= ~( ((1<<(1<<(n)))-1) << ((i)<<(n)) ))
    
    #define P_max(a,b)   ((a) > (b) ? (a) : (b))
    #define P_min(a,b)   ((a) < (b) ? (a) : (b))
    
    /* Funcition for compiler warnings*/
    #ifdef __GNUC__
    #define DEPRECATED __attribute__((deprecated))
    #else
    /**
     * Deprecated functions
     *
     * Use this macro in front of a function declaration to say the function is deprecated.
     * The compiler may emit a warning every time the function is used
     */
    #define DEPRECATED
    #endif
    
    #endif    /* P2C_H */
    
    /* ifdefs for microsleep here */
    
    #define BSDMICROSLEEP
    
    #if !defined(L_cuserid)
    #define L_cuserid 32
    extern char * cuserid(char *);
    #endif
    
    /* End. */