diff --git a/basis/unicode/categories/syntax/syntax.factor b/basis/unicode/categories/syntax/syntax.factor index 93f7919b6b..87f143aadc 100644 --- a/basis/unicode/categories/syntax/syntax.factor +++ b/basis/unicode/categories/syntax/syntax.factor @@ -1,6 +1,6 @@ ! Copyright (C) 2008, 2009 Daniel Ehrenberg. ! See http://factorcode.org/license.txt for BSD license. -USING: unicode.data kernel math sequences parser +USING: unicode.data kernel math sequences parser unicode.data.private bit-arrays namespaces sequences.private arrays classes.parser assocs classes.predicate sets fry splitting accessors ; IN: unicode.categories.syntax @@ -10,12 +10,8 @@ SYMBOLS: Cn Lu Ll Lt Lm Lo Mn Mc Me Nd Nl No Pc Pd Ps Pe Pi Pf Po Sm Sc Sk So Zs category-array ( categories -- bitarray ) - categories [ swap member? ] with map >bit-array ; - : [category] ( categories code -- quot ) - [ >category-array ] dip - '[ dup category# _ nth-unsafe [ drop t ] _ if ] ; + '[ dup category# _ member? [ drop t ] _ if ] ; : integer-predicate-class ( word predicate -- ) integer swap define-predicate-class ; @@ -28,7 +24,7 @@ SYMBOLS: Cn Lu Ll Lt Lm Lo Mn Mc Me Nd Nl No Pc Pd Ps Pe Pi Pf Po Sm Sc Sk So Zs : parse-category ( -- word tokens quot ) CREATE-CLASS \ ; parse-until { | } split1 - [ [ name>> ] map ] + [ [ name>> categories-map at ] map ] [ [ [ ] like ] [ [ drop f ] ] if* ] bi* ; PRIVATE>