This section provides an introduction of what is an expression. A data literal or a variable is a simple expression. A single operation or a group of multiple operations is a complex express.

Giving a precise single definition of an expression is not an easy task. So I will try to define
it in a recursive way:

1. A simple expression is a presentation of a data value like, a literal, a variable, an element
of an array, or a function call.

2. A complex expression is a presentation of a data value returned
from an operation represented by an operator, and one or two expressions
as operands. The operation will result a data value.

If you apply rule #2 recursively, an expression may contain multiple operations in a sequence.
When this happens, operations must be carried out in an order defined by the following rules:

A. The operation enclosed in a pair of parentheses must be carried out before an operation outside the parentheses.

B. The operation with a higher precedence must be carried out before an operation with lower precedence.

C. The operation on the left must be carried out before the operation on the right.

D. Rule A must be applied before Rule B, which must be applied before Rule C.

Examples of expressions:

"Hello world!" 'Simple expression - a String literal
777 'Simple expression - an Integer literal
author 'Simple expression - a variable
Date() 'Simple expression - a function call
7*9.99 'Complex expression - an arithmetic operation
"Hello "&author 'Complex expression - a string concatenation
(7+2)*9.99 > 50 'Complex expression - multiple operations