anchor.diff:  /// A [Language] that matches the kleene star of a [Language].
   class Star extends Language {
     final Language language;
  +
  +  bool get isMatch => language.match;
  +  bool get canAccept => true;
  +
     Star._internal(this.language);
     factory Star(language){
       if(language == match) return match;
  
positive.code: /// This [Language] is used as the last derivative to test wheather it is a
  /// match.
  class EndOfInput extends Language {
    Language derive(dynamic ch) => (ch == EOI)? match: empty;
    toString() => '<EOI>';
  }
  
  
  
negative.code: var EOI = new EndOfInput();
  
  abstract class Language {
    bool get isMatch => false;
    bool get canAccept => false;
    bool get isReject => false;
    Language derive(dynamic ch);
    Language derveEnd(dynamic ch) => empty;
  }
  
  
  /// A [Language] that rejects everything.
  class Empty extends Language {
    bool get isReject => true;
    Language derive(dynamic ch) => empty;
    toString() => '{}';
  }
  