ack/util/LLgen/src/sets.h

34 lines
906 B
C
Raw Normal View History

/* Copyright (c) 1991 by the Vrije Universiteit, Amsterdam, the Netherlands.
1995-07-31 09:17:14 +00:00
* For full copyright and restrictions on use see the file COPYING in the top
1995-07-31 09:10:42 +00:00
* level of the LLgen tree.
1984-10-08 14:14:53 +00:00
*/
/*
* L L G E N
*
* An Extended LL(1) Parser Generator
*
* Author : Ceriel J.H. Jacobs
*/
/*
1994-06-24 11:31:16 +00:00
* $Id$
1984-10-08 14:14:53 +00:00
* 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)))
1984-10-08 14:14:53 +00:00
# define PUTIN(a,i) ((a)[(i)/BITS] |=(1<<((i) % BITS)))
# define NTPUTIN(a,i) ((a)[(i)/BITS+tsetsize]|=(1<<((i)%BITS)))
1984-10-08 14:14:53 +00:00
# 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;