diff --git a/core/effects/parser/parser.factor b/core/effects/parser/parser.factor index 46629023ed..80b022e161 100644 --- a/core/effects/parser/parser.factor +++ b/core/effects/parser/parser.factor @@ -81,7 +81,7 @@ ERROR: can't-nest-definitions word ; : (:) ( -- word def effect ) [ - scan-new-word + scan-new-syntax-word scan-effect parse-definition swap ] with-definition ; diff --git a/core/lexer/lexer.factor b/core/lexer/lexer.factor index acb8c1907f..6e6c26c248 100644 --- a/core/lexer/lexer.factor +++ b/core/lexer/lexer.factor @@ -118,10 +118,16 @@ DEFER: parse-token nip ] if ; +: unescape-token ( string -- string' ) + dup length 1 = [ "\\" ?head drop ] unless ; + +: unescape-tokens ( seq -- seq' ) + [ unescape-token ] map ; + : parse-token ( lexer -- str/f ) dup parse-raw [ skip-comments ] [ drop f ] if* ; -: ?scan-token ( -- str/f ) lexer get parse-token ; +: ?scan-token ( -- str/f ) lexer get parse-token unescape-token ; PREDICATE: unexpected-eof < unexpected got>> not ; @@ -143,12 +149,6 @@ PREDICATE: unexpected-eof < unexpected got>> not ; : parse-tokens ( end -- seq ) [ ] map-tokens ; -: unescape-token ( string -- string' ) - "\\" ?head drop ; - -: unescape-tokens ( seq -- seq' ) - [ unescape-token ] map ; - TUPLE: lexer-error line column line-text parsing-words error ; M: lexer-error error-file error>> error-file ; diff --git a/extra/smalltalk/compiler/compiler.factor b/extra/smalltalk/compiler/compiler.factor index f5a519f97d..64bb39c25b 100644 --- a/extra/smalltalk/compiler/compiler.factor +++ b/extra/smalltalk/compiler/compiler.factor @@ -26,14 +26,14 @@ M: ast-name compile-ast name>> swap lookup-reader ; [ compile-arguments ] 2bi [ new ] 3append ; -: compile-ifTrue:ifFalse: ( lexenv ast -- quot ) +: \compile-ifTrue:ifFalse: ( lexenv ast -- quot ) [ receiver>> compile-ast ] [ compile-arguments ] 2bi [ if ] 3append ; M: ast-message-send compile-ast dup selector>> { - { "ifTrue:ifFalse:" [ compile-ifTrue:ifFalse: ] } + { "ifTrue:ifFalse:" [ \compile-ifTrue:ifFalse: ] } { "new" [ compile-new ] } [ drop diff --git a/extra/smalltalk/library/library.factor b/extra/smalltalk/library/library.factor index 31feaf5a41..56784d1b99 100644 --- a/extra/smalltalk/library/library.factor +++ b/extra/smalltalk/library/library.factor @@ -17,8 +17,8 @@ SELECTOR: tab SELECTOR: nl M: object selector-print: [ present ] dip stream-print nil ; -M: object selector-nextPutAll: selector-print: ; -M: object selector-tab " " swap selector-print: ; +M: object selector-nextPutAll: \selector-print: ; +M: object selector-tab " " swap \selector-print: ; M: object selector-nl stream-nl nil ; SELECTOR: +