anchor.diff:  
   class Dispatch extends Transition {Dispatch(t):super(t);}
   class DispatchLastMatch extends Transition{DispatchLastMatch(t):super(t);}
  -class NoMatch {}
  +class NoMatch {
  +  final value;
  +  NoMatch(this.value);
  +  toString() => "$NoMatch('$value')";
  +}
   
   /// Reperesents a [State] in the state machine.
   class State {
  
positive.code: 
    void evaluate(){
      if(state.lastMatch != null) return;
      var matches = state.findExactMatches();
      if(matches.length > 1) throw "More that one match is not supported yet";
      if(matches.length == 1) {
  
negative.code: part 'src/language.dart';
  part 'src/rules.dart';
  part 'src/builder.dart';
  
  class Debug {
    List<State> stacktrace = <State>[];
    void addTrace(State state) => stacktrace.add(state);
    String toString(){
      String str = '';
      for(final state in stacktrace){
        str += '${state.rules}: "${state.matchStr}"\n';
      }
      return str;
    }
  }
  
  class Token {
    final String value;
  