! Copyright (C) 2008 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: arrays kernel kernel.private math sequences sequences.private growable bit-arrays prettyprint.backend parser ; IN: bit-vectors vector ( bit-array length -- bit-vector ) bit-vector boa ; inline PRIVATE> : ( n -- bit-vector ) 0 bit-array>vector ; inline : >bit-vector ( seq -- bit-vector ) ?V{ } clone-like ; M: bit-vector like drop dup bit-vector? [ dup bit-array? [ dup length bit-array>vector ] [ >bit-vector ] if ] unless ; M: bit-vector new-sequence drop [ ] keep >fixnum bit-array>vector ; M: bit-vector equal? over bit-vector? [ sequence= ] [ 2drop f ] if ; M: bit-array new-resizable drop ; INSTANCE: bit-vector growable : ?V \ } [ >bit-vector ] parse-literal ; parsing M: bit-vector pprint-delims drop \ ?V{ \ } ;