Provided by: golf_601.4.41-1_amd64 

NAME
if-defined - (program-flow)
PURPOSE
Conditional compilation.
SYNTAX
if-defined <symbol> <any code> end-defined if-defined <symbol> [ equal | not-equal | lesser-than | lesser-equal | greater-than | greater-equal ] <number> <any code> end-defined if-not-defined <symbol> <any code> end-defined
DESCRIPTION
Without a comparison clause, if-defined will cause <any code> to be compiled if <symbol> is defined (see "--cflag" option in gg); if <symbol> is not defined, then <any code> is not compiled. With a comparison clause, if-defined will cause <any code> to be compiled if <symbol> is equal/not equal/lesser than/lesser or equal/greater than/greater or equal than <number> constant, depending on the clause used (see "--cflag" option in gg). If <symbol> is not defined, then its value is assumed to be 0, and <any code> may still be compiled if the comparison clause and the <number> are such that the condition is true for <symbol> being 0. if-not-defined will cause <any code> to be compiled if <symbol> is not defined (see "--cflag" option in gg); if <symbol> is defined, then <any code> is not compiled. Note that <symbol> can start with an underscore, unlike Golf variable names; this is because defined symbols aren't variables and generally are set by the outside environment or during compilation (see "--cflag" option in gg).
EXAMPLES
The following code will have a different output depending on how is the application compiled: if-defined DEF1 @Defined end-defined if-not-defined DEF1 @Not defined end-defined if-defined DEF2 equal 10 @DEF2 is 10 end-defined if-defined DEF2 equal 0 @DEF2 is 0 end-defined If compiled with: gg -q then the output is: Not defined DEF2 is 0 If compiled with: gg -q --cflag="-DDEF1 -DDEF2=10" then the output is: Defined DEF2 is 10
SEE ALSO
Program flow break-loop call-handler code-blocks continue-loop do-once exit-handler if-defined if-true quit-process return-handler start-loop See all documentation $DATE $VERSION GOLF(2gg)