]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/xmode/rules/rules.factor
factor: trim using lists
[factor.git] / basis / xmode / rules / rules.factor
old mode 100755 (executable)
new mode 100644 (file)
index e3c0c65..084abb5
@@ -1,5 +1,7 @@
-USING: accessors xmode.tokens xmode.keyword-map kernel
-sequences vectors assocs strings memoize regexp unicode.case ;
+! Copyright (C) 2008 Slava Pestov.
+! See http://factorcode.org/license.txt for BSD license.
+USING: accessors assocs kernel regexp sequences unicode
+xmode.keyword-map ;
 IN: xmode.rules
 
 TUPLE: string-matcher string ignore-case? ;
@@ -40,7 +42,7 @@ MEMO: standard-rule-set ( id -- ruleset )
 
 : ?push-all ( seq1 seq2 -- seq1+seq2 )
     [
-        over [ >r V{ } like r> over push-all ] [ nip ] if
+        over [ [ V{ } like ] dip append! ] [ nip ] if
     ] when* ;
 
 : rule-set-no-word-sep* ( ruleset -- str )
@@ -76,7 +78,7 @@ TUPLE: eol-span-rule < rule ;
 : init-span ( rule -- )
     dup delegate>> [ drop ] [
         dup body-token>> standard-rule-set
-        swap (>>delegate)
+        swap delegate<<
     ] if ;
 
 : init-eol-span ( rule -- )
@@ -106,13 +108,12 @@ M: regexp text-hash-char drop f ;
     text-hash-char [ suffix ] when* ;
 
 : add-rule ( rule ruleset -- )
-    >r dup rule-chars* >upper swap
-    r> rules>> inverted-index ;
+    [ dup rule-chars* >upper swap ] dip rules>> inverted-index ;
 
 : add-escape-rule ( string ruleset -- )
     over [
         [ <escape-rule> ] dip
-        2dup (>>escape-rule)
+        2dup escape-rule<<
         add-rule
     ] [
         2drop