Module: common-dylan-internals Copyright: Original Code is Copyright (c) 1995-2004 Functional Objects, Inc. All rights reserved. License: Functional Objects Library Public License Version 1.0 Dual-license: GNU Lesser General Public License Warranty: Distributed WITHOUT WARRANTY OF ANY KIND ////////////////////////////////////////////////////////////////////////////// // validating bit numbers define inline function valid-bit-number? (bit :: ) (0 <= bit) & (bit < word-size()); end; define sealed abstract class () constant slot bit-number :: , required-init-keyword: bit-number:; end class; // This slot is not actually needed, but keep it for the keyword... ignore(bit-number); ////////////////////////////////////////////////////////////////////////////// // checking shift quantity define inline function check-shift-quantity (count :: ) unless (valid-bit-number?(count)) invalid-shift-quantity(count); end unless; end; define sealed class () end class; define sealed domain make (singleton()); define sealed domain initialize (); // --- need report method for define function invalid-shift-quantity (count :: ) error(make(, bit-number: count)); end; ////////////////////////////////////////////////////////////////////////////// // checking logbit? index define inline function check-bit-index (index :: ) unless (valid-bit-number?(index)) invalid-bit-index(index); end unless; end; define sealed class () end class; define sealed domain make (singleton()); define sealed domain initialize (); // --- need report method for define function invalid-bit-index (index :: ) error(make(, bit-number: index)); end;