From df7ee85dafbfe1d65f3acd7b61daf35e58298d5e Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Mon, 10 Oct 2011 21:08:45 -0700 Subject: [PATCH] regexp.classes: remove dependency on mirrors vocab --- basis/regexp/classes/classes.factor | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/basis/regexp/classes/classes.factor b/basis/regexp/classes/classes.factor index fd4c7e7e4f..f81962f5d8 100644 --- a/basis/regexp/classes/classes.factor +++ b/basis/regexp/classes/classes.factor @@ -1,9 +1,9 @@ ! Copyright (C) 2008, 2009 Doug Coleman, Daniel Ehrenberg. ! See http://factorcode.org/license.txt for BSD license. -USING: accessors kernel math math.order words combinators locals -unicode.categories combinators.short-circuit sequences -fry macros arrays assocs sets classes mirrors unicode.script -unicode.data ; +USING: accessors kernel math math.order words combinators +combinators.smart combinators.short-circuit locals +unicode.categories sequences fry macros arrays assocs sets +classes unicode.script unicode.data ; FROM: ascii => ascii? ; FROM: sets => members ; IN: regexp.classes @@ -168,7 +168,17 @@ TUPLE: class-partition integers not-integers simples not-simples and or other ; class-partition boa ; : class-partition>seq ( class-partition -- seq ) - make-mirror values concat ; + [ + { + [ integers>> ] + [ not-integers>> ] + [ simples>> ] + [ not-simples>> ] + [ and>> ] + [ or>> ] + [ other>> ] + } cleave + ] output>array concat ; : repartition ( partition -- partition' ) ! This could be made more efficient; only and and or are effected