Nested blocks
DO...OD, REPEAT … UNTIL and IF … FI blocks can be nested. In a nested block you can declare variables, arrays and procedures with the same names as those on a higher level.
#BEGIN
DO
NUMBER i := 3
DO
TEXT i := "xxx"
first: @( i )
#
OD
#
second: @( i )
#
OD
END#
Result:
first: xxx
second: 3.00
The first and second i are not the same because they are at the different levels of the instruction.