@Override
    public Boolean accept(States state, CalculatorReader expressionReader) throws BinaryOperatorException, CalculatorException{
        if (States.FINISH == state) {
            return true;
        } else if (States.RIGHT_BRACKET == state) {
            if (evalBracketClose(expressionReader)) {
                return true;
            }
        } else if (States.NUMBER == state) {
            if (addOperand(expressionReader)) {
                return true;
            }
        } else if (States.LEFT_BRACKET == state) {
            if (addBracketOpen(expressionReader)) {
                return true;
            }
        } else if (States.BINARY_OPERATOR == state) {
            if (addOperator(expressionReader)) {
                return true;
            }
        }
        return null;
    }