Target Language Compiler | ![]() ![]() |
Conditional Inclusion
The conditional inclusion directives are
%if
The constant-expression
must evaluate to an integral expression. It controls the inclusion of all the following lines until it encounters a %else
, %elseif
, or %endif
directive. If the constant-expression
evaluates to 0
, the lines following the directive are not included. If the constant-expression
evaluates to any other integral value, the lines following the %if
directive are included up until the %endif
, %elseif
, or %else
directives.
When the Compiler encounters an %elseif
directive, and no prior %if
or %elseif
directive has evaluated to nonzero, the Compiler evaluates the expression. If the value is 0, the lines following the %elseif
directive are not included. If the value is nonzero, the lines following the %elseif
directive are included up until the subsequent %else
, %elseif
, or %endif
directive.
The %else
directive begins the inclusion of source text if all of the previous %elseif
statements or the original %if
statement evaluates to 0
; otherwise, it prevents the inclusion of subsequent lines up to and including the following %endif
.
The constant-expression
can contain any expression specified in Target Language Expressions.
%switch
The %switch
statement evaluates the constant expression and compares it to all expressions appearing on %case
selectors. If a match is found, the body of the %case
is included; otherwise the %default
is included.
%case ... %default
bodies flow together, as in C, and %break
must be used to exit the switch statement. %break
will exit the nearest enclosing %switch
, %foreach
, or %for
loop in which it appears. For example,
%switch(type) %case x /* Matches variable x. */ /* Note: Any valid TLC type is allowed. */ %case"
Sin"
/* Matches Sin or falls through from case x. */ %break /* Exits the switch. */ %case"
gain"
/* Matches gain. */ %break %default /* Does not match x,"
Sin,"
or"
gain."
*/ %endswitch
In general, this is a more readable form for the %if/%elseif/%else
construction.
![]() | Formatting | Multiple Inclusion | ![]() |