diff --git a/extra/modern/manifest/manifest.factor b/extra/modern/manifest/manifest.factor index 932c5052f1..44cb086a87 100644 --- a/extra/modern/manifest/manifest.factor +++ b/extra/modern/manifest/manifest.factor @@ -143,9 +143,9 @@ ERROR: key-exists val key assoc existing-value ; "let" "let" add-brackets-form "binder-quotation" "|" add-brackets-form - "call-paren" "" add-parens-form ! ( ) + "stack-effect" "" add-parens-form ! ( ) "call-paren" "call" add-parens-form ! call( ) - "execute-paren" "execute" add-parens-form + "execute-paren" "execute" add-parens-form ! execute( ) "string" "" add-containers-form ! "" [[ ]] [=[ ]=] ... "interpolate" "I" add-containers-form diff --git a/extra/modern/out/out.factor b/extra/modern/out/out.factor index be090c825c..395700a19a 100644 --- a/extra/modern/out/out.factor +++ b/extra/modern/out/out.factor @@ -7,9 +7,6 @@ prettyprint sequences sequences.extras splitting strings syntax.modern vocabs.loader ; IN: modern.out -: token? ( obj -- ? ) - { [ slice? ] [ seq>> string? ] } 1&& ; - TUPLE: renamed slice string ; CONSTRUCTOR: renamed ( slice string -- obj ) ; @@ -21,13 +18,13 @@ CONSTRUCTOR: renamed ( slice string -- obj ) ; : write-whitespace ( last obj -- ) swap [ swap slice-between ] [ slice-before ] if* - trim-before-newline io:write ; + trim-before-newline >string io:write ; GENERIC: write-literal* ( last obj -- last' ) -M: slice write-literal* write ; ! [ write-whitespace ] [ write ] [ ] tri ; +M: slice write-literal* [ write-whitespace ] [ >string write ] [ ] tri ; M: array write-literal* [ write-literal* ] each ; -! M: renamed write-literal* [ slice>> write-whitespace ] [ string>> write ] [ slice>> ] tri ; ! for refactoring -M: string write-literal* write ; +M: renamed write-literal* [ slice>> write-whitespace ] [ string>> write ] [ slice>> ] tri ; ! for refactoring +: write-literal ( obj -- ) f swap write-literal* drop ; DEFER: map-literals : (map-literals) ( obj quot: ( obj -- obj' ) -- seq ) @@ -40,15 +37,11 @@ DEFER: map-literals : map-literals ( obj quot: ( obj -- obj' ) -- seq ) '[ _ (map-literals) ] map ; inline recursive - -! Start with no slice as ``last`` -: write-literal ( obj -- ) f swap write-literal* drop ; - : write-modern-string ( seq -- string ) [ write-literal ] with-string-writer ; inline : write-modern-path ( seq path -- ) - utf8 [ write-literal ] with-file-writer ; inline + utf8 [ write-literal "\n" write ] with-file-writer ; inline : write-modern-vocab ( seq vocab -- ) vocab-source-path write-modern-path ; inline