anchor.diff:    List<int> alpha = <int>[];
     List<int> alphaNum = <int>[];
   
  +  var testFile = new File('test/unicode-test.dart');
  +
  +  IOSink ts = testFile.openWrite();
  +  ts.writeln("// This file is autogenerated. Do not edit.");
  +  ts.writeln();
  +  ts.writeln("import '../lib/parsec.dart';");
  +  ts.writeln();
  +  ts.writeln("void main() {");
  +
     lines.forEach((String line) {
       List<String> data = line.split(';');
       int code = int.parse(data[0], radix: 16);
       String cls = data[2];
  +
  +    List<String> params = <String>[code.toString()];
  +
       switch (cls) {
       case 'Zs':
         spaces.add(code);
  +      params.add('s:true');
         break;
   
       case 'Ll':
         lower.add(code);
         alpha.add(code);
         alphaNum.add(code);
  +      params.addAll(['l:true', 'a:true', 'an:true']);
         break;
   
       case 'Lu':
  
positive.code:   sink.write(toCondition(alphaNum));
    sink.writeln(';');
  
  }
  
  void main() {
  
negative.code:       upper.add(code);
        alpha.add(code);
        alphaNum.add(code);
        params.addAll(['u:true', 'a:true', 'an:true']);
        break;
  
      case 'Lm':
      case 'Lo':
        alpha.add(code);
        alphaNum.add(code);
        params.addAll(['a:true', 'an:true']);
        break;
  
      case 'Mc':
  