progs/scala/re-annotated2.sc
changeset 645 304a12cdda6f
parent 644 9f984ff20020
equal deleted inserted replaced
644:9f984ff20020 645:304a12cdda6f
   209   case ASEQ(bs1, r1, r2) => (bsimp(r1), bsimp(r2)) match {
   209   case ASEQ(bs1, r1, r2) => (bsimp(r1), bsimp(r2)) match {
   210       case (AZERO, _) => AZERO
   210       case (AZERO, _) => AZERO
   211       case (_, AZERO) => AZERO
   211       case (_, AZERO) => AZERO
   212       case (AONE(bs2), r2s) => fuse(bs1 ++ bs2, r2s)
   212       case (AONE(bs2), r2s) => fuse(bs1 ++ bs2, r2s)
   213       // needed in order to keep the size down
   213       // needed in order to keep the size down
   214       case (AALTS(bs, rs), r2) => AALTS(bs1 ++ bs, rs.map(ASEQ(Nil, _, r2)))
   214       //case (AALTS(bs, rs), r2) => AALTS(bs1 ++ bs, rs.map(ASEQ(Nil, _, r2)))
   215       case (r1s, r2s) => ASEQ(bs1, r1s, r2s)
   215       case (r1s, r2s) => ASEQ(bs1, r1s, r2s)
   216   }
   216   }
   217   // distinctBy deletes copies of the same  "erased" regex
   217   // distinctBy deletes copies of the same  "erased" regex
   218   case AALTS(bs1, rs) => (flts(rs.map(bsimp))).distinctBy(erase) match {
   218   case AALTS(bs1, rs) => (flts(rs.map(bsimp))).distinctBy(erase) match {
   219       case Nil => AZERO
   219       case Nil => AZERO
   383 println(bsize(bders_simp(internalise(reg2), ("a" * 0).toList)))
   383 println(bsize(bders_simp(internalise(reg2), ("a" * 0).toList)))
   384 println(bsize(bders_simp(internalise(reg2), ("a" * 1).toList)))
   384 println(bsize(bders_simp(internalise(reg2), ("a" * 1).toList)))
   385 println(bsize(bders_simp(internalise(reg2), ("a" * 2).toList)))
   385 println(bsize(bders_simp(internalise(reg2), ("a" * 2).toList)))
   386 println(bsize(bders_simp(internalise(reg2), ("a" * 3).toList)))
   386 println(bsize(bders_simp(internalise(reg2), ("a" * 3).toList)))
   387 println(bsize(bders_simp(internalise(reg2), ("a" * 4).toList)))
   387 println(bsize(bders_simp(internalise(reg2), ("a" * 4).toList)))
   388 println(bsize(bders_simp(internalise(reg2), ("a" * 5).toList)))
   388 println(bsize(bders_simp(internalise(reg2), ("a" * 50000).toList)))