progs/re1.scala
changeset 479 52aa298211f6
parent 477 b78664a24f5d
child 481 acd8780bfc8b
equal deleted inserted replaced
478:48b842c997c7 479:52aa298211f6
   113 
   113 
   114 size(EVIL1(1))  // 5
   114 size(EVIL1(1))  // 5
   115 size(EVIL1(3))  // 17
   115 size(EVIL1(3))  // 17
   116 size(EVIL1(5))  // 29
   116 size(EVIL1(5))  // 29
   117 size(EVIL1(7))  // 41
   117 size(EVIL1(7))  // 41
       
   118 
       
   119 
       
   120 // given a regular expression and building successive
       
   121 // derivatives might result into bigger and bigger
       
   122 // regular expressions...here is an example for this:
       
   123 
       
   124 val BIG_aux = STAR(ALT(CHAR('a'), CHAR('b')))
       
   125 val BIG = SEQ(BIG_aux, SEQ(CHAR('a'),SEQ(CHAR('b'), BIG_aux)))
       
   126 
       
   127 size(ders("".toList, BIG))              // 13
       
   128 size(ders("ab".toList, BIG))            // 51
       
   129 size(ders("abab".toList, BIG))          // 112
       
   130 size(ders("ababab".toList, BIG))        // 191
       
   131 size(ders("abababab".toList, BIG))      // 288
       
   132 size(ders("ababababab".toList, BIG))    // 403
       
   133 size(ders("abababababab".toList, BIG))  // 536
       
   134 
       
   135 
       
   136 size(ders(("ab" * 200).toList, BIG))    // 366808
       
   137