Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
is THEN necessary?
#1
every time I do an IF statement I always forget THEN, can it be made optional?
Reply
#2
THEN is used both for compatibility's sake with Sinclair and FreeBASIC and as "region" separator in the parsing phase.
The common structure is:
Code:
IF <condition> THEN <sentence> END IF
Here "<condition>" is something very fussy. It could be just "1", or something more complex like 3+A* Cos(pi) / 180.0.
Look at this example:
Code:
IF a a = a + 1: END IF
Makes the code less readable and could introduce some ambiguity in the parser. The THEN token marks the finish of the <expression> region. C does not uses the "THEN", but requires mondatory parenthesis around <expression> to treat this ambiguity.
Anyway, I've tested it and the THEN can be made optional... but again this goes away from BASIC. :| where legibility matters

What about the rest of users? What do you think?

Update: The best way to tackle this problem is to use a good IDE which will warns you of the missing THEN (this is a complex task) or even generate the IF THEN template for you.
Reply
#3
Could parse the ambiguity by saying "THEN" or newline?

IF a (then)
a=a+1
end if

So an alternate if construction is:

IF <condition>
list of statements
END IF

Would that work?
Reply
#4
yeah that would be good
Reply
#5
britlion Wrote:Could parse the ambiguity by saying "THEN" or newline?
Not needed, surprisingly, I've managed to make the THEN optional quite easily. But this goes away from BASIC...
Anyway, It will be uploaded soon.
Reply
#6
Oh, that is great!
I always forget it too because it is not needed in PureBasic.
The syntax is:
IF a:a+1:ENDIF
------------------------------------------------------------
http://lcd-one.da.ru redirector is dead
Visit my http://members.inode.at/838331/index.html home page!
Reply
#7
LCD Wrote:Oh, that is great!
I always forget it too because it is not needed in PureBasic.
The syntax is:
IF a:a+1:ENDIF
This is already uploaded in the RELEASE 1.2.9. Now let's go for 1.3.0 (sigh!).
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)