const proc: for (inout integer: aVar) range (in integer: lowerLimit) to (in integer: upperLimit) do
(in proc: statements)
end for is action "PRC_FOR_TO";
const proc: for (inout integer: aVar) range (in integer: upperLimit) downto (in integer: lowerLimit) do
(in proc: statements)
end for is action "PRC_FOR_DOWNTO";
const proc: for (inout integer: variable) range (in integer: lowerLimit) to (in integer: upperLimit)
step (in integer: incr_step) do
(in proc: statements)
end for is action "PRC_FOR_TO_STEP";
const proc: for (inout integer: variable) range (in integer: upperLimit) downto (in integer: lowerLimit)
step (in integer: decr_step) do
(in proc: statements)
end for is action "PRC_FOR_DOWNTO_STEP";
const proc: FOR_STEP_DECLS (in type: aType) is func
begin
if getobj((inout aType: variable) +:= (in integer: delta)) <> NIL then
const proc: for (inout aType: variable) range (in aType: lowerLimit) to (in aType: upperLimit)
step (in integer: incr_step) do
(in proc: statements) end for is func
begin
variable := lowerLimit;
while variable <= upperLimit do
statements;
variable +:= incr_step;
end while;
end func;
end if;
if getobj((inout aType: variable) -:= (in integer: delta)) <> NIL then
const proc: for (inout aType: variable) range (in aType: upperLimit) downto (in aType: lowerLimit)
step (in integer: decr_step) do
(in proc: statements) end for is func
begin
variable := upperLimit;
while variable >= lowerLimit do
statements;
variable -:= decr_step;
end while;
end func;
end if;
end func;
const proc: FOR_UNTIL_DECLS (in type: aType) is func
begin
const proc: for (inout aType: variable)
range (in aType: lowerLimit)
to (in aType: upperLimit)
until (in func boolean: condition)
do (in proc: statements) end for is func
local
var boolean: continue is FALSE;
begin
variable := lowerLimit;
continue := variable <= upperLimit;
while continue and not condition do
statements;
if variable < upperLimit then
incr(variable);
else
continue := FALSE;
end if;
end while;
end func;
const proc: for (inout aType: variable)
range (in aType: lowerLimit)
to (in aType: upperLimit)
until (ref boolean: condition)
do (in proc: statements) end for is func
local
var boolean: continue is FALSE;
begin
variable := lowerLimit;
continue := variable <= upperLimit;
while continue and not condition do
statements;
if variable < upperLimit then
incr(variable);
else
continue := FALSE;
end if;
end while;
end func;
const proc: for (inout aType: variable)
range (in aType: upperLimit)
downto (in aType: lowerLimit)
until (in func boolean: condition)
do (in proc: statements) end for is func
local
var boolean: continue is FALSE;
begin
variable := upperLimit;
continue := variable >= lowerLimit;
while continue and not condition do
statements;
if variable > lowerLimit then
decr(variable);
else
continue := FALSE;
end if;
end while;
end func;
const proc: for (inout aType: variable)
range (in aType: upperLimit)
downto (in aType: lowerLimit)
until (ref boolean: condition)
do (in proc: statements) end for is func
local
var boolean: continue is FALSE;
begin
variable := upperLimit;
continue := variable >= lowerLimit;
while continue and not condition do
statements;
if variable > lowerLimit then
decr(variable);
else
continue := FALSE;
end if;
end while;
end func;
end func;
const proc: FOR_DECLS (in type: aType) is func
begin
const proc: for (inout aType: variable) range (in aType: lowerLimit) to (in aType: upperLimit) do
(in proc: statements) end for is func
local
var boolean: continue is FALSE;
begin
variable := lowerLimit;
continue := variable <= upperLimit;
while continue do
statements;
if variable < upperLimit then
incr(variable);
else
continue := FALSE;
end if;
end while;
end func;
const proc: for (inout aType: variable) range (in aType: upperLimit) downto (in aType: lowerLimit) do
(in proc: statements) end for is func
local
var boolean: continue is FALSE;
begin
variable := upperLimit;
continue := variable >= lowerLimit;
while continue do
statements;
if variable > lowerLimit then
decr(variable);
else
continue := FALSE;
end if;
end while;
end func;
FOR_UNTIL_DECLS(aType);
FOR_STEP_DECLS(aType);
end func;
FOR_UNTIL_DECLS(integer);
FOR_DECLS(char);
FOR_DECLS(boolean);
const proc: FOR_ENUM_DECLS (in type: aType) is func
begin
const proc: for (inout aType: variable) range (attr aType) do
(in proc: statements) end for is func
begin
for variable range aType.first to aType.last do
statements;
end for;
end func;
end func;
const proc: for (in integer: numRepeats) do
(in proc: statements)
end for is func
local
var integer: count is 0;
begin
for count range numRepeats downto 1 do
statements;
end for;
end func;
const proc: for (inout char: forVar) range (in string: stri) do
(in proc: statements)
end for is action "STR_FOR";
const proc: for key (inout integer: keyVar) range (in string: stri) do
(in proc: statements)
end for is action "STR_FOR_KEY";
const proc: for (inout char: forVar) key (inout integer: keyVar) range (in string: stri) do
(in proc: statements)
end for is action "STR_FOR_VAR_KEY";
const proc: for (inout char: forVar)
range (in string: stri)
until (in func boolean: condition) do
(in proc: statements)
end for is func
local
var integer: number is 1;
begin
if stri <> "" then
forVar := stri[1];
while number <= length(stri) and not condition do
statements;
incr(number);
if number <= length(stri) then
forVar := stri[number];
end if;
end while;
end if;
end func;
const proc: for (inout char: forVar)
range (in string: stri)
until (ref boolean: condition) do
(in proc: statements)
end for is func
local
var integer: number is 0;
begin
if stri <> "" then
forVar := stri[1];
while number <= length(stri) and not condition do
statements;
incr(number);
if number <= length(stri) then
forVar := stri[number];
end if;
end while;
end if;
end func;
const proc: for key (inout integer: number)
range (in string: stri)
until (in func boolean: condition) do
(in proc: statements)
end for is func
begin
for number range 1 to length(stri) until condition do
statements;
end for;
end func;
const proc: for key (inout integer: number)
range (in string: stri)
until (ref boolean: condition) do
(in proc: statements)
end for is func
begin
for number range 1 to length(stri) until condition do
statements;
end for;
end func;
const proc: for (inout char: forVar)
key (inout integer: number)
range (in string: stri)
until (in func boolean: condition) do
(in proc: statements)
end for is func
begin
if stri <> "" then
forVar := stri[1];
while number <= length(stri) and not condition do
statements;
incr(number);
if number <= length(stri) then
forVar := stri[number];
end if;
end while;
end if;
end func;
const proc: for (inout char: forVar)
key (inout integer: number)
range (in string: stri)
until (ref boolean: condition) do
(in proc: statements)
end for is func
begin
if stri <> "" then
forVar := stri[1];
while number <= length(stri) and not condition do
statements;
incr(number);
if number <= length(stri) then
forVar := stri[number];
end if;
end while;
end if;
end func;