aboutsummaryrefslogtreecommitdiffstats
path: root/src/compiler.rs
diff options
context:
space:
mode:
authorEdvard Thörnros <edvard.thornros@gmail.com>2021-01-11 15:13:52 +0100
committerEdvard Thörnros <edvard.thornros@gmail.com>2021-01-11 15:13:52 +0100
commit3a488562804af56f5df47e887a884b80acaa0f81 (patch)
treeaa908c588e458734ba02d66168695098906859a6 /src/compiler.rs
parentb81e250fab7f54838a9b205e51a49bd5b932c618 (diff)
downloadsylt-3a488562804af56f5df47e887a884b80acaa0f81.tar.gz
Unreachable statement
Diffstat (limited to 'src/compiler.rs')
-rw-r--r--src/compiler.rs8
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);
}