anchor.diff:      }
   
       oneLexLoop() {
  -      lastIndex = index;
  -      ch = text[index];
         if (isIn(QUOTES)) {
           throw "not implemented";
         } else if (isNumber() || isIn(DOT) && isNumber(peek())) {
  
positive.code:       int lastDot = -1, peekIndex = -1;
        String methodName;
  
        while (index < textLength) {
          ch = text[index];
          if (ch == '.' || isIdent() || isNumber()) {
            if (ch == '.') {
              lastDot = index;
            }
            ident += ch;
          } else {
            break;
          }
          index++;
        }
  
        // The identifier had a . in the identifier
        if (lastDot != -1) {
  
negative.code: 
      String peek() => index + 1 < textLength ? text[index + 1] : "EOF";
  
      breakWhile() { throw new BreakException(); }
      whileChars(fn(), [endFn()]) {
        while (index < textLength) {
          ch = text[index];
          int lastIndex = index;
  	      try {
            fn();
  	      } on BreakException catch(e) {
  	        endFn = null;
            break;
  	      }
          if (lastIndex == index) {
  	        throw "while chars loop must advance at index $index";
  	      }
        }
        if (endFn != null) { endFn(); }
      }
  
      readNumber() {
        String number = "";
        int start = index;
        whileChars(() {
          if (ch == '.' || isNumber()) {
            number += ch;
          } else {
  