diff options
Diffstat (limited to 'src/compiler.rs')
| -rw-r--r-- | src/compiler.rs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/compiler.rs b/src/compiler.rs index 4bd519d..94bc0cf 100644 --- a/src/compiler.rs +++ b/src/compiler.rs @@ -354,10 +354,11 @@ impl Compiler { self.scope(block); if Token::Else == self.peek() { + self.eat(); + let else_jmp = block.add(Op::Illegal, self.line()); block.patch(Op::JmpFalse(block.curr()), jump); - self.eat(); match self.peek() { Token::If => self.if_statment(block), Token::LeftBrace => self.scope(block), @@ -407,6 +408,11 @@ impl Compiler { self.if_statment(block); } + (Token::Unreachable, _, _, _) => { + self.eat(); + block.add(Op::Unreachable, self.line()); + } + (Token::LeftBrace, _, _, _) => { self.scope(block); } |
