From: Andrew Savige Date: 2009-03-27T05:03:25+09:00 Subject: Re: Operator precedence of exponentiation (**) and complement (~) Heesob Park wrote: > According to the japanese reference > manual(http://doc.loveruby.net/refm/api/view/spec/operator), > this is not a bug. > I guess this precedence change was made on ruby 1.8.0 > > C:\work\ruby168\bin>ruby -v -e 'p ~2**3' > ruby 1.6.8 (2002-12-24) [i586-mswin32] > -9 > > C:\work\ruby180\bin>ruby -v -e 'p ~2**3' > ruby 1.8.0 (2003-08-04) [i386-mswin32] > -27 Thanks. Here's another one that surprised me. Running: y = 5 % x = 3 print "x=", x, " y=", y, "\n" produces: x=3 y=2 That is, it seems that: y = 5 % x = 3 is being parsed as: y = 5 % (x = 3) despite the % operator having a higher precedence than the = operator. I expected it to be parsed as: y = (5 % x) = 3 producing a syntax error. If this is a deliberate feature, I'd be interested in learning more about it. If anyone knows a good reference on the Ruby parser, please let me know. Thanks, /-\ Enjoy a safer web experience. Upgrade to the new Internet Explorer 8 optimised for Yahoo!7. Get it now.