Welcome to Synthiam!

Program robots using technologies created from industry experts. EZ-Builder is our free-to-use robot programming software that makes features like vision recognition, navigation and artificial intelligence easy.
Get Started

USA
Asked — Edited
Resolved Resolved by DJ Sures!

Expression Parser Broken: Boolean Expressions With Negative Numbers

The code below does not work:

Code:


1: ClearVariables()
2: $status = -1
3: $retry = 3
4: if ($retry<3 AND $status<0)
5: #do something
6: endif


error:

Quote:


Error on line 4: Missing String Quotes or Invalid Expression at index 8: -

#1  
the code works when the status variable has a non negative number.
#2  
RepeatWhile and RepeatUntil are also affected
#3  
this was the initial code (stops working when status is negative)

Code:


repeatwhile($retry>0 AND $status<0)
print("Do something here")
$retry = $retry - 1
endrepeatwhile
#4  
to overcome the bug, i end up changing the logic and the code became more complex to read.

Code:


:loop
if ($retry>0)
if ($status<0)
Print("Do something here")
$retry = $retry -1
Goto(loop)
endif
endif
#5  
These variations seem to work:

Code:


if ($retry<3) AND ($status<0)
or
if (($retry<3) AND ($status<0))

repeatwhile(($retry>0) AND ($status<0))
Synthiam
#7  
PS - also, thanks for the examples @WBS and @ptp . It helps identify the solution with use case examples. Usually someone just says "this doesn't work" and i have to guess what they were trying to do:D