diff --git a/src/main/java/dk/camelot64/kickc/parser/KickC.g4 b/src/main/java/dk/camelot64/kickc/parser/KickC.g4 index 6ddf1e7c9..f16a05d50 100644 --- a/src/main/java/dk/camelot64/kickc/parser/KickC.g4 +++ b/src/main/java/dk/camelot64/kickc/parser/KickC.g4 @@ -115,7 +115,6 @@ switchCase: 'case' expr ':' stmtSeq? ; - forLoop : forClassicInit ';' commaExpr ';' commaExpr? #forClassic | declTypes? NAME ':' expr ( '..' ) expr #forRange diff --git a/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java b/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java index 6386f39f0..e61f84a38 100644 --- a/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java +++ b/src/main/java/dk/camelot64/kickc/passes/Pass0GenerateStatementSequence.java @@ -4,6 +4,7 @@ import dk.camelot64.kickc.Compiler; import dk.camelot64.kickc.NumberParser; import dk.camelot64.kickc.asm.AsmClobber; import dk.camelot64.kickc.model.*; +import dk.camelot64.kickc.model.InternalError; import dk.camelot64.kickc.model.operators.*; import dk.camelot64.kickc.model.statements.*; import dk.camelot64.kickc.model.symbols.*; @@ -972,6 +973,11 @@ public class Pass0GenerateStatementSequence extends KickCBaseVisitor { return null; } + @Override + public Object visitStmtSwitch(KickCParser.StmtSwitchContext ctx) { + throw new InternalError("switch() is not supported in this version of the compiler."); + } + @Override public Object visitStmtFor(KickCParser.StmtForContext ctx) { this.visit(ctx.forLoop()); diff --git a/src/test/kc/cast-error.kc b/src/test/kc/cast-error.kc new file mode 100644 index 000000000..842eba103 --- /dev/null +++ b/src/test/kc/cast-error.kc @@ -0,0 +1,6 @@ +// Results in exception instead of a nice error message +// Reported by Paul Gardner-Stephen + +void main() { + *$d020 = $01; +} \ No newline at end of file