aboutsummaryrefslogtreecommitdiffstats
path: root/src/compiler.rs
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2021-01-16 01:44:44 +0100
committerGustav Sörnäs <gustav@sornas.net>2021-01-16 01:44:44 +0100
commit85b12e35035af28a20d70b1fe3b319156004b24b (patch)
treec34e2e10b703544fe71b4f99b91179e0110a0fb4 /src/compiler.rs
parent42e98759a60ece2e7ced073255fb26492a4535b3 (diff)
downloadsylt-85b12e35035af28a20d70b1fe3b319156004b24b.tar.gz
allow expect one of any token
Diffstat (limited to 'src/compiler.rs')
-rw-r--r--src/compiler.rs6
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());