]> gitweb.factorcode.org Git - factor.git/blobdiff - basis/xml/syntax/inverse/inverse.factor
factor: trim some using lists
[factor.git] / basis / xml / syntax / inverse / inverse.factor
index 1d37a8dedbabc01383885a63f8fae8440724efad..4bed879fcda80599b1a62abb51096848d4971fef 100644 (file)
@@ -1,9 +1,9 @@
 ! Copyright (C) 2005, 2009 Daniel Ehrenberg
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors arrays assocs combinators
-combinators.short-circuit fry generalizations inverse kernel
-namespaces sequences sequences.generalizations sorting strings
-unicode.categories xml.data xml.syntax xml.syntax.private ;
+combinators.short-circuit inverse kernel namespaces sequences
+sequences.generalizations sorting strings unicode xml.data ;
+USE: xml.syntax.private ! required but does not reference words
 IN: xml.syntax.inverse
 
 : remove-blanks ( seq -- newseq )
@@ -44,13 +44,12 @@ M: xml-chunk [undo-xml]
 M: tag [undo-xml] ( tag -- quot: ( tag -- ) )
     {
         [ name>> main>> '[ name>> main>> _ =/fail ] ]
-        [ attrs>> undo-attrs ] 
+        [ attrs>> undo-attrs ]
         [ children>> [undo-xml] '[ children>> @ ] ]
     } cleave '[ _ _ _ tri ] ;
 
 : firstn-strong ( seq n -- ... )
-    [ swap length =/fail ]
-    [ firstn ] 2bi ; inline
+    [ assure-length ] [ firstn ] 2bi ; inline
 
 M: sequence [undo-xml] ( sequence -- quot: ( seq -- ) )
     remove-blanks [ length ] [ [ [undo-xml] ] { } map-as ] bi
@@ -67,9 +66,9 @@ M: interpolated [undo-xml]
 
 : >enum ( assoc -- enum )
     ! Assumes keys are 0..n
-    >alist sort-keys values <enum> ;
+    sort-keys values <enumerated> ;
 
 : undo-xml ( xml -- quot )
-    [undo-xml] '[ H{ } clone [ _ bind ] keep >enum ] ;
+    [undo-xml] '[ H{ } clone [ _ with-variables ] keep >enum ] ;
 
 \ interpolate-xml 1 [ undo-xml ] define-pop-inverse