Document optional line numbers
Chapter 2 gets the rule and the refusal, chapter 4 gets the payoff for LABEL, chapter 9 says DSAVE writes the numbers it handed out and to RENUMBER first if you want gaps, chapter 10 shows a host loading numberless source, chapter 13 gets the QuickBASIC-shaped divergence, and chapter 14's source[] passage gets its second half. Chapter 14 said "two prescans" and listed two; there were three before this and there are four now, so it lists all four and says which of them reports against the right line. TODO.md section 6 records four things found on the way and deliberately not fixed: set_label() filing into the active scope rather than the root, three prescans reporting the wrong line number, duplicate written line numbers still replacing silently, and renumber.c's file-scope scratch arrays. examples/embed.c runs the same program twice, numbered and not, so the example compiles the feature rather than describing it. Its header pointed at ./build/examples/embed, which is not where the binary lands. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -183,6 +183,33 @@ ARRIVED
|
||||
using for its own sake: a program written with labels is immune to `RENUMBER`, because
|
||||
there is no number to rewrite.
|
||||
|
||||
Follow that one step further and the numbers stop earning their keep at all. A program
|
||||
in a file can leave them out — see
|
||||
[Chapter 2](02-getting-started.md#a-program-in-a-file-does-not-need-them) — and then
|
||||
every branch it makes is by name:
|
||||
|
||||
```basic
|
||||
GOSUB GREET
|
||||
GOTO FINISH
|
||||
|
||||
PRINT "NOT REACHED"
|
||||
|
||||
LABEL GREET
|
||||
PRINT "HELLO"
|
||||
RETURN
|
||||
|
||||
LABEL FINISH
|
||||
PRINT "DONE"
|
||||
```
|
||||
|
||||
```output
|
||||
HELLO
|
||||
DONE
|
||||
```
|
||||
|
||||
Nothing in that program can be broken by inserting a line into it, which is the whole
|
||||
argument.
|
||||
|
||||
## ON
|
||||
|
||||
`ON` picks the *n*th target from a list, counting from one:
|
||||
|
||||
Reference in New Issue
Block a user