equal
  deleted
  inserted
  replaced
  
    
    
   187 //  | 
   187 //  | 
   188 //    where SEQ is nested 100 times.  | 
   188 //    where SEQ is nested 100 times.  | 
   189 */   | 
   189 */   | 
   190   | 
   190   | 
   191   | 
   191   | 
   192 }  | 
   192 assert(simp(ZERO | ONE) == ONE)  | 
   193   | 
   193 assert(simp(STAR(ZERO | ONE)) == STAR(ZERO | ONE))  | 
         | 
   194 assert(simp(ONE ~ (ONE ~ (ONE ~ CHAR('a')))) == CHAR('a')) | 
         | 
   195 assert(simp(((ONE ~ ONE) ~ ONE) ~ CHAR('a')) == CHAR('a')) | 
         | 
   196 assert(simp(((ONE | ONE) ~ ONE) ~ CHAR('a')) == CHAR('a')) | 
         | 
   197 assert(simp(ONE ~ (ONE ~ (ONE ~ ZERO))) == ZERO)  | 
         | 
   198 assert(simp(ALT(ONE ~ (ONE ~ (ONE ~ ZERO)), CHAR('a'))) == CHAR('a')) | 
         | 
   199 assert(simp(CHAR('a') | CHAR('a')) == CHAR('a')) | 
         | 
   200 assert(simp(CHAR('a') ~ CHAR('a')) == CHAR('a') ~ CHAR('a')) | 
         | 
   201 assert(simp(ONE | CHAR('a')) == (ONE | CHAR('a'))) | 
         | 
   202 assert(simp(ALT((CHAR('a') | ZERO) ~ ONE, | 
         | 
   203                   ((ONE | CHAR('b')) | CHAR('c')) ~ (CHAR('d') ~ ZERO))) == CHAR('a')) | 
         | 
   204 assert(simp((ZERO | ((ZERO | ZERO) | (ZERO | ZERO))) ~ ((ONE | ZERO) | ONE ) ~ (CHAR('a'))) == ZERO) | 
         | 
   205 assert(simp(ALT(ONE | ONE, ONE | ONE)) == ONE)  | 
         | 
   206 assert(simp(ALT(ZERO | CHAR('a'), CHAR('a') | ZERO)) == CHAR('a')) | 
         | 
   207 assert(simp(ALT(ONE | CHAR('a'), CHAR('a') | ONE)) == ALT(ONE, CHAR('a'))) | 
         | 
   208 assert(simp(ALTs(Nil)) == ZERO)  | 
         | 
   209 assert(simp(SEQs(List(CHAR('a')))) == CHAR('a')) | 
         | 
   210   | 
         | 
   211   | 
         | 
   212 }  | 
         | 
   213   |