private void parseBitmapList(String attribute, String value, String bitmap) {
        PositionedString s = new PositionedString(bitmap);
        s.consume('[');
        BigInteger mask = BigInteger.ZERO;
        while (!s.peek(']')) {
            s.consumeSpaces();
            int pos = findNextButSkipLists(new char[]{',',']'}, s.string(), s.position());
            if (pos == -1) {
                break;
            }
            int subqueryIndex = Integer.parseUnsignedInt(s.substring(pos).trim());
            if (subqueryIndex > 63 || subqueryIndex < 0) {
                throw new IllegalArgumentException("Subquery index must be in the range 0-63");
            }
            mask = mask.or(BigInteger.ONE.shiftLeft(subqueryIndex));
            s.setPosition(pos);
            s.consumeOptional(',');
            s.consumeSpaces();
        }
        addAttribute(attribute, value, mask);
    }
Adds attributes with the specified bitmap to normalizer.
@param attribute Attribute to add
@param value Value of attribute
@param bitmap Bitmap as a list of bits, e.g. '[0, 3, 45]'
container-search/src/main/java/com/yahoo/search/querytransform/BooleanAttributeParser.java