diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2021-01-16 01:44:44 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2021-01-16 01:44:44 +0100 |
| commit | 85b12e35035af28a20d70b1fe3b319156004b24b (patch) | |
| tree | c34e2e10b703544fe71b4f99b91179e0110a0fb4 | |
| parent | 42e98759a60ece2e7ced073255fb26492a4535b3 (diff) | |
| download | sylt-85b12e35035af28a20d70b1fe3b319156004b24b.tar.gz | |
allow expect one of any token
| -rw-r--r-- | src/compiler.rs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/compiler.rs b/src/compiler.rs index caa72cd..a8bd6ff 100644 --- a/src/compiler.rs +++ b/src/compiler.rs @@ -29,9 +29,9 @@ macro_rules! error { } macro_rules! expect { - ($thing:expr, $exp:pat, $msg:expr) => { + ($thing:expr, $exp_head:pat $( | $exp_rest:pat ),* , $msg:expr) => { match $thing.peek() { - $exp => { $thing.eat(); true }, + $exp_head $( | $exp_rest )* => { $thing.eat(); true }, _ => { error!($thing, $msg); false } , } }; @@ -733,7 +733,7 @@ impl Compiler { while self.peek() != Token::EOF { self.statement(&mut block); - expect!(self, Token::Newline, "Expect newline after expression."); + expect!(self, Token::Newline | Token::EOF, "Expect newline or EOF after expression."); } block.add(Op::Return, self.line()); |
