Making unicode.categories.syntax use member?, simplifying the code

db4
Daniel Ehrenberg 2009-03-21 03:17:20 -05:00
parent d6f9947bff
commit 4f83e2057a
1 changed files with 3 additions and 7 deletions

View File

@ -1,6 +1,6 @@
! Copyright (C) 2008, 2009 Daniel Ehrenberg. ! Copyright (C) 2008, 2009 Daniel Ehrenberg.
! See http://factorcode.org/license.txt for BSD license. ! 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 bit-arrays namespaces sequences.private arrays classes.parser
assocs classes.predicate sets fry splitting accessors ; assocs classes.predicate sets fry splitting accessors ;
IN: unicode.categories.syntax 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
<PRIVATE <PRIVATE
: >category-array ( categories -- bitarray )
categories [ swap member? ] with map >bit-array ;
: [category] ( categories code -- quot ) : [category] ( categories code -- quot )
[ >category-array ] dip '[ dup category# _ member? [ drop t ] _ if ] ;
'[ dup category# _ nth-unsafe [ drop t ] _ if ] ;
: integer-predicate-class ( word predicate -- ) : integer-predicate-class ( word predicate -- )
integer swap define-predicate-class ; 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 ) : parse-category ( -- word tokens quot )
CREATE-CLASS \ ; parse-until { | } split1 CREATE-CLASS \ ; parse-until { | } split1
[ [ name>> ] map ] [ [ name>> categories-map at ] map ]
[ [ [ ] like ] [ [ drop f ] ] if* ] bi* ; [ [ [ ] like ] [ [ drop f ] ] if* ] bi* ;
PRIVATE> PRIVATE>