Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   Obscure PBASIC for RoboEmu (http://www.chiefdelphi.com/forums/showthread.php?t=19641)

rbayer 28-03-2003 22:54

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

JasonStern 28-03-2003 23:57

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!


All times are GMT -5. The time now is 11:07.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi