From 411748ad52b8cac9de770858406bbd5f12de43d5 Mon Sep 17 00:00:00 2001 From: Rob Greene Date: Mon, 14 May 2018 18:48:52 -0500 Subject: [PATCH] Initial REM removal. Have yet to fix up line numbers that go away. --- .../github/applecommander/bastokenizer/Optimization.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/github/applecommander/bastokenizer/Optimization.java b/src/main/java/io/github/applecommander/bastokenizer/Optimization.java index 3a37a76..b0a1b37 100644 --- a/src/main/java/io/github/applecommander/bastokenizer/Optimization.java +++ b/src/main/java/io/github/applecommander/bastokenizer/Optimization.java @@ -4,6 +4,7 @@ import com.webcodepro.applecommander.util.applesoft.Line; import com.webcodepro.applecommander.util.applesoft.Program; import com.webcodepro.applecommander.util.applesoft.Statement; import com.webcodepro.applecommander.util.applesoft.Token; +import com.webcodepro.applecommander.util.applesoft.Token.Type; import com.webcodepro.applecommander.util.applesoft.Visitor; import picocli.CommandLine.ITypeConverter; @@ -14,6 +15,12 @@ public enum Optimization { public Statement visit(Statement statement) { return statement.tokens.isEmpty() ? null : statement; } + }), + REMOVE_REM_STATEMENTS(new BaseVisitor() { + @Override + public Statement visit(Statement statement) { + return statement.tokens.get(0).type == Type.COMMENT ? null : statement; + } }) ; @@ -47,7 +54,7 @@ public enum Optimization { Program newProgram = new Program(); program.lines.forEach(l -> { Line line = l.accept(this); - if (line != null) newProgram.lines.add(line); + if (line != null && !line.statements.isEmpty()) newProgram.lines.add(line); }); return newProgram; }