equal
deleted
inserted
replaced
391 |
391 |
392 |
392 |
393 def simp_lexer(r: Rexp, s: List[Char]): Val = s match{ |
393 def simp_lexer(r: Rexp, s: List[Char]): Val = s match{ |
394 case Nil => {//println("mkeps!"); println(r); |
394 case Nil => {//println("mkeps!"); println(r); |
395 val v = mkeps(r); |
395 val v = mkeps(r); |
396 //println(v); |
396 println(v); |
397 v} |
397 v} |
398 case c::cs => { |
398 case c::cs => { |
399 val derc1 = der(c, r); |
399 val derc1 = der(c, r); |
400 val derc = light_simp(derc1); |
400 val derc = light_simp(derc1); |
401 println("derivative size: "+ size(derc)); |
401 println("derivative size: "+ size(derc)); |
402 val v = simp_lexer(derc, cs); |
402 val v = simp_lexer(derc, cs); |
403 //println("Injection!");println("r: "+r); println("c: "+c); println("v:"+v); |
403 println("Injection!");println("r: "+r); println("c: "+c); println("v:"+v); |
404 inj(r, c, v ) } |
404 inj(r, c, v ) } |
405 } |
405 } |
406 |
406 |
407 |
407 |
408 def print_lexer(r: Rexp, s: List[Char]): Val = s match{ |
408 def print_lexer(r: Rexp, s: List[Char]): Val = s match{ |
413 case c::cs => { |
413 case c::cs => { |
414 val derc = der(c, r); |
414 val derc = der(c, r); |
415 //val derc = light_simp(derc1); |
415 //val derc = light_simp(derc1); |
416 println("derivative size: "+ size(derc)); |
416 println("derivative size: "+ size(derc)); |
417 val v = print_lexer(derc, cs); |
417 val v = print_lexer(derc, cs); |
418 //println("Injection!");println("r: "+r); println("c: "+c); println("v:"+v); |
418 println("Injection!");println("r: "+r); println("c: "+c); println("v:"+v); |
419 inj(r, c, v ) } |
419 inj(r, c, v ) } |
420 } |
420 } |
421 val r = STAR("a"|"aa") ~ ("c") |
421 val r = STAR("a"|"aa") ~ ("c") |
422 println("unsimplified lexer's intermediate derivative sizes:") |
422 println("unsimplified lexer's intermediate derivative sizes:") |
423 val v = print_lexer(r, "aac".toList) |
423 val v = print_lexer(r, "aac".toList) |
1227 // val result = block // call-by-name |
1227 // val result = block // call-by-name |
1228 // val t1 = System.nanoTime() |
1228 // val t1 = System.nanoTime() |
1229 // println(" " + (t1 - t0)/1e9 + "") |
1229 // println(" " + (t1 - t0)/1e9 + "") |
1230 // result |
1230 // result |
1231 //} |
1231 //} |
1232 //val astarstarB = STAR(STAR("a"))~("b") |
1232 val astarstarB = STAR(STAR("a"))~("b") |
1233 //val data_points_x_axis = List.range(0, 60000, 3000) |
1233 val data_points_x_axis = List.range(0, 60000, 3000) |
1234 //for (i <- data_points_x_axis) {print(i); time { blexing(astarstarB, ("a"*i)) } } |
1234 //for (i <- data_points_x_axis) {print(i); time { blexing(astarstarB, ("a"*i)) } } |
1235 ////println(data_points_x_axis.zip( List(0,1,3,4))) |
1235 ////println(data_points_x_axis.zip( List(0,1,3,4))) |
1236 //for(i <- List.range(0, 40000, 3000)) print(i + " ") |
1236 //for(i <- List.range(0, 40000, 3000)) print(i + " ") |
1237 |
1237 |
|
1238 //for (i <- data_points_x_axis) {print(i); time { simp_lexer(astarstarB, ("a"*i).toList) } } |