307 lazy val AExp: Parser[List[Token], AExp] = |
307 lazy val AExp: Parser[List[Token], AExp] = |
308 (T ~ T_OP("+") ~ AExp) ==> { case ((x, y), z) => Aop("+", x, z): AExp } || |
308 (T ~ T_OP("+") ~ AExp) ==> { case ((x, y), z) => Aop("+", x, z): AExp } || |
309 (T ~ T_OP("-") ~ AExp) ==> { case ((x, y), z) => Aop("-", x, z): AExp } || T |
309 (T ~ T_OP("-") ~ AExp) ==> { case ((x, y), z) => Aop("-", x, z): AExp } || T |
310 lazy val T: Parser[List[Token], AExp] = |
310 lazy val T: Parser[List[Token], AExp] = |
311 (F ~ T_OP("*") ~ T) ==> { case ((x, y), z) => Aop("*", x, z): AExp } || |
311 (F ~ T_OP("*") ~ T) ==> { case ((x, y), z) => Aop("*", x, z): AExp } || |
312 (F ~ T_OP("/") ~ T) ==> { case ((x, y), z) => Aop("*", x, z): AExp } || |
312 (F ~ T_OP("/") ~ T) ==> { case ((x, y), z) => Aop("/", x, z): AExp } || |
313 (F ~ T_OP("%") ~ T) ==> { case ((x, y), z) => Aop("*", x, z): AExp } || F |
313 (F ~ T_OP("%") ~ T) ==> { case ((x, y), z) => Aop("%", x, z): AExp } || F |
314 lazy val F: Parser[List[Token], AExp] = |
314 lazy val F: Parser[List[Token], AExp] = |
315 (T_LPAREN ~ AExp ~ T_RPAREN) ==> { case ((x, y), z) => y: AExp }|| |
315 (T_LPAREN ~ AExp ~ T_RPAREN) ==> { case ((x, y), z) => y: AExp }|| |
316 IdParser ==> { case x => Var(x): AExp } || |
316 IdParser ==> { case x => Var(x): AExp } || |
317 NumParser ==> { case x => Num(x): AExp } |
317 NumParser ==> { case x => Num(x): AExp } |
318 |
318 |