Obscure PBASIC for RoboEmu

Alright all you PBASIC Gods out there: here’s a few stumpers for you! I’m in the middle of re-doing the expression evaluator (read: deleting and starting over) for RoboEmu 2.0 and need some help with a few of the more archaic, odd, and downright nutty things you can do with PBASIC.

Without further ado, here they are:

  1. What do equalities actually evaluate to? I ask because things such as “if ((5>3)=3)=1<2 …” are actually valid syntax. However, figuring out the value of this depends on what things like (5<3) actually evaluate to. Is it 1? Undefined? Variable based on the situation? Also, are these left-to-right or right-to-left?

  2. What does the keyword AND/OR/XOR actually do? Similar to the above example, “if 3 AND 4 …” is valid. I assume PBASIC will evaluate this to true as both 3 and 4 are non-zero, but can anyone confirm this?

  3. How long can labels, variables, etc be? I believe it’s 32 characters, but can anyone confirm/deny?

  4. Not really a question, but more of a confirmation thing. Here’s the order of operations I’ve come up with. Is this right?
    top: AND, OR, XOR
    next: =, <>, etc
    next: ~, SIN, etc
    last: +, -, etc

  5. Anyone have any other obscure features you’d like to make sure RoboEmu supports?

Thanks in advance for all your help!

–Rob

  1. it is step by step, left to right, unless you use parenthesis. as for inequalities, they eval to a 0 or a 1. atleast, thats how it works in C++ so im assuming it is the same for pbasic. therefore (255>200)>100 will return false as (225>200) becomes 1 and 1 >100 is not true.

  2. same as above, it either evals to true (1) or false (0). if i’m remembering correctly, the only time a number is false is if it is 0, all other times it is true (ie, 1 is true, so is 2,3,4 -10,-12, etc…) and AND requires all to be true, while an or requires only one, or both to be true. an XOR is true if one and only input is true ( 1 xor 0 = 1, 0 xor1 =1, 1 xor 1 = 0, 0xor0=0)

Thats all I know, for now. hope this helps! Thanks for all the work you put into robo emu, we appreciate it!