1 /* Copyright (c) 2012-2017 The ANTLR Project. All rights reserved.
2 * Use of this file is governed by the BSD 3-clause license that
3 * can be found in the LICENSE.txt file in the project root.
8 #include "antlr4-common.h"
12 class ANTLR4CPP_PUBLIC BitSet : public std::bitset<2048> {
14 size_t nextSetBit(size_t pos) const {
15 for (size_t i = pos; i < size(); i++){
24 // Prints a list of every index for which the bitset contains a bit in true.
25 friend std::wostream& operator << (std::wostream& os, const BitSet& obj)
28 size_t total = obj.count();
29 for (size_t i = 0; i < obj.size(); i++){
43 static std::string subStringRepresentation(const std::vector<BitSet>::iterator &begin,
44 const std::vector<BitSet>::iterator &end) {
46 std::vector<BitSet>::iterator vectorIterator;
48 for (vectorIterator = begin; vectorIterator != end; vectorIterator++) {
49 result += vectorIterator->toString();
52 result += end->toString();
57 std::string toString(){
58 std::stringstream stream;
60 bool valueAdded = false;
61 for (size_t i = 0; i < size(); ++i){