Boolean expressions

A boolean expressions evaluates to an INTEGER value that can be TRUE, FALSE and in some cases, NULL.

MAIN
  DEFINE r, c INTEGER
  LET c = 4
  LET r = ( c!=5 ) AND ( c==2 OR c==4 )
  IF ( r AND canReadFile("config.txt") ) THEN
     DISPLAY "OK"
  END IF
END MAIN

Boolean expressions are a combination of logical operators and boolean comparison operators such as ==, >= or !=. The result type of a boolean expression is an INTEGER. Any integer value different from zero is defined as true, while zero is defined as false. You can use an INTEGER or a BOOLEAN variable to store the result of a boolean expression.

MAIN
  DEFINE b BOOLEAN
  LET b = ( "a" == "b" )  -- result is FALSE (0)
END MAIN

If an expression that returns NULL is the operand of the IS NULL operator, the value of the boolean expression is TRUE.

MAIN
  DEFINE r INTEGER
  LET r = NULL
  IF r IS NULL THEN
     DISPLAY "TRUE"
  END IF
END MAIN

If you include a boolean expression in a context where the runtime system expects a number, the expression is evaluated, and is then converted to an integer by the rules TRUE=1 and FALSE=0.

MAIN
  DEFINE r INTEGER
  LET c = 4
  LET r = 4 + (1==0)    -- result is 4.
END MAIN

The boolean expression evaluates to TRUE if the value is a non-zero real number or any of the following items:

If a boolean expression includes an operand whose value is not an integer data type, the runtime system attempts to convert the value to an integer according to the data conversion rules.

A boolean expression evaluates to NULL if the value is NULL and the expression does not appear in any of the following contexts:

The syntax of boolean expressions in programs is not the same as Boolean conditions in SQL statements.

Boolean expressions in CASE, IF, or WHILE statements return FALSE if any element of the comparison is NULL, except for operands of the IS NULL and the IS NOT NULL operator.