X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/7086e7071e8bfa2012e9134530a158c88a832ba6..041308d0c03783c51ef362f888c957cd2a0e129a:/lib/bitsetv.h?ds=sidebyside diff --git a/lib/bitsetv.h b/lib/bitsetv.h index cac4eb07..34e16042 100644 --- a/lib/bitsetv.h +++ b/lib/bitsetv.h @@ -1,20 +1,21 @@ /* Bitset vectors. - Copyright (C) 2002 Free Software Foundation, Inc. + + Copyright (C) 2002, 2004, 2009-2012 Free Software Foundation, Inc. + Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz). -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ #ifndef _BITSETV_H #define _BITSETV_H @@ -25,25 +26,35 @@ typedef bitset * bitsetv; /* Create a vector of N_VECS bitsets, each of N_BITS, and of type TYPE. */ -extern bitsetv bitsetv_alloc PARAMS ((unsigned int, unsigned int, - enum bitset_type)); +extern bitsetv bitsetv_alloc (bitset_bindex, bitset_bindex, enum bitset_type); /* Create a vector of N_VECS bitsets, each of N_BITS, and with attribute hints specified by ATTR. */ -extern bitsetv bitsetv_create PARAMS ((unsigned int, unsigned int, - unsigned int)); +extern bitsetv bitsetv_create (bitset_bindex, bitset_bindex, unsigned int); /* Free vector of bitsets. */ -extern void bitsetv_free PARAMS ((bitsetv)); +extern void bitsetv_free (bitsetv); /* Zero vector of bitsets. */ -extern void bitsetv_zero PARAMS ((bitsetv, unsigned int)); +extern void bitsetv_zero (bitsetv); /* Set vector of bitsets. */ -extern void bitsetv_ones PARAMS ((bitsetv, unsigned int)); +extern void bitsetv_ones (bitsetv); + +/* Given a vector BSETV of N bitsets of size N, modify its contents to + be the transitive closure of what was given. */ +extern void bitsetv_transitive_closure (bitsetv); + +/* Given a vector BSETV of N bitsets of size N, modify its contents to + be the reflexive transitive closure of what was given. This is + the same as transitive closure but with all bits on the diagonal + of the bit matrix set. */ +extern void bitsetv_reflexive_transitive_closure (bitsetv); /* Dump vector of bitsets. */ -extern void bitsetv_dump PARAMS ((FILE *, const char *, - const char *, bitsetv, - unsigned int)); +extern void bitsetv_dump (FILE *, const char *, const char *, bitsetv); + +/* Function to debug vector of bitsets from debugger. */ +extern void debug_bitsetv (bitsetv); + #endif /* _BITSETV_H */