An expression is a value (a constant, a predefined constant, a variable or the result of a function), which may optionally be preceded by certain operators depending on the type of value, followed by an operator and another value, and so on.

For numeric expressions:
{ `number`

| `constant`

| `numeric function`

| `numeric variable`

} [ `operator`

[ `sign`

] { `number`

| `numeric function`

| `numeric variable=} ... ]`

__[/cat/number]__ : a standard [/cat/number]
__constant__ : a [/cat/constant|predefined constant] that represents a numeric value
__numeric function__ : a user-defined or [/cat/intrinsic] that returns a numeric value
__operator__ : any of the standard [/cat/arithop|arithmetic operators] ( **+****-*********/****^****\**`[lang/div]`

`[lang/mod]`

plus `[/lang/and]`

`[/lang/or]`

or `[/lang/xor]`

)
__numeric variable__ : any variable whose value is a number

For string expressions:
{ `string`

| `string constant`

| `string function`

| `string variable=} [ & { =string`

| `string constant`

| `string function`

| `string variable=} ... ]`

__string__ : a set of zero or more characters surrounded by "
__string constant__ : a [/cat/constant|predefined constant] that represents a string value
__string function__ : a user-defined or [/cat/intrinsic] that returns a string value
__string variable__ : any variable whose value is a string
__&__ : indicates that the string value to the right of the ampersand is to be concatenated to the end of the value to the right of the ampersand

For boolean expressions:
[ `[/lang/not]`

] { `TRUE`

| `FALSE`

| `numeric constant`

| `boolean constant`

| `boolean function`

| `boolean variable`

} [ `boolean operator`

[ `NOT`

] { `TRUE`

| `FALSE`

| `numeric constant`

| `boolean constant`

| `boolean function`

| `boolean variable`

} ... ]
__NOT__ : using `NOT`

before a boolean value reverses the value
__TRUE__ or __FALSE__ : the standard boolean constants
__numeric constant__ : a [/cat/number|standard number] which will be resolved to either `TRUE`

or `FALSE`

^{[1]}
__boolean constant__ : a [/cat/constant|predefined constant] that represents a boolean value
__boolean function__ : a user defined or [/cat/intrinsic] that returns `TRUE`

or `FALSE`

or resolves to `TRUE`

or `FALSE`

^{[1]}
__boolean variable__ : any variable whose value is `TRUE`

or `FALSE`

or resolves either to `TRUE`

or `FALSE`

^{[1]}
__boolean operator__: `[/lang/and]`

`[/lang/or]`

`[/lang/xor]`

**=****<>****<****>****<=**

Note that if the expression consists of a number with the operator [/lang/and], **>=**`[/lang/or]`

, or `[/lang/xor]`

followed by a number, it will be treated as an arithmetic expression rather than a boolean expression. At least one of the values in the expression must be a boolean value to produce a boolean expression.

^{[1]}Note that a [/cat/number], [/cat/constant|predefined constant], [/cat/arith|arithmetic function] or numeric variable may be used as a boolean value. If the value of a number, numeric constant, numeric function, or variable is used in a boolean expression is zero, it resolves to `FALSE`

; all other numeric values used in a boolean expression resolve to `TRUE`

.