equal
deleted
inserted
replaced
84 def parse(ts: List[Token]) = ts match { |
84 def parse(ts: List[Token]) = ts match { |
85 case T_ID(s)::ts => Set((s, ts)) |
85 case T_ID(s)::ts => Set((s, ts)) |
86 case _ => Set () |
86 case _ => Set () |
87 } |
87 } |
88 } |
88 } |
|
89 |
|
90 def len(xs: List[(Int, Int)]): Int = xs match { |
|
91 case Nil => 0 |
|
92 case (1, x)::xs => len(xs) + 1 |
|
93 case (_, x)::xs => len(xs) |
|
94 } |
|
95 |
|
96 def fst(p: (Int, Int)): Int = p match { |
|
97 case Nil => 0 |
|
98 case (1, x)::xs => len(xs) + 1 |
|
99 case (_, x)::xs => len(xs) |
|
100 } |
|
101 |
89 |
102 |
90 |
103 |
91 // arithmetic expressions |
104 // arithmetic expressions |
92 lazy val AExp: Parser[List[Token], AExp] = |
105 lazy val AExp: Parser[List[Token], AExp] = |
93 (T ~ T_OP("+") ~ AExp) ==> { case ((x, y), z) => Aop("+", x, z): AExp } || |
106 (T ~ T_OP("+") ~ AExp) ==> { case ((x, y), z) => Aop("+", x, z): AExp } || |