[Cuis-dev] Parser gets confused when using $| in binary selectors
Juan Vuletich
JuanVuletich at zoho.com
Fri May 13 07:30:54 PDT 2022
I'm pretty sure I can tweak the parser to treat specially $- as last
char of a binary selector, so that
1 at -2 creates a Point.
1 @ -2 also creates a Point.
1 @- 2 (note the space between - and 2) sends #@-, whatever that might mean.
I know it wouldn't be strictly ANSI, but that shouldn't be too important.
Do you folks think this would be reasonable behavior?
Thanks,
On 5/13/2022 11:07 AM, Luciano Notarfrancesco via Cuis-dev wrote:
> 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 <mailto: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
> <mailto: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
> <mailto: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
> <mailto: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 <mailto: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
> <mailto: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
>> <mailto: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
>>> <mailto: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
>>> <mailto: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
>>>> <mailto: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 Vuletich
>>> www.cuis-smalltalk.org <http://www.cuis-smalltalk.org>
>>> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev
>>> https://github.com/jvuletich
>>> https://www.linkedin.com/in/juan-vuletich-75611b3
>>> https://independent.academia.edu/JuanVuletich
>>> https://www.researchgate.net/profile/Juan-Vuletich
>>> https://patents.justia.com/inventor/juan-manuel-vuletich
>>> https://twitter.com/JuanVuletich
>>>
>>>
>>
>
>
> --
> Juan Vuletich
> www.cuis-smalltalk.org <http://www.cuis-smalltalk.org>
> https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev
> https://github.com/jvuletich
> https://www.linkedin.com/in/juan-vuletich-75611b3
> https://independent.academia.edu/JuanVuletich
> https://www.researchgate.net/profile/Juan-Vuletich
> https://patents.justia.com/inventor/juan-manuel-vuletich
> https://twitter.com/JuanVuletich
>
> --
> Cuis-dev mailing list
> Cuis-dev at lists.cuis.st <mailto:Cuis-dev at lists.cuis.st>
> https://lists.cuis.st/mailman/listinfo/cuis-dev
>
>
>
> --
> <https://10pines.com/>
>
>
> Hernán Wilkinson
>
>
> Software Developer & Coach
>
> Alem 896, Floor 6, Buenos Aires, Argentina
>
> +54 11 6091 3125
>
> @HernanWilkinson
>
>
>
> --
> <https://10pines.com/>
>
>
> Hernán Wilkinson
>
>
> Software Developer & Coach
>
> Alem 896, Floor 6, Buenos Aires, Argentina
>
> +54 11 6091 3125
>
> @HernanWilkinson
>
--
Juan Vuletich
www.cuis-smalltalk.org
https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev
https://github.com/jvuletich
https://www.linkedin.com/in/juan-vuletich-75611b3
https://independent.academia.edu/JuanVuletich
https://www.researchgate.net/profile/Juan-Vuletich
https://patents.justia.com/inventor/juan-manuel-vuletich
https://twitter.com/JuanVuletich
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20220513/574e5787/attachment-0001.htm>
More information about the Cuis-dev
mailing list