Warning: ambiguous first argument; put parentheses or even spaces

I'm a little confused by this message...

ruby --version;ruby -we 'A=1;B=2;C=3;D=A -(B-C);p D'
ruby 1.9.0 (2004-07-14) [i686-linux]
-e:1: warning: ambiguous first argument; put parentheses or even spaces
-e:1: undefined method `A' for main:Object (NoMethodError)

ruby1.8 --version;ruby1.8 -we 'A=1;B=2;C=3;D=A -(B-C);p D'
ruby 1.8.1 (2004-02-03) [i386-linux]
-e:1: warning: ambiguous first argument; put parentheses or even spaces
-e:1: undefined method `A' for main:Object (NoMethodError)

It goes away if you make some whitespace tweaks....

ruby1.8 --version;ruby1.8 -we 'A=1;B=2;C=3;D=A-(B-C);p D'
ruby 1.8.1 (2004-02-03) [i386-linux]
2

ruby1.8 --version;ruby1.8 -we 'A=1;B=2;C=3;D=A - (B-C);p D'
ruby 1.8.1 (2004-02-03) [i386-linux]
2

Or decide not to use constants...
ruby1.8 --version;ruby1.8 -we 'a=1;b=2;c=3;d=a -(b-c);p d'
ruby 1.8.1 (2004-02-03) [i386-linux]
2

Even just one...
ruby1.8 --version;ruby1.8 -we 'a=1;B=2;C=3;D=a -(B-C);p D'
ruby 1.8.1 (2004-02-03) [i386-linux]
2

John Carter Phone : (64)(3) 358 6639
Tait Electronics Fax : (64)(3) 359 4632
PO Box 1645 Christchurch Email : john.carter@tait.co.nz
New Zealand

The universe is absolutely plastered with the dashed lines exactly one
space long.

Hi,

I'm a little confused by this message...

ruby --version;ruby -we 'A=1;B=2;C=3;D=A -(B-C);p D'
ruby 1.9.0 (2004-07-14) [i686-linux]
-e:1: warning: ambiguous first argument; put parentheses or even spaces
-e:1: undefined method `A' for main:Object (NoMethodError)

It's sort of difficulties for Ruby parser to tell

  D=A -(B-C)

as

  D=A(-(B-C))

or

  D=A-(B-C)

Be nice, please.

              matz.

ยทยทยท

In message "warning: ambiguous first argument; put parentheses or even spaces" on Thu, 2 Sep 2004 15:18:30 +0900, John Carter <john.carter@tait.co.nz> writes: