equal
  deleted
  inserted
  replaced
  
    
    
|     57 def nullable(r: Rexp) : Boolean = r match { |     57 def nullable(r: Rexp) : Boolean = r match { | 
|     58   case ZERO => false |     58   case ZERO => false | 
|     59   case ONE => true |     59   case ONE => true | 
|     60   case CHAR(_) => false |     60   case CHAR(_) => false | 
|     61   case ALT(r1, r2) => nullable(r1) || nullable(r2) |     61   case ALT(r1, r2) => nullable(r1) || nullable(r2) | 
|     62   case SEQ(r1, r2) => nullable(r1) $$ nullable(r2) |     62   case SEQ(r1, r2) => nullable(r1) && nullable(r2) | 
|     63   case STAR(_) => true |     63   case STAR(_) => true | 
|     64   case RECD(_, r1) => nullable(r1) |     64   case RECD(_, r1) => nullable(r1) | 
|     65 } |     65 } | 
|     66  |     66  | 
|     67 def der(c: Char, r: Rexp) : Rexp = r match { |     67 def der(c: Char, r: Rexp) : Rexp = r match { |