I would hope there are exceptions - at least $. and $; .
Otherwise mass chaos would ensue.

Search for the method #initializeTypeTable.  That should steer you towards
what can be in a binary method (everything not specifically called out as
something besides #xBinary).

-cbc

On Tue, Jul 26, 2016 at 1:12 PM, Peter Uhnák <[email protected]> wrote:

> So binary selector can be any non-alphanumeric symbol?
>
> On Tue, Jul 26, 2016 at 9:35 PM, Nicolai Hess <[email protected]>
> wrote:
>
>> Thanks Eliot,
>>
>> 2016-07-26 21:24 GMT+02:00 Eliot Miranda <[email protected]>:
>>
>>> Hi Nicolai,
>>>
>>> On Tue, Jul 26, 2016 at 12:09 PM, Nicolai Hess <[email protected]>
>>> wrote:
>>>
>>>> Hi,
>>>>
>>>> is this valid pragma syntax:
>>>>
>>>> foo
>>>>     <func: #operation arg: #+>
>>>>     ^ self
>>>>
>>>
>>> You could say it was ambiguous.  With the change to the syntax of binary
>>> selectors in recent years #+> is a binary selector, and so you need
>>> whitespace after the token to separate it from the closing >.
>>>
>>
>> I was a bit supprised, why '+>' would be a binary selector, as  for
>> example greater-or-equal is ">=" and not "=>". But I like that we can
>> define (any?) combination as binary selector and create new ones like
>> =>
>> ==>
>> or
>> -->
>>
>>
>>
>>>
>>>
>>>> (note the closing angle and the +-symbol)
>>>>
>>>> The above code is what the pretty printer creates if you pretty-print
>>>> this code
>>>>
>>>
>>> IMO, the pretty printer is the thing that needs fixing.  If the last
>>> token in the pragma is a binary selector symbol literal then a space should
>>> be printed.
>>>
>>
>> :( yes, but I don't like that we need to insert spaces.
>>
>>
>>>
>>>
>>>>
>>>> foo
>>>>     <func: #operation arg: #+ >
>>>>     ^ self
>>>>
>>>> (note the space between #+ and >
>>>>
>>>> Or a bug in the parser ?
>>>>
>>>> this pragma definition
>>>>     <func: #operation arg: #a>
>>>> seems to work.
>>>>
>>>
>>>
>>> _,,,^..^,,,_
>>> best, Eliot
>>>
>>
>>
>

Reply via email to