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 >> >>> >> >> >> > >> >> >
