grammar; pub Expression: i64 = { , PLUS => { left + right }, STAR => { left * right }, }; Term: i64 = { NUMBER => { <>.parse::().unwrap() }, LEFT_PARENTHESIS RIGHT_PARENTHESIS, }; pub ExpressionPro: i64 = { , STAR => { left * right }, }; Expression2Pro: i64 = { , PLUS => { left + right }, }; TermPro: i64 = { NUMBER => { <>.parse::().unwrap() }, LEFT_PARENTHESIS RIGHT_PARENTHESIS, }; match { r"\p{Zs}+" => { }, r"[0-9]+" => NUMBER, "+" => PLUS, "*" => STAR, "(" => LEFT_PARENTHESIS, ")" => RIGHT_PARENTHESIS, }