progs/scala/re-bit.scala
changeset 294 c1de75d20aa4
parent 286 804fbb227568
child 359 fedc16924b76
equal deleted inserted replaced
293:1a4e5b94293b 294:c1de75d20aa4
   131   case CHAR(c) => ACHAR(Nil, c)
   131   case CHAR(c) => ACHAR(Nil, c)
   132   case ALT(r1, r2) => AALT(Nil, fuse(List(false), internalise(r1)), fuse(List(true), internalise(r2)))
   132   case ALT(r1, r2) => AALT(Nil, fuse(List(false), internalise(r1)), fuse(List(true), internalise(r2)))
   133   case SEQ(r1, r2) => ASEQ(Nil, internalise(r1), internalise(r2))
   133   case SEQ(r1, r2) => ASEQ(Nil, internalise(r1), internalise(r2))
   134   case STAR(r) => ASTAR(Nil, internalise(r))
   134   case STAR(r) => ASTAR(Nil, internalise(r))
   135 }
   135 }
       
   136 
   136 
   137 
   137 internalise(("a" | "ab") ~ ("b" | ""))
   138 internalise(("a" | "ab") ~ ("b" | ""))
   138 
   139 
   139 def retrieve(r: ARexp, v: Val) : List[Boolean] = (r, v) match {
   140 def retrieve(r: ARexp, v: Val) : List[Boolean] = (r, v) match {
   140   case (AONE(bs), Empty) => bs
   141   case (AONE(bs), Empty) => bs