Conditionals
============

ACR conditionals are handled after checks and assignations.

Version 0.3 uses a new conditional syntax that allows you to write more complex
ones. But...isn't backward compatible. By the way is good to read this
document to understand how they work.

Conditionals are grouped in different keywords:
 - IF      /  IFNOT
 - IFNULL  /  IFNOTNULL
 - IFAND   /  IFNOTAND
 - IFEQ    /  IFNOTEQ
 - IFEQVAL /  IFEQVAL

There'r some operations to do when conditionals matches:
 - =   : assignation.
 - ?=  : assignation when not defined.
 - +=  : concatenation.


[ IF | IFNOT ]==========================================================
 SYNTAX:
  IF<NOT> [varname] [setvarname] [operation] [value] ;

 EXAMPLE:
  IF HAVE_LIB_C HaveLibC = 1 ;

 EXPLANATION:
  Checks if the content of [varname] is equal to 1 (IF) or 0 (IFNOT).


[ IFNULL | IFNOTNULL ]==================================================
 SYNTAX:
  IF<NOT>NULL [varname] [setvarname] [operation] [value] ;

 EXAMPLE:
  IFNULL JAPANESE JSUPPORT = 1 ;

 EXPLANATION:
  Checks if the content of [varname] is empty (IFNULL) or not (IFNOTNULL)


[ IFAND | IFNOTAND ]====================================================
 SYNTAX:
  IF<NOT>AND [varname] [varname] [setvarname] [operation] [value] ;

 EXAMPLE:
  IFAND FOO BAR FooBar += FOO and BAR are equal to 1 ;

 EXPLANATION:
  Checks if the content of both varnames are equal to 1 (IFAND) or 0 (IFNOTAND)


[ IFEQ | IFNOTEQ ]======================================================
 SYNTAX:
  IF<NOT>EQ [varname] [value] ; [setvarname] [operation] [value] ;

 EXAMPLE:
  IFEQ HOST_OS netbsd ; NiceOS = 1 ;

 EXPLANATION:
  Checks if the content of [varname] is equal to [value].


[ IFEQVAL | IFNOTEQVAL ]================================================
 SYNTAX:
  IF<NOT>EQVAL [varname] [varname] [setvarname] [operation] [value] ;

 EXAMPLE.
  IFEQVAL FOO BAR FooEqualToBar = 1 ;

 EXPLANATION:
  Checks if values of both [varnames] are equal.
