> concepts in its 'Tunnels'
They have exact semantics of GOSUB, RETURN, and POP from Atari BASIC.
->tunnnel-> is GOSUB tunnel_line_number
->-> is RETURN
->tunnel2-> within a tunnel is basically POP; GOSUB tunnel2_line_number
and
->knot is GOTO knot_line_number
I really like thinking about translating those weird languages into some proper language as directly as possible, but for Ink the host language must have been either Atari BASIC or assembler. Labeled break and continue in modern languages is not powerful enough, even PHP goto is not powerful enough (because it can't goto into a loop or a conditional block).
I mean technically you could do it by simulating goto with break and continue a and faking conditional and loops with this simulated goto, but still there would be limitation that goto target in Ink can be a variable.
Also the whole point of translating language into some proper host language is to able to mix the two as freely as possible.
I wonder how would modern version of goto based programming looked. What tools would we have for tracking errors in such code if we didn't abandon it altogether in favor of nested blocks and functions.
Ink for example tracks dangling ends of the story (not marked with ->END or ->DONE). Maybe goto based coding environment would also have equivalent of something like that. Being split into sections that need to overtly exit to some other section or program end on all the code paths.