private int parseB() {
        Token token = skipWhitespace();
        switch (token.type) {
        case RIGHT_PAREN:
            return 0;
        case DELIM:
            switch (token.value) {
            case "+":
                return parseSignlessB(1);
            case "-":
                return parseSignlessB(-1);
            }

            break;
        case NUMBER:
            Token.Number n = (Token.Number) token;
            if (n.integer && hasSignPrefix(n.value) && matchClosingParen()) {
                return Integer.parseInt(n.value);
            }

            break;
        }

        throw error;
    }