for self-modification to work, THEN is mandatory before line numbers

This commit is contained in:
Luxferre
2026-06-13 22:57:18 +03:00
parent 692018ec4f
commit 48c63cac8f
2 changed files with 2 additions and 2 deletions
+1 -1
View File
@@ -12,7 +12,7 @@ The LTTB specification expands upon the original Design Notes in the following m
- Any invalid statement (including `REM`) can be used for comments. - Any invalid statement (including `REM`) can be used for comments.
- No command can be abbreviated inside `IF` statements. - No command can be abbreviated inside `IF` statements.
- `LET` and `THEN` keywords are optional. - `LET` and `THEN` keywords are optional.
- `IF` statements also allow inserting line numbers after `THEN`, making it possible to write self-modifying programs. - `IF` statements also allow inserting line numbers after `THEN`, making it possible to write self-modifying programs. In this case, `THEN` is mandatory.
- A special `RND(n)` function is introduced that generates a random number from 0 to `n-1`. - A special `RND(n)` function is introduced that generates a random number from 0 to `n-1`.
- The `NEW` command is synonym to `CLEAR`. - The `NEW` command is synonym to `CLEAR`.
- The `BYE` command can be used to exit the interpreter. - The `BYE` command can be used to exit the interpreter.
+1 -1
View File
@@ -62,7 +62,7 @@ Execute a statement `[stmt]` if the relation denoted by `relop` holds between `[
Examples: `IF A > B THEN LET C = A-B`, `IF X<1000 THEN GOTO 400` Examples: `IF A > B THEN LET C = A-B`, `IF X<1000 THEN GOTO 400`
Non-standard extension: if the `[stmt]` statement starts with a line number, LTTB doesn't execute it immediately but instead overwrites the original line with the number it starts with. This allows writing self-modifying programs in LTTB. Non-standard extension: if `THEN` is specified **explicitly** and the `[stmt]` statement starts with a line number, LTTB doesn't execute it immediately but instead overwrites the original line with the number it starts with. This allows writing self-modifying programs in LTTB.
### `GOTO [expr]` ### `GOTO [expr]`