Execute Brain****/ALGOL 68: Difference between revisions
Content added Content deleted
(I can read it, but I don't know the language enough to fix it.) |
(Allow for nested []) |
||
Line 1: | Line 1: | ||
{{incorrect}} |
|||
The below Hello World fails. |
|||
<pre> |
|||
>++++++++[<+++++++++>-]<.>>+>+>++>[-]+<[>[->+<<++++>]<<]>.+++++++..+++.> |
|||
>+++++++.<<<[[-]<[-]>]<+++++++++++++++.>>.+++.------.--------.>>+.>++++. |
|||
</pre> |
|||
{{implementation|Brainf***}}{{collection|RCBF}} |
{{implementation|Brainf***}}{{collection|RCBF}} |
||
Line 38: | Line 32: | ||
# [ # VOID: |
# [ # VOID: |
||
IF data list[data addr] = zero THEN |
IF data list[data addr] = zero THEN |
||
# skip to the end of the loop, allowing for nested loops # |
|||
INT br level := 0; |
|||
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 |
DO SKIP OD |
||
FI, |
FI, |
||
# ] # VOID: |
# ] # VOID: |
||
IF data list[data addr] /= zero THEN |
IF data list[data addr] /= zero THEN |
||
# skip to the start of the loop, allowing for nested loops # |
|||
INT br level := 0; |
|||
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 |
DO SKIP OD |
||
FI |
FI |