From: matz@... (Yukihiro Matsumoto) Date: 2000-01-25T14:36:09+09:00 Subject: [ruby-talk:01178] Re: Possible bug in ruby-man-1.4 In message "[ruby-talk:01177] Re: Possible bug in ruby-man-1.4" on 00/01/24, Dave Thomas writes: |> % perl -le 'print -2**2' |> -4 |> % python -c 'print -2**2' |> -4 |> % ruby -e 'p -2**2' |> -4 |> % ruby.new -e 'p -2**2' |> 4 | |Now there's a problem ;-( | |Maybe the answer is to get rid of the concept of negative numeric |literals, so there's never any ambiguity as to whether -2 is a literal |of a method call? Then, as an optimization, the parser could notice |.-@ terminal pairs and replace them with a negated |Fixnum. That is the current behavior (without optimization). The problem is about the contradiction below. current modified -13.remainder(4) => better be (-13).remainder(4) yes no -2**2 => better be -(2**2) no yes There may be good syntax rules to solve this. matz.