SuperBASIC: Difference between revisions

From F256 Foenix
Jump to navigationJump to search
No edit summary
(→‎Ernestos' tips on if, then, else:: Added a hint about parsing error messages)
Line 4: Line 4:
* Watch EMWhite's excellent intro series on YouTube: [https://www.youtube.com/playlist?list=PLeHjTvk7NPiSqGz4REMH-S4hjYpLS2YNR Full Playlist].
* Watch EMWhite's excellent intro series on YouTube: [https://www.youtube.com/playlist?list=PLeHjTvk7NPiSqGz4REMH-S4hjYpLS2YNR Full Playlist].


==== An informal list of tips, "gotchas": ====
=== An informal list of tips, "gotchas": ===


===== Ernestos' tips on if, then, else: =====
===== IF, THEN, ELSE =====
 
====== Source of this tip: Ernesto ======
* A regular <code>if then</code> condition can't contain an <code>else</code> statement, as in this example:  
* A regular <code>if then</code> condition can't contain an <code>else</code> statement, as in this example:  
<code>10 if a=0 then x=10</code>
<code>10 if a=0 then x=10</code>
Line 25: Line 27:
40    x=2 <br />
40    x=2 <br />
50 endif</code>
50 endif</code>
''Debugging hint: If you encounter an error like "open structure" or "endproc without a proc": do not trust the line number that you are given. The root of the problem is probably in a structure earlier on in the code.''

Revision as of 08:11, 15 March 2024

SuperBASIC is inspired by BBC BASIC but offers quite a bit more.

An informal list of tips, "gotchas":

IF, THEN, ELSE
Source of this tip: Ernesto
  • A regular if then condition can't contain an else statement, as in this example:

10 if a=0 then x=10

  • If you need to do an if then else structure, you actually have to do an if else endif structure like in the following example, skipping the then statement.

10 if a=0
20 x=1
30 else
40 x=2
50 endif

  • If you do it in one line it needs to have some colons added, making it look weird like this:

10 if a=0:x=1:else:x=2:endif

  • if you dare to omit the endif thinking that the if statement won't need it, (mmm.., everything is in one line, so no need, right?) -Nope...all hell breaks loose!-

10 if a=0:x=1:else:x=2: REM "<-- Error, omited the endif"

  • be careful not to add an extra then statement by mistake to an if else endif structure, if you do -All hell breaks loose again!!-

10 if a=0 then  : rem "<-- Error, THEN is not needed!!!"
20 x=1
30 else
40 x=2
50 endif

Debugging hint: If you encounter an error like "open structure" or "endproc without a proc": do not trust the line number that you are given. The root of the problem is probably in a structure earlier on in the code.