equal
deleted
inserted
replaced
141 } |
141 } |
142 def F_SEQ_Empty1(f1: Val => Val, f2: Val => Val) = |
142 def F_SEQ_Empty1(f1: Val => Val, f2: Val => Val) = |
143 (v:Val) => Sequ(f1(Empty), f2(v)) |
143 (v:Val) => Sequ(f1(Empty), f2(v)) |
144 def F_SEQ_Empty2(f1: Val => Val, f2: Val => Val) = |
144 def F_SEQ_Empty2(f1: Val => Val, f2: Val => Val) = |
145 (v:Val) => Sequ(f1(v), f2(Empty)) |
145 (v:Val) => Sequ(f1(v), f2(Empty)) |
146 def F_RECD(f: Val => Val) = (v:Val) => v match { |
146 |
147 case Rec(x, v) => Rec(x, f(v)) |
|
148 } |
|
149 def F_ERROR(v: Val): Val = throw new Exception("error") |
147 def F_ERROR(v: Val): Val = throw new Exception("error") |
150 |
148 |
151 // simplification |
149 // simplification |
152 def simp(r: Rexp): (Rexp, Val => Val) = r match { |
150 def simp(r: Rexp): (Rexp, Val => Val) = r match { |
153 case ALT(r1, r2) => { |
151 case ALT(r1, r2) => { |