diff options
| author | Edvard Thörnros <edvard.thornros@gmail.com> | 2021-01-30 23:17:49 +0100 |
|---|---|---|
| committer | Edvard Thörnros <edvard.thornros@gmail.com> | 2021-01-30 23:17:49 +0100 |
| commit | d2fd074370d829d3d1dfbc6279f1fcbde769eeb3 (patch) | |
| tree | ecd4e350205eb1bfece02f2baaac1282897f4ecb /src/compiler.rs | |
| parent | 6b5e59311511b1462c7a10ba1389782f640e77a0 (diff) | |
| download | sylt-d2fd074370d829d3d1dfbc6279f1fcbde769eeb3.tar.gz | |
Add in the yield keyword
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 92bf3fc..b7fdce1 100644 --- a/src/compiler.rs +++ b/src/compiler.rs @@ -473,7 +473,8 @@ impl Compiler { let mut function_block = Block::new(&name, &self.current_file, self.line()); let block_id = self.blocks.len(); - self.blocks.push(Rc::new(RefCell::new(Block::new(&name, &self.current_file, self.line())))); + let new_block = Block::new(&name, &self.current_file, self.line()); + self.blocks.push(Rc::new(RefCell::new(new_block))); let _ret = push_frame!(self, function_block, { loop { @@ -888,6 +889,11 @@ impl Compiler { } } + (Token::Yield, ..) => { + self.eat(); + block.add(Op::Yield, self.line()); + } + (Token::Identifier(name), Token::ColonEqual, ..) => { self.eat(); self.eat(); |
