From 85b12e35035af28a20d70b1fe3b319156004b24b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustav=20S=C3=B6rn=C3=A4s?= Date: Sat, 16 Jan 2021 01:44:44 +0100 Subject: allow expect one of any token --- src/compiler.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/compiler.rs') 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()); -- cgit v1.2.1