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 { |