Variables denote values, and appear as constituents of expressions.
typed_variable_declaration ::= <typed_variable_>simple_name : <typed_string_>name := string_expression ; variable_declaration ::= <variable_>simple_name := expression;
The elaboration of a variable declaration introduces the variable and assigns to it the value of the expression. The name of the variable is available after the assignment symbol.
A typed_variable can only be declare once.
a non-typed variable can be declared multiple times.
Before the completion of its first declaration, the value of variable is the null string.