anchor.diff:      listener.beginCascade(token);
       assert(optional('..', token));
       Token cascadeOperator = token;
  +    token = token.next;
       if (optional('[', token)) {
         token = parseArgumentOrIndexStar(token);
       } else if (isIdentifier(token)) {
  
positive.code:       mark = token;
        if (optional('.', token)) {
          Token period = token;
          token = parseSend(token);
          listener.handleBinaryExpression(period);
        }
        token = parseArgumentOrIndexStar(token);
  
negative.code: 
      if (token.info.precedence === ASSIGNMENT_PRECEDENCE) {
        Token assignment = token;
        token = parsePrecedenceExpression(token.next, CASCADE_PRECEDENCE + 1);
        listener.handleAssignmentExpression(assignment);
      }
      listener.endCascade();
  