smalltalk: Allow SELECTOR: \foo: and ``M: foo \bar``
parent
5fb483099f
commit
fbaa172732
core/generic/parser
extra/smalltalk
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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 ;
|
||||
|
|
Loading…
Reference in New Issue