#if
#if is a compile-time if statement. It looks like a normal if
statement, except its condition must be resolvable at compile time.
This is because it controls whether or not the body of the #if
statement are included in the compilation.
Static-ifs can be used inside and outside of procedures.
Outside of Procedures
When outside of a procedure, static-ifs can be used to control whether or not certain symbols are defined in the current compilation.
DEBUG_MODE :: true
#if DEBUG_MODE {
	// This procedure is only defined if DEBUG_MODE is true
	debug_only_procedure :: () {
		// ...
	}
} else {
	// This procedure is only defined if DEBUG_MODE is false
	not_a_debug_procedure :: () {
		
	}
}
Static-ifs can contain any top-level "thing" in the language: procedures, structures,
unions, and even #load directives. Using this feature, you can optionally
include files depending on a condition.
USE_EXTENSIONS :: false
MINIMUM_EXTENSION_VERSION :: 5
#if USE_EXTENSIONS && MINIMUM_EXTENSION_VERSION >= 3 {
	#load "./extensions/v3"
}
Inside of procedures
When inside a procedure, static-ifs can contain statements that will only be
included if the static-if resolves to be true.
DEBUG_MODE :: true
draw :: () {
	#if DEBUG_MODE {
		draw_debug_ui();
	}
	// ...
}
Other uses
See the #defined documentation for more uses of static-if statements.