2014-12-10 13:32 GMT+01:00 Erik Itter <erik.itter@gmail.com>:
Thanks, tried
scanSpecialCharacter | character | currentCharacter = $: ifTrue: [ self step. ^ currentCharacter = $= ifTrue: [ self step. RBAssignmentToken start: tokenStart] ifFalse: [ RBSpecialCharacterToken value: $: start: tokenStart ]].
currentCharacter = $: ifTrue: [ self step. ^ currentCharacter = $> ifTrue: [ self step. RBAssignmentToken start: tokenStart] ifFalse: [ RBSpecialCharacterToken value: $: start: tokenStart ]].
currentCharacter = $_ ifTrue: [ self step. ^ RBShortAssignmentToken start: tokenStart ].
character := currentCharacter. self step. ^ RBSpecialCharacterToken value: character start: tokenStart
but while it does not seem to shred my image to pieces it also seems to have no effect at all. I guess the UI components still check differently and neither workplace nor SystemBrowser allow me to write code using the :> operator
Am 10.12.2014 um 13:11 schrieb Thierry Goubier:
Hi,
If you are using the OpalCompiler (Pharo4, sure, Pharo3, I'm not so sure), have a look at:
RBScanner>>scanSpecialCharacter
Thierry
2014-12-10 12:57 GMT+01:00 Erik Itter <erik.itter@gmail.com>:
Hi,
I need to modify the compiler adding ":>" as an alias for ":=" for assignment. I have been reading all over the Compiler package but do not find where a tokenizer parses for the assignement operator or where it is defined.
Any hint where to start or do it is appreciated.
best regards Erik
Hi Erik with Opal resp. RBScanner (in pharo3 and pharo4) There is a special handling for k:=1 and k := 1 because "k" can be an identifier, or the start of a selector (keyword message) therefore you have to change this too: RBScanner>>#scanIdentifierOrKeyword (currentCharacter = $: and: [stream peek ~= $=]) "<---- add a test for $>" ifTrue: [^self scanKeyword]. and the browsers/editor source code panel uses SHParserST80 for the syntax highlighting: SHParserST80>>#isAssignment ^ currentToken = ':=' or: [currentToken = '_'] "<---- add atest for $> " nicolai