From b84896c8cff9486e33fdac12a7c7b50f7f7d8ed8 Mon Sep 17 00:00:00 2001 From: Rob Greene Date: Mon, 16 Jul 2018 22:16:03 -0500 Subject: [PATCH] Allowing a line continuation character of "\" with a newline immediately after the "\" character. --- .../io/github/applecommander/bastools/api/TokenReader.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/api/src/main/java/io/github/applecommander/bastools/api/TokenReader.java b/api/src/main/java/io/github/applecommander/bastools/api/TokenReader.java index 71e8b0a..c491874 100644 --- a/api/src/main/java/io/github/applecommander/bastools/api/TokenReader.java +++ b/api/src/main/java/io/github/applecommander/bastools/api/TokenReader.java @@ -145,6 +145,13 @@ public class TokenReader { ApplesoftKeyword.find(String.format("%c", tokenizer.ttype)) .map(kw -> Token.keyword(line, kw)) .orElse(Token.syntax(line, tokenizer.ttype))); + case '\\': + // Special case: introducing a backslash to ignore the IMMEDIATELY following EOL + // If this does not occur, we simply fall through and fail. That is intentional! + if (tokenizer.nextToken() == StreamTokenizer.TT_EOL) { + // Consume the EOL and continue on our merry way + break; + } default: throw new IOException(String.format( "Unknown! ttype=%d, nval=%f, sval=%s\n", tokenizer.ttype, tokenizer.nval, tokenizer.sval));