Thank you, humpty. I did not think of this case. Now that you have shown it to me, I'm not quite sure what to do about it!
We've been discussing INCLUDE in the preprocessor over here
. The preprocessor can't find an INCLUDE embedded in a single-line IF. Obviously the scanner in my new SW.BEGIN code has exactly the same problem. The scanner parses only the IF, it does not attempt to parse either of the conditionally-executed statements.
I can fix this one of two ways:
- Fix the scanner so it knows how to scan (not fully-parse!) single-line IF
- Revert to the old behavior any time the interpreter finds a SW.BREAK that has not been pre-scanned -- that is, just start scanning forward until SW.END.
Another possible problem: if the SW.END is in a single-line IF, then SW.BEGIN gets "No sw.end after sw.begin". Does that construct even make sense? I suppose I could say the same of SW.CASE/SW.DEFAULT -- those won't work in single-line IF either.