Spiral.scala
changeset 149 6c5920fd02a7
parent 148 c8ef391dd6f7
child 150 b51d34113d47
--- a/Spiral.scala	Fri Apr 10 11:58:11 2020 +0100
+++ b/Spiral.scala	Thu Apr 16 09:14:15 2020 +0100
@@ -842,7 +842,7 @@
         println(r)
         println(ders(s, r))
         println(ders2(s,r))
-        println("neq")
+        println("neq") 
       }
     }
   }
@@ -851,7 +851,7 @@
     val bits = List(S,S,Z)
     val reg = ("a" | (("a")%) )~("b")
     val res = decode_aux(reg, bis)
-    val result = decode_aux(reg, bis)
+    val result = decode_aux(reg, bis) 
     val result1 = decode_aux(reg, List(Z))
     println(res)
     println(result)
@@ -859,28 +859,32 @@
     println(result1)
   }
   def finj_test0(c: Char, r: ARexp){
-    val dr = bsimp(bder(c, r))
-    val v = if(bnullable(dr)) mkeps(erase(dr)) else mkchr(erase(dr))
-    val v0 = if(bnullable(dr)) mkeps(erase(bder(c,r))) else mkchr(erase(bder(c, r)))
+    val dr = (bder(c, r))
+    val sdr = bsimp(dr)
+    val v = if(bnullable(sdr)) mkeps(erase(sdr)) else mkchr(erase(sdr))
+    val v0 = if(bnullable(sdr)) mkeps(erase(bder(c,r))) else mkchr(erase(bder(c, r)))
     val v1 = inj(erase(r), c, v0)
     val v2 = fuzzy_inj(r, c, v)
+    println("regular expression original")
+    println(bits_print(r))
+    println("regular expression derivative")
+    println(bits_print(dr))
+    println("regular expression simped derivative")
+    println(bits_print(sdr))
+    println("simplified value")
+    println(v)
+    println("unsimplified value")
+    println(v0)
+    println("normal injection")
     println(v1)
+    println("fuzzy injection")
     println(v2)
-    
+    println("inj "+r+c+v0)
+    println("fuzzy_inj "+r+c+v)
   }
-  def main(args: Array[String]) {
-    //finj_test0('b', fuse(List(S, Z), internalise(  ( ("a"|"b")% ) )   ))
-    //finj_test0('a', fuse(List(S, Z), internalise(  ( ("a"|"b")% ) )   ))
-    //finj_test0('b', bder('a', internalise(   (("c" | "ab")%)  )))
-    //finj_test0('a', internalise(   (("c" | "ab")%)  ))
-    //this example gives us an exception
-    val r = internalise(ALTS(List(STAR(CHAR('c')), STAR(CHAR('b')))))
-    val c = 'c'
-    //println(bits_print(r))
-    //println(c)
-    //finj_test0(c, r)
+  def vunsimp_test(){
     for(i <- 1 to 1000){
-      val r = random_struct_gen(3)//[{  a}*~{{a}*}*]
+      val r = random_struct_gen(5)//[{  a}*~{{a}*}*]
       val c = (ran.nextInt(3) + 97).toChar//Sequ(Stars(List()),Stars(List()))
       val dr = der(c, r)
       val bdr = bder(c, internalise(r))
@@ -893,7 +897,21 @@
         println(vunsimp(bdr, dv)(target_vr._2))
       }
     }
-    
+  }
+  def main(args: Array[String]) {
+    //finj_test0('b', fuse(List(S, Z), internalise(  ( ("a"|"b")% ) )   ))
+    //finj_test0('a', fuse(List(S, Z), internalise(  ( ("a"|"b")% ) )   ))
+    //finj_test0('b', bder('a', internalise(   (("c" | "ab")%)  )))
+    //finj_test0('a', internalise(   (("c" | "ab")%)  ))
+    //this example gives us an exception
+    //val r = internalise(ALTS(List(STAR(CHAR('c')), STAR(CHAR('b')))))
+    //val c = 'c'
+    //if(bder(c, r) != internalise(der(c, erase(r))))
+      //println("noooooo!")
+    //println(bits_print(r))
+    //println(c)
+    //finj_test0(c, r) 
+    vunsimp_test()
   }
    
 }