binary selectors ambiguity and space
sr at evolgo.de
Mon May 15 23:52:40 UTC 2006
On 16.05.2006 00:11, Andreas Raab wrote:
> Stephan Rudlof wrote:
>> NCITS J20 DRAFT December, 1997 33 of ANSI Smalltalk Standard revision
>> 1.9; in short:
>> - 'White space is allowed between the '-' and the <number>' for a
>> numeric literal; and
>> - 'If a negative <number literal> follows a binary selector there must
>> intervening white space.'
> Just out of curiosity, which of the Smalltalks that claim to be ANSI
> compliant actually implement the above?
> A dead giveaway would probably
> be Number>>#@- (except that according to ANSI this requires spaces, too,
> right? right??? ;-)
My interpretation has been
1. parsing in principal goes from left to right,
2. there is one special case: the - binds from right to left, if it is
standing *alone* before a number,
3. in the case (0 at -1) the - would be eaten by parsing the @- operator
while parsing from left to right (' binarySelector ::= binaryCharacter+
', allowing arbitrary many binary characters).
This is my interpretation... Any others?
Case 2. seen together with
4. binding of - from right to left does *not* apply, if a variable is
5. + does not bind like -,
6. (1 - - 1) is allowed, but (1 + + 1) not,
makes it really very special.
Especially 6. feels odd to me.
Note: Squeak follows 6., but not 3..
To get 3. into the standard there would be a need for a further special
case @- before numbers related to the creation of Points AFAICS. But
Points are not covered by the standard.
> so can anyone confirm which Smalltalks out there
> actually compile according to those rules? Briefly checking VW shows it
> doesn't, neither does Squeak. What about others?
> - Andreas
Stephan Rudlof (sr at evolgo.de)
"Genius doesn't work on an assembly line basis.
You can't simply say, 'Today I will be brilliant.'"
-- Kirk, "The Ultimate Computer", stardate 4731.3
More information about the Squeak-dev