 |
B.1.Operator Precedence
| Operator | Order |
| ( | left |
| NOT | right |
| * / | left |
| + - | left |
| < <= > >= | left |
| = != <> | left |
| AND | left |
| OR | left |

In the operator precedence table, operators at the same level have the
same precedence. Operators at the top of the table have the highest
precedence. In other words, in expressions with no parenthesizes, these
operations would be performed first before a operator with lower
precedence.
Order determines whether an operation is performed left to right or right
to left.
B.2 Operand Types
There are 4 types of operands in PaleoVu - Float, Long, Variable, and
Boolean. Mixing these types and certain operations can produce valid
results or errors. Following is a list of tables indicating operator,
operand types and resulting value types.

Operators +, -, *

| Left Operand | Right Operand |
 | Long | Float | Variable | Boolean |
| Long | Long | Float | Variable | Boolean/False a |
| Float | Float | Float | Variable | Boolean/False |
| Variable | Variable | Variable | Error | Boolean/False |
| Boolean | Boolean/False | Boolean/False | Boolean/False | Boolean/False |

a. Where Boolean return types have a value, it does not matter what the
operand values are, this is the value that is returned.

Operators / a

| Left Operand | Right Operand |
 | Long | Float | Variable | Boolean |
| Long | Long | Float | Error | Boolean/False b |
| Float | Float | Float | Error | Boolean/False |
| Variable | Variable | Variable | Error | Boolean/False |
| Boolean | Boolean/False | Boolean/False | Boolean/False | Boolean/False |

a. Divide by 0 errors are returned as an error.

b. Where Boolean return types have a value, it does not matter what the
operand values are, this is the value that is returned.

Operators OR, AND

| Left Operand | Right Operand |
 | Long | Float | Variable | Boolean |
| Long | Boolean/True a | Boolean/True | Boolean/True | Boolean/Right b |
| Float | Boolean/True | Boolean/True | Boolean/True | Boolean/Right |
| Variable | Boolean/True | Boolean/True | Boolean/True | Boolean/Right |
| Boolean | Boolean/Left | Boolean/Left | Boolean/Left | Boolean |

a. Where Boolean return types have a value, it does not matter what the
operand values are, this is the value that is returned.

b. When Left of Right are indicated for a Boolean value, the value of
the left or right operand is returned regardless of the other operand
value.

Operator =, <>

| Left Operand | Right Operand |
 | Long | Float | Variable | Boolean |
| Long | Boolean | Boolean | Boolean | Boolean/False a |
| Float | Boolean | Boolean | Boolean | Boolean/False |
| Variable | Boolean | Boolean | Error | Boolean/False |
| Boolean | Boolean/False | Boolean/False | Boolean/False | Boolean |

a. Where Boolean return types have a value, it does not matter what the
operand values are, this is the value that is returned.

Operators <, <=, >, >=

| Left Operand | Right Operand |
 | Long | Float | Variable | Boolean |
| Long | Boolean | Boolean | Boolean | Boolean/False a |
| Float | Boolean | Boolean | Boolean | Boolean/False |
| Variable | Boolean | Boolean | Boolean | Boolean/False |
| Boolean | Boolean/False | Boolean/False | Boolean/False | Boolean/False |

a. Where Boolean return types have a value, it does not matter what the
operand values are, this is the value that is returned.

Operator - (unary)

| Left Operand | Return Type |
| Long | Long |
| Float | Float |
| Variable | Variable |
| Boolean | Boolean/False |

a. Where Boolean return types have a value, it does not matter what the
operand values are, this is the value that is returned. |
 |