From ae8254c0fd12e070f552a5da8e66002bb8a86dc8 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Wed, 27 Aug 2008 15:27:54 -0500 Subject: [PATCH] revert change to lookahead, parse negative lookahead correctly --- unfinished/regexp2/dfa/dfa.factor | 2 +- unfinished/regexp2/nfa/nfa.factor | 4 ++-- unfinished/regexp2/parser/parser.factor | 2 +- .../regexp2/transition-tables/transition-tables.factor | 8 ++++---- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/unfinished/regexp2/dfa/dfa.factor b/unfinished/regexp2/dfa/dfa.factor index 532ee130bc..0dcf6c4ab5 100644 --- a/unfinished/regexp2/dfa/dfa.factor +++ b/unfinished/regexp2/dfa/dfa.factor @@ -42,7 +42,7 @@ IN: regexp2.dfa dupd pop dup pick find-transitions rot [ [ [ find-closure ] 2keep nip dupd add-todo-state ] 3keep - >r swapd f transition boa r> dfa-table>> add-transition + >r swapd transition boa r> dfa-table>> add-transition ] curry with each new-transitions ] if-empty ; diff --git a/unfinished/regexp2/nfa/nfa.factor b/unfinished/regexp2/nfa/nfa.factor index 1dada10d52..f87a2a7b52 100644 --- a/unfinished/regexp2/nfa/nfa.factor +++ b/unfinished/regexp2/nfa/nfa.factor @@ -30,10 +30,10 @@ GENERIC: nfa-node ( node -- ) stack [ regexp stack>> ] table [ regexp nfa-table>> ] | negated? [ - s0 f obj f class boa table add-transition + s0 f obj class boa table add-transition s0 s1 table add-transition ] [ - s0 s1 obj f class boa table add-transition + s0 s1 obj class boa table add-transition ] if s0 s1 2array stack push t s1 table final-states>> set-at ] ; diff --git a/unfinished/regexp2/parser/parser.factor b/unfinished/regexp2/parser/parser.factor index 39ca01e319..bd291f3cf7 100644 --- a/unfinished/regexp2/parser/parser.factor +++ b/unfinished/regexp2/parser/parser.factor @@ -155,7 +155,7 @@ DEFER: nested-parse-regexp [ drop nested-parse-regexp pop-stack make-non-capturing-group ] } { [ dup CHAR: = = ] [ drop nested-parse-regexp pop-stack make-positive-lookahead ] } - { [ dup CHAR: = = ] + { [ dup CHAR: ! = ] [ drop nested-parse-regexp pop-stack make-negative-lookahead ] } { [ dup CHAR: > = ] [ drop nested-parse-regexp pop-stack make-independent-group ] } diff --git a/unfinished/regexp2/transition-tables/transition-tables.factor b/unfinished/regexp2/transition-tables/transition-tables.factor index 32a65922f7..a9e67777fa 100644 --- a/unfinished/regexp2/transition-tables/transition-tables.factor +++ b/unfinished/regexp2/transition-tables/transition-tables.factor @@ -14,7 +14,7 @@ IN: regexp2.transition-tables : ?insert-at ( value key hash/f -- hash ) [ H{ } clone ] unless* [ insert-at ] keep ; -TUPLE: transition from to obj lookahead ; +TUPLE: transition from to obj ; TUPLE: literal-transition < transition ; TUPLE: class-transition < transition ; TUPLE: default-transition < transition ; @@ -23,11 +23,11 @@ TUPLE: literal obj ; TUPLE: class obj ; TUPLE: default ; : ( from to obj -- transition ) - f literal-transition boa ; + literal-transition boa ; : ( from to obj -- transition ) - f class-transition boa ; + class-transition boa ; : ( from to -- transition ) - t f default-transition boa ; + t default-transition boa ; TUPLE: transition-table transitions literals classes defaults