Es gibt Befehle, die nach einem THEN sauber verarbeitet werden, andere nicht.
Eine Möglichkeit wäre, Zeile 314 zu ändern von
elsif (match = /^(?<code>then\s*(go(sub|to))|then|go(sub|to))\s*(?<labels>[\w\s,.]+)+/
zu
elsif (match = /^(?<code>go(sub|to))\s*(?<labels>[\w\s,.]+)+/
Dann werden Labels nur noch hinter GOTO und GOSUB erwartet, nicht mehr hinter THEN. Sowas wie IF condition THEN target funktioniert dann natürlich nicht mehr, da muss man dann IF condition GOTO target oder IF condition THEN GOTO target schreiben. Ein richtiger Fix ist das also nicht, aber vielleicht hilft es ja.