34 lines
897 B
C
34 lines
897 B
C
/*
|
|
* (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands.
|
|
* See the copyright notice in the ACK home directory, in the file "Copyright".
|
|
*
|
|
*/
|
|
|
|
/*
|
|
* L L G E N
|
|
*
|
|
* An Extended LL(1) Parser Generator
|
|
*
|
|
* Author : Ceriel J.H. Jacobs
|
|
*/
|
|
|
|
/*
|
|
* sets.h $Header$
|
|
* Some macros that deal with bitsets and their size
|
|
*/
|
|
|
|
# define BITS (8 * sizeof (int))
|
|
# define IN(a,i) ((a)[(i)/BITS] & (1<<((i) % BITS)))
|
|
# define NTIN(a,i) ((a)[(i)/BITS+tsetsize]&(1<<((i)%BITS)))
|
|
# define PUTIN(a,i) ((a)[(i)/BITS] |=(1<<((i) % BITS)))
|
|
# define NTPUTIN(a,i) ((a)[(i)/BITS+tsetsize]|=(1<<((i)%BITS)))
|
|
# define NBYTES(n) (((n) + 7) / 8)
|
|
/*
|
|
* The next two macros operate on byte counts!
|
|
*/
|
|
# define NINTS(n) (((n) + (int) (sizeof(int) - 1)) / (int) sizeof(int))
|
|
# define ALIGN(n) (NINTS(n) * (int) sizeof (int))
|
|
|
|
extern int tsetsize;
|
|
extern p_set *setptr, *maxptr;
|
|
extern int nbytes;
|