Anything between quotes (""), including whitespace, is considered a single value.
An expression is considered true if it resolves to either the word "true" or any non?zero integer value. An expression is considered false if it resolves to anything else.
A real number is considered true if it is greater than or equal to 1.0, or less than or equal to -1.0. In other words, if a real number falls between -1.0 and 1.0, it's false. For example, 1.0 is considered true, and 0.99999 is considered false.
The strings "true" and "false" can be used to represent the two Boolean values in Setup Factory expressions. For example, the expression true or false is equivalent to the expression 1 or 0. Both expressions resolve to 1.
True" and "false" are not case sensitive. "True", "true", "tRuE" and "TRUE" all resolve to 1. "False", "false", "fAlsE" and "FALSE" all resolve to 0.
Non-quoted strings are delimited by whitespace and any of the operators except MOD, AND and OR. For instance, sandy is seen as the single value "sandy" and not the expression "s and y".
You can perform string concatenation with the add operator ('+').
You can compare strings alphabetically using the <, <=, >, >=, =, != and <> operators.
String comparisons are case insensitive. "Hello world" is equal to "hEllO WoRlD" in Setup Factory.
You can "multiply" strings with an integer value. (2 * "Ha" resolves to HaHa)
You can "strip" every occurrence of one string from another with the subtract operator ('-').
All stand-alone strings except "true" resolve to 0 (false) when a Boolean result is expected. For instance, the expression "hello" resolves to 0 (false) when used alone in an IF statement.
With the exception of "true", strings resolve to 0 (false) when used with the Boolean infix operators AND and OR. For instance, 1 AND "hello" is equivalent to 1 and 0 and resolves to 0 (false).
Strings that begin with the letter "v" followed by only numbers and periods are interpreted as versions. A string consisting of only numbers separated by two or more periods is automatically considered a version even if the letter "v" is omitted.
The "v" prefix is omitted from the result when a version calculation is performed. For example, v1.0 + v2.3 resolves to 3.3, and not v3.3.
You can compare versions using <, <=, >, >=, =, != and <>, and you can perform "corresponding element addition" and "corresponding element subtraction" on them using + and -. "Version.revision" notation is assumed, so v1.1 + v1.9 is 2.10 ("the 10th revision of version 2"), not 3.0. After a calculation, any negative numbers in a version string are reduced to 0. For example, 2.3.5 - 7.1.6 resolves to 0.2.0.
See Also: Expressions, Operators, Values