equal
deleted
inserted
replaced
65 lazy val T: Parser[String, Int] = |
65 lazy val T: Parser[String, Int] = |
66 (F ~ "*" ~ T) ==> { case ((x, y), z) => x * z} || F |
66 (F ~ "*" ~ T) ==> { case ((x, y), z) => x * z} || F |
67 lazy val F: Parser[String, Int] = |
67 lazy val F: Parser[String, Int] = |
68 ("(" ~ E ~ ")") ==> { case ((x, y), z) => y} || NumParser |
68 ("(" ~ E ~ ")") ==> { case ((x, y), z) => y} || NumParser |
69 |
69 |
|
70 println(E.parse_all("1*2+3")) |
|
71 println(E.parse_all("1+2*3")) |
|
72 println(E.parse_all("1+2+3")) |
70 println(E.parse_all("1+2+3")) |
73 println(E.parse_all("1+2+3")) |
71 println(E.parse_all("1+2*3+1")) |
74 println(E.parse_all("1+2*3+1")) |
72 |
75 |
73 |
76 |
74 // no left-recursion allowed |
77 // no left-recursion allowed |