smalltalk: Allow SELECTOR: \foo: and ``M: foo \bar``

modern-harvey2
Doug Coleman 2017-08-27 12:24:36 -05:00
parent 5fb483099f
commit fbaa172732
4 changed files with 24 additions and 24 deletions
core/generic/parser
extra/smalltalk

View File

@ -18,7 +18,7 @@ ERROR: not-in-a-method-error ;
[ create-method-in ] dip [ define ] [ drop make-inline ] 2bi ;
: scan-new-method ( -- method )
scan-class bootstrap-word scan-word create-method-in ;
scan-class bootstrap-word scan-syntax-word create-method-in ;
SYMBOL: current-method

View File

@ -11,8 +11,8 @@ SELECTOR: asString
M: object selector-print dup present print ;
M: object selector-asString present ;
SELECTOR: print:
SELECTOR: nextPutAll:
SELECTOR: \print:
SELECTOR: \nextPutAll:
SELECTOR: tab
SELECTOR: nl
@ -41,15 +41,15 @@ M: object selector-<= swap <= ;
M: object selector->= swap >= ;
M: object selector-= swap = ;
SELECTOR: min:
SELECTOR: max:
SELECTOR: \min:
SELECTOR: \max:
M: object selector-min: min ;
M: object selector-max: max ;
SELECTOR: ifTrue:
SELECTOR: ifFalse:
SELECTOR: ifTrue:ifFalse:
SELECTOR: \ifTrue:
SELECTOR: \ifFalse:
SELECTOR: \ifTrue:ifFalse:
M: object selector-ifTrue: [ call( -- result ) ] [ drop nil ] if ;
M: object selector-ifFalse: [ drop nil ] [ call( -- result ) ] if ;
@ -59,8 +59,8 @@ SELECTOR: isNil
M: object selector-isNil nil eq? ;
SELECTOR: at:
SELECTOR: at:put:
SELECTOR: \at:
SELECTOR: \at:put:
M: sequence selector-at: nth ;
M: sequence selector-at:put: ( key value receiver -- receiver ) [ swapd set-nth ] keep ;
@ -68,29 +68,29 @@ M: sequence selector-at:put: ( key value receiver -- receiver ) [ swapd set-nth
M: assoc selector-at: at ;
M: assoc selector-at:put: ( key value receiver -- receiver ) [ swapd set-at ] keep ;
SELECTOR: do:
SELECTOR: \do:
M:: object selector-do: ( quot receiver -- nil )
receiver [ quot call( elt -- result ) drop ] each nil ;
SELECTOR: to:
SELECTOR: to:do:
SELECTOR: \to:
SELECTOR: \to:do:
M: object selector-to: swap [a,b] ;
M:: object selector-to:do: ( to quot from -- nil )
from to [a,b] [ quot call( i -- result ) drop ] each nil ;
SELECTOR: value
SELECTOR: value:
SELECTOR: value:value:
SELECTOR: value:value:value:
SELECTOR: value:value:value:value:
SELECTOR: \value:
SELECTOR: \value:value:
SELECTOR: \value:value:value:
SELECTOR: \value:value:value:value:
M: object selector-value call( -- result ) ;
M: object selector-value: call( input -- result ) ;
M: object selector-value:value: call( input input -- result ) ;
M: object selector-value:value:value: call( input input input -- result ) ;
M: object selector-value:value:value:value: call( input input input input -- result ) ;
M: object \selector-value: call( input -- result ) ;
M: object \selector-value:value: call( input input -- result ) ;
M: object \selector-value:value:value: call( input input input -- result ) ;
M: object \selector-value:value:value:value: call( input input input input -- result ) ;
SELECTOR: new

View File

@ -273,7 +273,7 @@ test = <foreign parse-smalltalk LocalVariableDeclarationList>
}
}
}
[ "class Test |[a|]" parse-smalltalk ] unit-test
[ "class Test [|a|]" parse-smalltalk ] unit-test
{
T{ ast-sequence f { }
@ -292,7 +292,7 @@ test = <foreign parse-smalltalk LocalVariableDeclarationList>
}
}
}
[ "class Test1 |[a|]. class Test2 extends Test1 |[b|]" parse-smalltalk ] unit-test
[ "class Test1 [|a|]. class Test2 extends Test1 [|b|]" parse-smalltalk ] unit-test
{ } [ "class Foo []. Tests blah " parse-smalltalk drop ] unit-test

View File

@ -25,4 +25,4 @@ SYMBOLS: unary binary keyword ;
[ selector>effect ]
bi define-simple-generic ;
SYNTAX: \SELECTOR: scan-token selector>generic drop ;
SYNTAX: \SELECTOR: scan-token unescape-token selector>generic drop ;