anchor.diff:      }
       library.addCompileTimeError(message, charOffset, uri);
     }
  +
  +  /// A marker method used to mark locations where a token is being located in
  +  /// an unsafe way. In all such cases the parser needs to be fixed to pass in
  +  /// the token.
  +  Token unsafeToken(Token token, TokenType tokenType) {
  +    // TODO(brianwilkerson) Eliminate the need for this method.
  +    return token.type == tokenType ? token : null;
  +  }
   }
   
   /// Data structure placed on the stack to represent a class body.
  
positive.code:   void endConditionalUri(Token ifKeyword, Token equalitySign) {
      debugEvent("ConditionalUri");
      StringLiteral libraryUri = pop();
      StringLiteral value;
      if (equalitySign != null) {
        value = pop();
      }
      DottedName name = pop();
      // TODO(paulberry,ahe): what if there is no `(` token due to an error in the
      // file being parsed?  It seems like we need the parser to do adequate error
      // recovery and then report both the ifKeyword and leftParen tokens to the
      // listener.
      Token leftParen = ifKeyword.next;
      // TODO(paulberry,ahe): the parser should report the right paren token to
      // the listener.
      Token rightParen = name.endToken.next;
      push(ast.configuration(ifKeyword, leftParen, name, equalitySign, value,
          rightParen, libraryUri));
    }
  
negative.code:     exitLocalScope();
      exitContinueTarget();
      exitBreakTarget();
      analyzer.BeginToken leftParenthesis =
          unsafeToken(forKeyword.next, TokenType.OPEN_PAREN);
  
      VariableDeclarationList variableList;
      Expression initializer;
  