Execute Brain****/ALGOL 68: Difference between revisions

m
Fixed syntax highlighting.
m (Categorization now in master page)
m (Fixed syntax highlighting.)
 
(3 intermediate revisions by 3 users not shown)
Line 2:
 
An implementation of BF in [[ALGOL 68]] for Rosetta Code.
<langsyntaxhighlight lang="algol68">MODE BYTE = SHORT SHORT SHORT INT;
MODE CADDR = BYTE; # code address #
Line 32:
# [ # VOID:
IF data list[data addr] = zero THEN
FOR# newskip addrto FROMthe codeend addrof +the 1loop, WHILEallowing for nested loops #
INT br code addrlevel := new addr0;
code list[new addr] /= ABS "]"WHILE
IF code list[code addr] = ABS "["
THEN
br level +:= 1;
ELIF code list[code addr] = ABS "]"
THEN
br level -:= 1
FI;
IF br level > 0
THEN
code addr +:= 1;
TRUE
ELSE
FALSE
FI
DO SKIP OD
FI,
# ] # VOID:
IF data list[data addr] /= zero THEN
FOR# newskip addrto FROMthe codestart addrof -the 1loop, BYallowing -1for WHILEnested loops #
INT br code addrlevel := new addr0;
code list[new addr] /= ABS "["WHILE
IF code list[code addr] = ABS "["
THEN
br level +:= 1
ELIF code list[code addr] = ABS "]"
THEN
br level -:= 1
FI;
code addr -:= 1;
br level < 0
DO SKIP OD
FI
Line 60 ⟶ 83:
FOR i TO UPB code list DO byte code list[i] := ABS code list[i] OD;
run(byte code list)</langsyntaxhighlight>
9,476

edits