 ]]
 
 : strings-core-to-file ( -- )
-    core-bootstrap-vocabs
+    core-vocabs
     [ ".private" ?tail drop vocab-source-path utf8 file-contents ] map-zip
     [ "[========[" dup matching-delimiter-string surround ] assoc-map
     [

! Copyright (C) 2017 Doug Coleman.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors arrays assocs combinators.short-circuit
constructors continuations io io.encodings.utf8 io.files
io.streams.string kernel modern modern.paths modern.slices
prettyprint sequences sequences.extras splitting strings
vocabs.loader ;
IN: modern.out

: token? ( obj -- ? )

CONSTRUCTOR: <renamed> renamed ( slice string -- obj ) ;

: trim-before-newline ( seq -- seq' )
    dup [ CHAR: \s = not ] find
    { CHAR: \r CHAR: \n } member?
    [ tail-slice ] [ drop ] if ;

: write-whitespace ( last obj -- )
    swap
    [ swap slice-between ] [ slice-before ] if*
    trim-before-newline io:write ;

GENERIC: write-literal* ( last obj -- last' )
M: slice write-literal* [ write-whitespace ] [ write ] [ ] tri ;
