From 49af5a1ac02461c23c080f8f3cdf26868409610f Mon Sep 17 00:00:00 2001 From: Doug Coleman <doug.coleman@gmail.com> Date: Tue, 18 Nov 2008 15:10:24 -0600 Subject: [PATCH] add support for [\\w] and [\\W] --- basis/regexp/classes/classes.factor | 4 ++++ basis/regexp/regexp-tests.factor | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/basis/regexp/classes/classes.factor b/basis/regexp/classes/classes.factor index a2d91b97fb..240b27a9cc 100644 --- a/basis/regexp/classes/classes.factor +++ b/basis/regexp/classes/classes.factor @@ -30,6 +30,10 @@ M: ascii-class class-member? ( obj class -- ? ) M: digit-class class-member? ( obj class -- ? ) drop digit? ; +M: c-identifier-class class-member? ( obj class -- ? ) + drop + { [ digit? ] [ Letter? ] [ CHAR: _ = ] } 1|| ; + M: alpha-class class-member? ( obj class -- ? ) drop alpha? ; diff --git a/basis/regexp/regexp-tests.factor b/basis/regexp/regexp-tests.factor index 2a6c0dc16f..3e7d83a12b 100644 --- a/basis/regexp/regexp-tests.factor +++ b/basis/regexp/regexp-tests.factor @@ -46,6 +46,14 @@ IN: regexp-tests [ t ] [ "a" ".+" <regexp> matches? ] unit-test [ t ] [ "ab" ".+" <regexp> matches? ] unit-test +[ t ] [ " " "[\\s]" <regexp> matches? ] unit-test +[ f ] [ "a" "[\\s]" <regexp> matches? ] unit-test +[ f ] [ " " "[\\S]" <regexp> matches? ] unit-test +[ t ] [ "a" "[\\S]" <regexp> matches? ] unit-test +[ f ] [ " " "[\\w]" <regexp> matches? ] unit-test +[ t ] [ "a" "[\\w]" <regexp> matches? ] unit-test +[ t ] [ " " "[\\W]" <regexp> matches? ] unit-test +[ f ] [ "a" "[\\W]" <regexp> matches? ] unit-test [ t ] [ "" "a|b*|c+|d?" <regexp> matches? ] unit-test [ t ] [ "a" "a|b*|c+|d?" <regexp> matches? ] unit-test