From 6718b634844a7db28ef01374701d1f77c4fe1716 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edvard=20Th=C3=B6rnros?= Date: Tue, 12 Jan 2021 20:04:02 +0100 Subject: Fib test and allowing skipping of comma --- src/compiler.rs | 6 ++++-- tests/fib.tdy | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 tests/fib.tdy diff --git a/src/compiler.rs b/src/compiler.rs index 0dfa1a3..df094ae 100644 --- a/src/compiler.rs +++ b/src/compiler.rs @@ -386,7 +386,7 @@ impl Compiler { // Definition match self.peek_four() { - (Token::Identifier(name), Token::Identifier(typ), Token::ColonEqual, _) => { + (Token::Identifier(name), Token::Identifier(typ), Token::ColonEqual, ..) => { self.eat(); self.eat(); self.eat(); @@ -397,12 +397,14 @@ impl Compiler { } } - (Token::Identifier(name), Token::ColonEqual, _, _) => { + (Token::Identifier(name), Token::ColonEqual, ..) => { self.eat(); self.eat(); self.define_variable(&name, Type::UnkownType, block); } + (Token::Comma, ..) => {} + _ => { error!(self, "Expected definition at start of for-loop."); } } diff --git a/tests/fib.tdy b/tests/fib.tdy new file mode 100644 index 0000000..549d68a --- /dev/null +++ b/tests/fib.tdy @@ -0,0 +1,15 @@ +a := 0 +for j := 0, j < 100000, j = j + 1 { + a = 0 + b := 1 + + for i := 0, i < 90, i = i + 1 { + c := a + a = b + b = c + b + } +} + +// Expect 2880067194370816120 +print a + -- cgit v1.2.1