On Nov 25, 2010, at 11:41 07AM, Levente Uzonyi wrote:
On Thu, 25 Nov 2010, Henrik Johansen wrote:
On Nov 25, 2010, at 10:58 44AM, Benjamin wrote:
Hello guys,
Is there a reason this method use :
(Scanner isLiteralSymbol: '_')
ifTrue: [ self initializeChars: '_' to: #alphabetic ]
ifFalse: [ self initializeChars: '_' to: #special ].
and not
(Scanner allowUnderscoreAsAssignment)
ifTrue: [ self initializeChars: '_' to: #special ]
ifFalse:[ self initializeChars: '_' to: #alphabetic ]
?
Cheers,
Ben
Compatibility I would guess.
In Squeak, allowUnderscoreAsAssignment is still a Preferences method.
No, it never was a method of Preferences. It's a pragma preference, but in Squeak 4.1 it has a different name, IIRC prefAllowUnderscoreAssignment.
Levente
My bad, in the 4.1 image there's Preferences >> allowUnderscoreAssignment
^ self
valueOfFlag: #allowUnderscoreAssignment
ifAbsent: [false]
(Added by Parser class>>#initialize), I didn't check if it was actually in use anymore.
Compatibility seems the be the reason anyways though, as you said the Scanner pragma preference has a different name.
On Nov 25, 2010, at 11:42 56AM, Levente Uzonyi wrote:
On Thu, 25 Nov 2010, Henrik Johansen wrote:
P.S. At the very least it could be changed to Scanner isLiteralSymbol: #_
I guess not. There was a bug in Squeak (and probably Pharo too), because the compiler replaced #_ to #':=' during compilation. See
http://bugs.squeak.org/view.php?id=7571 .
:(
Can't reproduce it in Pharo 1.0 onwards, with allowUnderscore on/off, though.
Cheers,
Henry