diff -r 47acfd7f9096 -r ae9782e62bdd progs/parser-combinators/comb1.sc --- a/progs/parser-combinators/comb1.sc Fri Nov 17 20:06:43 2023 +0000 +++ b/progs/parser-combinators/comb1.sc Tue Nov 28 11:42:31 2023 +0000 @@ -149,9 +149,6 @@ // A parser for arithmetic expressions (Terms and Factors) -"1 + 2 * 3" -"(1 + 2) * 3" -{ lazy val E: Parser[String, Int] = { (T ~ p"+" ~ E).map{ case ((x, _), z) => x + z } || (T ~ p"-" ~ E).map{ case ((x, _), z) => x - z } || T } @@ -159,7 +156,8 @@ (F ~ p"*" ~ T).map{ case ((x, _), z) => x * z } || F } lazy val F: Parser[String, Int] = { (p"(" ~ E ~ p")").map{ case ((_, y), _) => y } || NumParserInt } -} + +println(E.parse_all("2*2*2")) println(E.parse_all("1+3+4")) println(E.parse("1+3+4")) println(E.parse_all("4*2+3"))