changeset 16 | c51178fa85fe |
parent 15 | cd0ceaf89c1d |
child 17 | 3241b1e71633 |
15:cd0ceaf89c1d | 16:c51178fa85fe |
---|---|
443 { |
443 { |
444 val s = "abab"//rd_string_gen(alphabet_size, 3)//"abaa"//rd_string_gen(alphabet_size, 3) |
444 val s = "abab"//rd_string_gen(alphabet_size, 3)//"abaa"//rd_string_gen(alphabet_size, 3) |
445 val r = ("ab"| SEQ(ONE, "ab"))//internalise(random_struct_gen(4))//ASTAR(List(),AALTS(List(),List(ASTAR(List(Z),ACHAR(List(),'a')), ASEQ(List(S),ACHAR(List(),'a'),ACHAR(List(),'b')))))//internalise(balanced_struct_gen(3))//SEQ(ALTS(List(STAR("a"),ALTS(List("a","c")))),SEQ(ALTS(List("c","a")),ALTS(List("c","b")))) //random_struct_gen(7) |
445 val r = ("ab"| SEQ(ONE, "ab"))//internalise(random_struct_gen(4))//ASTAR(List(),AALTS(List(),List(ASTAR(List(Z),ACHAR(List(),'a')), ASEQ(List(S),ACHAR(List(),'a'),ACHAR(List(),'b')))))//internalise(balanced_struct_gen(3))//SEQ(ALTS(List(STAR("a"),ALTS(List("a","c")))),SEQ(ALTS(List("c","a")),ALTS(List("c","b")))) //random_struct_gen(7) |
446 for(j <- 0 to s.length - 1){ |
446 for(j <- 0 to s.length - 1){ |
447 val ss = s.slice(0, j+ 1) |
447 val ss = s.slice(0, j+ 1) |
448 val nangao = ders_simp(r, ss.toList) |
448 val nangao = ders_simp(internalise(r), ss.toList) |
449 val easy = bsimp(bders(ss.toList, r)) |
449 val easy = bsimp(bders(ss.toList, internalise(r))) |
450 if(!(nangao == easy || pushbits(nangao) == (easy))){ |
450 if(!(nangao == easy || pushbits(nangao) == (easy))){ |
451 println(j) |
451 println(j) |
452 println("not equal") |
452 println("not equal") |
453 println("string") |
453 println("string") |
454 println(ss) |
454 println(ss) |
455 println("original regex") |
455 println("original regex") |
456 println(annotated_tree(r)) |
456 println(regx_tree(r)) |
457 println("regex after ders simp") |
457 println("regex after ders simp") |
458 println(annotated_tree(nangao)) |
458 println(annotated_tree(nangao)) |
459 println("regex after ders") |
459 println("regex after ders") |
460 println(annotated_tree(bders(ss.toList, r)))//flats' fuse when opening up AALTS causes the difference |
460 println(annotated_tree(bders(ss.toList, internalise(r))))//flats' fuse when opening up AALTS causes the difference |
461 println("regex after ders and then a single simp") |
461 println("regex after ders and then a single simp") |
462 println(annotated_tree(easy)) |
462 println(annotated_tree(easy)) |
463 } |
463 } |
464 } |
464 } |
465 } |
465 } |
549 val bs3 = retrieve(as, decode(erase(as), bs1.tail)) |
549 val bs3 = retrieve(as, decode(erase(as), bs1.tail)) |
550 println(decode(erase(as), bs1.tail)) |
550 println(decode(erase(as), bs1.tail)) |
551 println(bs3) |
551 println(bs3) |
552 } |
552 } |
553 def essence_posix(){ |
553 def essence_posix(){ |
554 val s = "abab"//rd_string_gen(alphabet_size, 3)//"abaa"//rd_string_gen(alphabet_size, 3) |
554 //val s = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"//rd_string_gen(alphabet_size, 3)//"abaa"//rd_string_gen(alphabet_size, 3) |
555 val r = STAR("ab"| SEQ(ONE, "ab"))//internalise(random_struct_gen(4))//ASTAR(List(),AALTS(List(),List(ASTAR(List(Z),ACHAR(List(),'a')), ASEQ(List(S),ACHAR(List(),'a'),ACHAR(List(),'b')))))//internalise(balanced_struct_gen(3))//SEQ(ALTS(List(STAR("a"),ALTS(List("a","c")))),SEQ(ALTS(List("c","a")),ALTS(List("c","b")))) //random_struct_gen(7) |
555 val s0 = "a" |
556 ders(s.toList, r) |
556 val r = SEQ(STAR(ALT("a", "aa")), "b")//internalise(random_struct_gen(4))//ASTAR(List(),AALTS(List(),List(ASTAR(List(Z),ACHAR(List(),'a')), ASEQ(List(S),ACHAR(List(),'a'),ACHAR(List(),'b')))))//internalise(balanced_struct_gen(3))//SEQ(ALTS(List(STAR("a"),ALTS(List("a","c")))),SEQ(ALTS(List("c","a")),ALTS(List("c","b")))) //random_struct_gen(7) |
557 } |
557 for(i <- 1 to 40){ |
558 val s = s0*i |
|
559 //printf("%d %d\n",i, size(ders(s.toList, r))) |
|
560 printf("%d %d\n",i, asize(ders_simp( internalise(r), s.toList))) |
|
561 //println(asize(ders_simp( internalise(r), s.toList))) |
|
562 } |
|
563 } |
|
564 |
|
558 def main(args: Array[String]) { |
565 def main(args: Array[String]) { |
559 //check_all() |
566 //check_all() |
560 //radical_correctness() |
567 //radical_correctness() |
561 //correctness_proof_convenient_path() |
568 //correctness_proof_convenient_path() |
562 //retrieve_experience() |
569 //retrieve_experience() |
563 christian_def() |
570 //christian_def() |
571 essence_posix() |
|
564 } |
572 } |
565 } |
573 } |
566 |
574 |