progs/matcher/re1.sc
changeset 769 f9686b22db7e
parent 765 b294cfbb5c01
child 825 dca072e2bb7d
equal deleted inserted replaced
768:34f77b976b88 769:f9686b22db7e
   126   case SEQ(r1, r2) => 1 + size(r1) + size(r2)
   126   case SEQ(r1, r2) => 1 + size(r1) + size(r2)
   127   case STAR(r) => 1 + size(r)
   127   case STAR(r) => 1 + size(r)
   128 }
   128 }
   129 
   129 
   130 // the expicit expansion in EVIL1(n) increases
   130 // the expicit expansion in EVIL1(n) increases
   131 // drastically its size
   131 // drastically its size - (a?){n} a{n}
   132 
   132 
   133 size(EVIL1(1))  // 5
   133 size(EVIL1(1))  // 5
   134 size(EVIL1(3))  // 17
   134 size(EVIL1(3))  // 17
   135 size(EVIL1(5))  // 29
   135 size(EVIL1(5))  // 29
   136 size(EVIL1(7))  // 41
   136 size(EVIL1(7))  // 41
   137 size(EVIL1(20)) // 119
   137 size(EVIL1(20)) // 119
       
   138 
       
   139 size(ders(("a" * 20).toList, EVIL1(20))) 
       
   140 
   138 
   141 
   139 // given a regular expression and building successive
   142 // given a regular expression and building successive
   140 // derivatives might result into bigger and bigger
   143 // derivatives might result into bigger and bigger
   141 // regular expressions...here is an example for this:
   144 // regular expressions...here is an example for this:
   142 
   145