[Cuis-dev] Parser gets confused when using $| in binary selectors

Luciano Notarfrancesco luchiano at gmail.com
Fri May 13 07:07:10 PDT 2022


Can you think of other characters that could be problematic when allowing
them in binary selectors? I don’t use selectors ending with $-, and I agree
that the original behavior is more convenient and intuitive. The only
disadvantage of keeping the original behavior for this case would be not
being ANSI compliant, not a problem for me.

On Fri, 13 May 2022 at 8:58 PM Luciano Notarfrancesco <luchiano at gmail.com>
wrote:

> Personally I don’t mind if we decide to make an exception for the special
> case of $-, but only for that character, because I want to have more
> options available for binary operators (for example with $|).
>
> On Fri, 13 May 2022 at 8:53 PM Hernan Wilkinson <
> hernan.wilkinson at 10pines.com> wrote:
>
>> Even more... this change makes things like: 1*-2 or 1/-2 or 1//-2 or
>> 1+-2, etc etc etc to generate an error.
>> I think it does not make sense.... any common programmer will expect 1*-2
>> to return -2 and not an error.
>> I think we should get back to the previous behavior.
>>
>> What do you think?
>>
>> Hernan.
>>
>> On Fri, May 13, 2022 at 10:34 AM Hernan Wilkinson <
>> hernan.wilkinson at 10pines.com> wrote:
>>
>>> Hi all!
>>>  I'm just wondering why you guys think that having @- as a unary
>>> selector is better than interpreting it as valid for a negative y of a
>>> point...
>>>  I mean, it is much more common to write 1 at -1 as a point whose y is -1
>>> than to use @- as a selector...
>>>  Newcomers will have bit time problems to understand why 1 at -1 does not
>>> generate a point with a -1 as the y, unless the @- message is implemented
>>> in Point to create a point with the negation of the parameter which is for
>>> me an unnecessary indirection...
>>>  I mean, what other class is going to implement a message such as @- ?
>>>  It seems to me more useful the behavior we had previous to this change.
>>>
>>> Hernan.
>>>
>>>
>>> On Fri, May 13, 2022 at 9:52 AM Luciano Notarfrancesco via Cuis-dev <
>>> cuis-dev at lists.cuis.st> wrote:
>>>
>>>> If you don't mind, I think these printOns look better (either one)
>>>>
>>>> On Fri, May 13, 2022 at 2:36 AM Luciano Notarfrancesco <
>>>> luchiano at gmail.com> wrote:
>>>>
>>>>> Oh, great, thanks! I was just thinking that “1@(-1)” could have been
>>>>> a better choice for the fix, and that maybe we should have a preference to
>>>>> avoid overwriting timestamp and other people’s initials when we do trivial
>>>>> changes like this.
>>>>>
>>>>>
>>>>> On Fri, 13 May 2022 at 3:41 AM Juan Vuletich <JuanVuletich at zoho.com>
>>>>> wrote:
>>>>>
>>>>>> Thanks Folks!
>>>>>>
>>>>>> Luciano, I just pushed your changes. I also found an instance of
>>>>>> '\\-' that I fixed too. There are several changes required for optional
>>>>>> packages in the Cuis-Smalltalk organization. Will push them tomorrow.
>>>>>>
>>>>>> WRT to Decompiler, decompiled code is actually OK, with a space after
>>>>>> binary selectors. What was wrong was the #storeString of literal Points.
>>>>>> Fixed Point>>#printOn: for that. Now DecompilerTests pass.
>>>>>>
>>>>>> Cheers!
>>>>>>
>>>>>>
>>>>>> On 5/9/2022 3:21 PM, Luciano Notarfrancesco via Cuis-dev wrote:
>>>>>>
>>>>>> Martin,
>>>>>> Thanks for the very detailed explanation! I went ahead and replaced
>>>>>> '@-' with '@ -' in the image and the tests. There are still 10 tests
>>>>>> producing errors because the decompiler decompiles it without the space,
>>>>>> tho.
>>>>>>
>>>>>>
>>>>>> On Mon, May 9, 2022 at 5:04 PM Martin McClure <martin at hand2mouse.com>
>>>>>> wrote:
>>>>>>
>>>>>> The ANSI Smalltalk grammar says that "@-" should be a valid binary
>>>>>> selector, and would require whitespace in "1@ -1" to interpret the
>>>>>> argument as a literal negative one.
>>>>>>
>>>>>> The Blue Book grammar, though, does not allow "@-" as a binary
>>>>>> selector. The Blue Book grammar, as printed, also does not allow "," as a
>>>>>> binary selector, even though that was clearly used as a binary selector in
>>>>>> Smalltalk-80. The Blue Book grammar also does not talk about whitespace at
>>>>>> all, even though that is clearly required in some places, so the Blue Book
>>>>>> is a bit fuzzier than one would want as a grammar reference.
>>>>>>
>>>>>> Going with ANSI-like grammar and putting a space in expressions like
>>>>>> "1 @- 1" makes more sense to me. Allows more valid selectors, and the code
>>>>>> is more readable with the whitespace.
>>>>>>
>>>>>> Regards,
>>>>>> -Martin
>>>>>>
>>>>>> On 5/9/22 03:48, Luciano Notarfrancesco via Cuis-dev wrote:
>>>>>>
>>>>>> After this change '1 at -1' is parsed as a binary message #@-, and this
>>>>>> causes some base image tests to fail. Should we add a space between @ and
>>>>>> -1 or should we fix the parser?
>>>>>>
>>>>>> On Fri, May 6, 2022 at 1:56 PM Luciano Notarfrancesco <
>>>>>> luchiano at gmail.com> wrote:
>>>>>>
>>>>>> That was quick. Thanks a lot!
>>>>>>
>>>>>> On Fri, 6 May 2022 at 8:55 PM Juan Vuletich <JuanVuletich at zoho.com>
>>>>>> wrote:
>>>>>>
>>>>>> On 5/6/2022 10:48 AM, Luciano Notarfrancesco via Cuis-dev wrote:
>>>>>>
>>>>>> I’m not sure I was clear, I meant a method implementing those
>>>>>> messages, not sending those messages.
>>>>>>
>>>>>> On Fri, 6 May 2022 at 1:22 PM Luciano Notarfrancesco <
>>>>>> luchiano at gmail.com> wrote:
>>>>>>
>>>>>> I’m getting “Argument name expected” when trying to compile a method
>>>>>> with selector <|. On the other hand, |>, | and || all compile fine as
>>>>>> binary selectors, but || breaks syntax highlighting.
>>>>>>
>>>>>>
>>>>>> Sure. Fixes at GitHub now.
>>>>>>
>>>>>> A small detail: Now an empty temporal declaration `||` is parsed as a
>>>>>> binary selector, and therefore marked as invalid. Not a big deal. We'd just
>>>>>> remove any such.
>>>>>>
>>>>>> Cheers,
>>>>>>
>>>>>> --
>>>>>> Juan Vuletichwww.cuis-smalltalk.orghttps://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Devhttps://github.com/jvuletichhttps://www.linkedin.com/in/juan-vuletich-75611b3https://independent.academia.edu/JuanVuletichhttps://www.researchgate.net/profile/Juan-Vuletichhttps://patents.justia.com/inventor/juan-manuel-vuletichhttps://twitter.com/JuanVuletich
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Juan Vuletichwww.cuis-smalltalk.orghttps://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Devhttps://github.com/jvuletichhttps://www.linkedin.com/in/juan-vuletich-75611b3https://independent.academia.edu/JuanVuletichhttps://www.researchgate.net/profile/Juan-Vuletichhttps://patents.justia.com/inventor/juan-manuel-vuletichhttps://twitter.com/JuanVuletich
>>>>>>
>>>>>> --
>>>> Cuis-dev mailing list
>>>> Cuis-dev at lists.cuis.st
>>>> https://lists.cuis.st/mailman/listinfo/cuis-dev
>>>>
>>>
>>>
>>> --
>>> <https://10pines.com/>Hernán WilkinsonSoftware Developer & Coach
>>>
>>> Alem 896, Floor 6, Buenos Aires, Argentina
>>>
>>> +54 11 6091 3125
>>>
>>> @HernanWilkinson
>>>
>>
>>
>> --
>> <https://10pines.com/>Hernán WilkinsonSoftware Developer & Coach
>>
>> Alem 896, Floor 6, Buenos Aires, Argentina
>>
>> +54 11 6091 3125
>>
>> @HernanWilkinson
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20220513/6191239d/attachment.htm>


More information about the Cuis-dev mailing list