changeset 261 | 24531cfaa36a |
parent 93 | 4794759139ea |
child 399 | 5c1fbb39c93e |
260:65d1ea0e989f | 261:24531cfaa36a |
---|---|
1 abstract class Rexp |
1 def OPT(r: Rexp) = ALT(r, EMPTY) |
2 |
2 |
3 case object NULL extends Rexp |
3 def NTIMES(r: Rexp, n: Int) : Rexp = n match { |
4 case object EMPTY extends Rexp |
4 case 0 => EMPTY |
5 case class CHAR(c: Char) extends Rexp |
5 case 1 => r |
6 case class ALT(r1: Rexp, r2: Rexp) extends Rexp |
6 case n => SEQ(r, NTIMES(r, n - 1)) |
7 case class SEQ(r1: Rexp, r2: Rexp) extends Rexp |
7 } |
8 case class STAR(r: Rexp) extends Rexp |
8 |