diff --git a/reid_src/test.reid b/reid_src/test.reid index 5403a71..0e0285c 100644 --- a/reid_src/test.reid +++ b/reid_src/test.reid @@ -1,3 +1,3 @@ -let number = 2 + 5 * 2 + 5 + 1 * 10 + 1; +let number = 2 * 5 * 2 - 10 + 5 * 7; let text = "" + number; print(text); \ No newline at end of file diff --git a/src/parser/parsed_reid.rs b/src/parser/parsed_reid.rs index 0d1721b..65077a0 100644 --- a/src/parser/parsed_reid.rs +++ b/src/parser/parsed_reid.rs @@ -149,11 +149,10 @@ impl ArithmeticExpression { // Replace all (expr, "*"), (expr, any) => ((mult_expr, any) let clone = list.clone(); let iter = clone.iter().enumerate().rev(); - let mut previous: Option<(Expression, Option)> = None; for (idx, (exp, sign)) in iter { if let Some(sign) = sign { if sign == "*" { - if let Some((exp2, sign2)) = previous { + if let Some((exp2, sign2)) = list.clone().get(idx + 1) { list.remove(idx + 1); list.remove(idx); let expr = Expression::ArithmeticExpression( @@ -164,7 +163,6 @@ impl ArithmeticExpression { }; } } - previous = Some((exp.clone(), sign.clone())); } let mut ret = Err(SyntaxError::Fatal);