From af27da619d13c362f802e5cddf80484e01f75192 Mon Sep 17 00:00:00 2001 From: Sofia Date: Sat, 14 Mar 2026 16:06:08 +0200 Subject: [PATCH] Parse re-assignment --- examples/test.lua | 2 +- src/ast.rs | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/examples/test.lua b/examples/test.lua index e1e42d4..fb2f696 100644 --- a/examples/test.lua +++ b/examples/test.lua @@ -1,7 +1,7 @@ function max (a, b) local m = a if a then - local m = b + m = b end return m end \ No newline at end of file diff --git a/src/ast.rs b/src/ast.rs index b420cc4..f5a3120 100644 --- a/src/ast.rs +++ b/src/ast.rs @@ -229,6 +229,12 @@ impl Parse for Statement { name, expr, )) + } else if let Some(Token::Word(_)) = peeked + && stream.peek2() == Some(Token::Symbol('=')) + { + let name = stream.parse()?; + stream.expect(Token::Symbol('='))?; + Ok(Self::Assignment(None, name, stream.parse()?)) } else { Err(stream.expecting_err("statement")) }