aboutsummaryrefslogtreecommitdiff
path: root/lib/bitsetv.h
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-03 19:29:17 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-03 19:29:17 -0800
commitcea198a11f15a2eb071d98491ca9a8bc8cebfbc4 (patch)
treebbb428d958c5d908c53239a56a30f72a519b8471 /lib/bitsetv.h
parent5a23b9fcc3a82c4580e115cb4835d796b7995d0c (diff)
downloadbison-cea198a11f15a2eb071d98491ca9a8bc8cebfbc4.tar.gz
Diffstat (limited to 'lib/bitsetv.h')
-rw-r--r--lib/bitsetv.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/lib/bitsetv.h b/lib/bitsetv.h
new file mode 100644
index 00000000..652f9e39
--- /dev/null
+++ b/lib/bitsetv.h
@@ -0,0 +1,59 @@
+/* Bitset vectors.
+ Copyright (C) 2002, 2004 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 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
+
+#ifndef _BITSETV_H
+#define _BITSETV_H
+
+#include "bitset.h"
+
+typedef bitset * bitsetv;
+
+/* Create a vector of N_VECS bitsets, each of N_BITS, and of
+ type 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 (bitset_bindex, bitset_bindex, unsigned int);
+
+/* Free vector of bitsets. */
+extern void bitsetv_free (bitsetv);
+
+/* Zero vector of bitsets. */
+extern void bitsetv_zero (bitsetv);
+
+/* Set vector of bitsets. */
+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 (FILE *, const char *, const char *, bitsetv);
+
+/* Function to debug vector of bitsets from debugger. */
+extern void debug_bitsetv (bitsetv);
+
+#endif /* _BITSETV_H */