From 6397a2f789398896775906c509bacfc4d130b287 Mon Sep 17 00:00:00 2001 From: Doug Coleman <doug.coleman@gmail.com> Date: Tue, 18 Nov 2008 15:57:32 -0600 Subject: [PATCH 1/5] move state-tables to basis --- {extra => basis}/state-tables/authors.txt | 0 {extra => basis}/state-tables/state-tables-tests.factor | 0 {extra => basis}/state-tables/state-tables.factor | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename {extra => basis}/state-tables/authors.txt (100%) rename {extra => basis}/state-tables/state-tables-tests.factor (100%) rename {extra => basis}/state-tables/state-tables.factor (100%) diff --git a/extra/state-tables/authors.txt b/basis/state-tables/authors.txt similarity index 100% rename from extra/state-tables/authors.txt rename to basis/state-tables/authors.txt diff --git a/extra/state-tables/state-tables-tests.factor b/basis/state-tables/state-tables-tests.factor similarity index 100% rename from extra/state-tables/state-tables-tests.factor rename to basis/state-tables/state-tables-tests.factor diff --git a/extra/state-tables/state-tables.factor b/basis/state-tables/state-tables.factor similarity index 100% rename from extra/state-tables/state-tables.factor rename to basis/state-tables/state-tables.factor From 535a9223bd11fe2a773837a30ef977630f7eef2f Mon Sep 17 00:00:00 2001 From: Doug Coleman <doug.coleman@gmail.com> Date: Tue, 18 Nov 2008 15:57:48 -0600 Subject: [PATCH 2/5] remove bogus dependency on vars --- basis/regexp/backend/backend.factor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basis/regexp/backend/backend.factor b/basis/regexp/backend/backend.factor index 1a261fb0af..75a010b705 100644 --- a/basis/regexp/backend/backend.factor +++ b/basis/regexp/backend/backend.factor @@ -1,6 +1,6 @@ ! Copyright (C) 2008 Doug Coleman. ! See http://factorcode.org/license.txt for BSD license. -USING: accessors hashtables kernel math state-tables vars vectors ; +USING: accessors hashtables kernel math state-tables vectors ; IN: regexp.backend TUPLE: regexp From 860bd1923bbd88f2f840dad20676727e0d40053f Mon Sep 17 00:00:00 2001 From: Doug Coleman <doug.coleman@gmail.com> Date: Tue, 18 Nov 2008 15:59:20 -0600 Subject: [PATCH 3/5] fix stack effect --- basis/regexp/regexp.factor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/basis/regexp/regexp.factor b/basis/regexp/regexp.factor index 083a48a470..e99077f4aa 100644 --- a/basis/regexp/regexp.factor +++ b/basis/regexp/regexp.factor @@ -28,7 +28,7 @@ IN: regexp : match ( string regexp -- pair ) <dfa-traverser> do-match return-match ; -: match* ( string regexp -- pair ) +: match* ( string regexp -- pair captured-groups ) <dfa-traverser> do-match [ return-match ] [ captured-groups>> ] bi ; : matches? ( string regexp -- ? ) From 239bfeafda8f1da53c58da86e7663c87cf5d33d4 Mon Sep 17 00:00:00 2001 From: Doug Coleman <doug.coleman@gmail.com> Date: Tue, 18 Nov 2008 16:06:56 -0600 Subject: [PATCH 4/5] fix "\\/" <regexp> --- basis/regexp/parser/parser.factor | 1 + basis/regexp/regexp-tests.factor | 2 ++ 2 files changed, 3 insertions(+) diff --git a/basis/regexp/parser/parser.factor b/basis/regexp/parser/parser.factor index b7716d8580..b5022c602e 100644 --- a/basis/regexp/parser/parser.factor +++ b/basis/regexp/parser/parser.factor @@ -294,6 +294,7 @@ ERROR: unrecognized-escape char ; read1 { { CHAR: \ [ CHAR: \ <constant> ] } + { CHAR: / [ CHAR: / <constant> ] } { CHAR: ^ [ CHAR: ^ <constant> ] } { CHAR: $ [ CHAR: $ <constant> ] } { CHAR: - [ CHAR: - <constant> ] } diff --git a/basis/regexp/regexp-tests.factor b/basis/regexp/regexp-tests.factor index 3e7d83a12b..15e78629b6 100644 --- a/basis/regexp/regexp-tests.factor +++ b/basis/regexp/regexp-tests.factor @@ -55,6 +55,8 @@ IN: regexp-tests [ t ] [ " " "[\\W]" <regexp> matches? ] unit-test [ f ] [ "a" "[\\W]" <regexp> matches? ] unit-test +[ t ] [ "/" "\\/" <regexp> matches? ] unit-test + [ t ] [ "" "a|b*|c+|d?" <regexp> matches? ] unit-test [ t ] [ "a" "a|b*|c+|d?" <regexp> matches? ] unit-test [ t ] [ "c" "a|b*|c+|d?" <regexp> matches? ] unit-test From f5adb971f60e8dc35b4127e04364e35686abb41e Mon Sep 17 00:00:00 2001 From: Doug Coleman <doug.coleman@gmail.com> Date: Tue, 18 Nov 2008 16:09:47 -0600 Subject: [PATCH 5/5] re-enable literal syntax for regexps --- basis/regexp/regexp-tests.factor | 2 ++ basis/regexp/regexp.factor | 3 --- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/basis/regexp/regexp-tests.factor b/basis/regexp/regexp-tests.factor index 15e78629b6..ba7dfed657 100644 --- a/basis/regexp/regexp-tests.factor +++ b/basis/regexp/regexp-tests.factor @@ -57,6 +57,8 @@ IN: regexp-tests [ t ] [ "/" "\\/" <regexp> matches? ] unit-test +[ t ] [ "a" R' a'i matches? ] unit-test + [ t ] [ "" "a|b*|c+|d?" <regexp> matches? ] unit-test [ t ] [ "a" "a|b*|c+|d?" <regexp> matches? ] unit-test [ t ] [ "c" "a|b*|c+|d?" <regexp> matches? ] unit-test diff --git a/basis/regexp/regexp.factor b/basis/regexp/regexp.factor index e99077f4aa..c9a1d2f47d 100644 --- a/basis/regexp/regexp.factor +++ b/basis/regexp/regexp.factor @@ -129,8 +129,6 @@ IN: regexp : option? ( option regexp -- ? ) options>> key? ; -USE: multiline -/* M: regexp pprint* [ [ @@ -139,4 +137,3 @@ M: regexp pprint* case-insensitive swap option? [ "i" % ] when ] "" make ] keep present-text ; -*/