2015-09-24 8:19 GMT+02:00 Peter Uhnák <[email protected]>:

> >   - 250 * 1.5 returns -2.25
>
> why is this valid syntax?
>

It should not. RBParser bug. This is not valid Smalltalk syntax. As Ben
showed similar cases raise an error but this one generate incorrect
compiledMethod instead.


>
> On Thu, Sep 24, 2015 at 5:35 AM, Ben Coman <[email protected]> wrote:
>
>> RBParser parseExpression: '-250 * 1.5' => "RBMessageNode(-250 * 1.5)"
>> RBParser parseExpression: '- 250 * 1.5'   =>   "RBMessageNode(*1.5 * 1.5)"
>>
>> RBParser parseExpression: '250 * -1.5'    =>   "RBMessageNode(250 * -1.5)"
>> RBParser parseExpression: '250 * - 1.5'   =>   MNU RBToken>>realvalue.
>>
>> RBParser parseExpression: '-250'   =>  "RBLiteralValueNode(-250)"
>> RBParser parseExpression: '- 250' =>   MNU RBToken>>realvalue.
>>
>> So how significant should be the space between the negative sign and its
>> number?
>>
>> cheers -ben
>>
>> On Thu, Sep 24, 2015 at 6:34 AM, Clément Bera <[email protected]>
>> wrote:
>> > RBParser parseExpression: '- 250 * 1.5'    => Answers
>> RBMessageNode(*1.5 *
>> > 1.5)
>> >
>> > Second expression looks correct.
>> >
>> > Hence RBParser bug.
>> >
>> > 2015-09-23 23:42 GMT+02:00 [email protected] <[email protected]>:
>> >>
>> >> debug it on the first one gives "MNU: receiver of
>> "doSemanticAnalyisIn:"
>> >> is nil.
>> >>
>> >> Weird.
>> >>
>> >> On Wed, Sep 23, 2015 at 8:40 AM, stepharo <[email protected]> wrote:
>> >>>
>> >>> Hi guys
>> >>>
>> >>> I think that this is quite bad that
>> >>>     - 250 * 1.5 returns -2.25
>> >>>
>> >>> while
>> >>>
>> >>>     -250 * 1.5 return 375
>> >>>
>> >>> stef
>> >>>
>> >>
>> >
>>
>>
>

Reply via email to