RE: How to tell the difference bewteen comparing and assigning
- Posted by Derek Parnell <ddparnell at bigpond.com> May 13, 2002
- 421 views
Chris Bensler wrote: > > irv at take.maxleft.com wrote: > > > > jbrown105 at speedymail.org wrote: > > > On 0, stabmaster_ at HOTMAIL.COM wrote: > > > > > > > > One way to spot comparisons (although it probably doesn't cover _all_ > > > > possible comparisons) are when '=' is used after 'if' or 'while' > > > > > > > > if 1=0 then... > > > > > > > > while 0=1 do... > > > > > > > > etc. > > > > Why don't you download Dave Cuny's Py interpreter > > and see how he did it? > > IIRC it uses = as both an assignment operator and > > a comparison operator. For atoms AND sequences. > > > > Regards, > > Irv > > AFAIK, Py is a complete language, which parses and processes every token > > of code. > > I'm pretty sure James is trying to avoid doing that. > > My preprocessor also parses and processes every token of code. I don't > see any other way of being able to accurately determine if = is an > assignment or operator. You can't. The token '=' must be semantically checked in context. If the token is immediately preceded by an identifer-reference AND that references a variable AND that identifier is at the beginning of a statement, then the '=' is an assignment, othewrwise is is a equality comparision. It is unfortunate that RDS choose '=' to mean two different things depending on where it is placed in the source code, but Euphoria is not alone in that regard. As an aside, I've often thought that '?=' is a good token for equality comparision and ':=' for assignment - but I'm probably out numbered -------- Derek.