anchor.diff:        final String value = token.stringValue;
         if (identical(value, 'deferred')) {
           firstDeferredKeyword ??= token;
  -      }
  -      if (identical(value, 'as')) {
  +      } else if (identical(value, 'as')) {
           hasPrefix = true;
  -      }
  -      if (identical(value, 'show') || identical(value, 'hide')) {
  +      } else if (identical(value, 'show') || identical(value, 'hide')) {
           hasCombinator = true;
           if (hasPrefix) {
             token = recoveryStart;
  
positive.code:     if (firstToken == null) return reportUnrecoverableError(token, message);
      reportRecoverableError(token, message);
      return rewriter.insertTokenBefore(newToken, token);
    }
  
    Token parseLiteralStringOrRecoverExpression(Token token) {
  
negative.code:       }
        if (previous != token) {
          if (hasPrefix) {
            reportRecoverableError(previous, fasta.messageDuplicatePrefix);
          } else {
            if (hasCombinator) {
              reportRecoverableError(
                  previous, fasta.messagePrefixAfterCombinator);
            }
            hasPrefix = true;
          }
  