### The percentage you're paying is too high priced...

### While you're living beyond all your means.

### And the man in the suit has just bought a new car...

### From the profit he's made on your dreams.

- Steve Winwood and Jim Capaldi

###

### The following table shows all Aztec operators listed in order of left to right evaluation precedence.

###

### The following rules define which operators are valid within different Aztec expression types

#### ♦ Comparison Operators - Return true or false

##### == != - Valid for all operand types (int, float, string, bool, enum), including references

##### < <= >= > - Valid for all operand types except Boolean and references (int, float, string)

#### ♦ Integer Operands/Expressions

##### ♦ Valid Math Operators: + - * / % **

#### ♦ Floating Point Operands/Expressions

##### ♦ Valid Math Operators: + - * / % **

#### ♦ String Operands/Expressions

##### ♦ Valid Math Operators: +

#### ♦ Boolean Operands/Expressions - Return true or false

##### ♦ Valid Conditional Operators: & |

##### ♦ Other Valid Operators: is in

### By default, the Aztec Compiler and Virtual Machine perform short circuit evaluation for all boolean expressions. If a boolean expression has two terms separated by a '|' or '&' operator, the compiler inserts special logic into the bytecode for the VM that may result in the second term not being evaluated. If the result of the entire operation can be determined once the first (left) term is evaluated, the other term of the expression is not evaluated. This short circuit evaluation also applies to compile-time logic. The following two bullets describe how this works.

#### ♦ For the expression ( A & B ), the B term will not be evaluated if the A term is false.

#### ♦ For the expression ( A | B ), the B term will not be evaluated if the A term is true.

### This default behavior can be changed by using the "-fullexpr" option on the Aztec Engine command line when compiling the source code. If this option is used, all boolean expressions in the script will be fully evaluted, regardless of the value of the first term in the expression. Note that using the "-fullexpr" flag will never change the overall result of the boolean expression. The full expression will always return the same boolean result as the short-circuited expression. The difference is that any method calls made in the 'B' term of the expression are guaranteed to be called if short circuit evaluation is turned off.

###