Language:
Page Info
Engine Version:

# BuildGraph Script Conditions

If you want to build logical complexity into your BuildGraph scripts, you'll need to work with conditionals. The following section introduces you to how BuildGraph conditions are written, including a list of conditional operators.

## Conditions

BuildGraph script conditions consist of atoms and operators that evaluate to `true` or `false`.

### Atoms

Atoms can be numbers, strings, or identifiers that are coerced to their appropriate type for the oprator using them. Atoms may be quoted with single (') or double (") quotes. They can also be an unquoted sequence of letters, digits, and underscore characters. All atoms are considered the same type, regardless of how they're declared. Additionally, atoms are considered case-insensitive for comparisons, which means that the strings "True" and 'true' are identical to the identifier `true` (despite the presence of quotes and differences in case).

## Operators

A list of operators is specified below:

Operator

Description

Precedence

`(x)`

Subexpression

1

`!x`

Not operator

1

`Exists(x)`

True if the x file exists.

1

`HasTrailingSlash(x)`

True if x ends with a slash or backslash.

1

`x == y`

Tests two atoms for equality (case insensitive).

2

`x != y`

Tests two atoms for inequality (case insensitive).

2

`x < y`

Compares whether the integer x is less than the integer y.

2

`x <= y`

Compares whether the integer x is less than or equal to the integer y.

2

`x > y`

Compares whether the integer x is greater than the integer y.

2

`x >= y`

Compares whether the integer x is greater than or equal to the integer y.

2

`x and y`

True if both arguments are `true`.

3

`x or y`

True if either argument is `true`.

4

The `'<'` and `'>'` characters must be escaped as `"&lt;"` and `"&gt;"` in XML.