Spiral.scala
changeset 16 c51178fa85fe
parent 15 cd0ceaf89c1d
child 17 3241b1e71633
equal deleted inserted replaced
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