diff --git a/parser/src/ast.rs b/parser/src/ast.rs index 50579e4..e58eba5 100644 --- a/parser/src/ast.rs +++ b/parser/src/ast.rs @@ -112,6 +112,10 @@ pub enum Statement { update: Box, body: Box, }, + For { + pattern: String, + iterator: Expression, + }, Return(Option), Break, diff --git a/parser/src/lib.rs b/parser/src/lib.rs index 9dc588c..485829d 100644 --- a/parser/src/lib.rs +++ b/parser/src/lib.rs @@ -340,6 +340,11 @@ impl From> for Statement { body: Box::new(Statement::from(inner.next().unwrap())), }, + Rule::for_stmt => Statement::For { + pattern: inner.next().unwrap().as_str().to_string(), + iterator: inner.next().unwrap().into(), + }, + Rule::assign_statement => Statement::VarAssign(VarAssignStmt { target: Expression::from(inner.next().unwrap()), value: Expression::from(inner.next().unwrap()),