>From b63e1fd39b258b5de4a71d387fce6007f62355d4 Mon Sep 17 00:00:00 2001 From: Peter Bex Date: Sun, 16 Sep 2012 20:11:06 +0200 Subject: [PATCH 4/4] Irregex: Convert strings with charset ranges into large SRE ranges instead of alternation of several ranges, producing smaller NFAs. (upstream changeset e8822a0dbf06) --- irregex-core.scm | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) diff --git a/irregex-core.scm b/irregex-core.scm index e0fc210..18bb50a 100644 --- a/irregex-core.scm +++ b/irregex-core.scm @@ -3656,9 +3656,10 @@ (%irregex-error "not a valid sre char-set" sre))))))) (define (cset->sre cset) - (sre-alternate - (map (lambda (x) (list '/ (car x) (cdr x))) - (vector->list cset)))) + (cons '/ + (fold (lambda (x res) (cons (car x) (cons (cdr x) res))) + '() + (vector->list cset)))) (define (cset-contains? cset ch) (let ((len (vector-length cset))) -- 1.7.9.1