| Index: compiler/java/com/google/dart/compiler/parser/AbstractParser.java
 | 
| diff --git a/compiler/java/com/google/dart/compiler/parser/AbstractParser.java b/compiler/java/com/google/dart/compiler/parser/AbstractParser.java
 | 
| index 8889e15367dbeb82bcb8373f55e343d92c5310cf..759b19bb5b79b1fcfc2d2b2418a12eddedac43bb 100644
 | 
| --- a/compiler/java/com/google/dart/compiler/parser/AbstractParser.java
 | 
| +++ b/compiler/java/com/google/dart/compiler/parser/AbstractParser.java
 | 
| @@ -6,6 +6,7 @@ package com.google.dart.compiler.parser;
 | 
|  
 | 
|  import com.google.dart.compiler.DartCompilationError;
 | 
|  import com.google.dart.compiler.ErrorCode;
 | 
| +import com.google.dart.compiler.parser.DartScanner.Location;
 | 
|  
 | 
|  /**
 | 
|   * Abstract base class for sharing common utility methods between implementation
 | 
| @@ -108,6 +109,23 @@ abstract class AbstractParser {
 | 
|      lastErrorPosition = position.getPos();
 | 
|      ctx.error(dartError);
 | 
|    }
 | 
| +  
 | 
| +  /**
 | 
| +   * Even though you pass a 'Position' to {@link #reportError} above, it only uses that to 
 | 
| +   * prevent logging more than one error at that position.  This method actually uses the passed
 | 
| +   * position to create the error event.
 | 
| +   */
 | 
| +  protected void reportErrorAtPosition(DartScanner.Position startPosition,
 | 
| +                                       DartScanner.Position endPosition,
 | 
| +                                       ErrorCode errorCode, Object... arguments) {
 | 
| +    DartScanner.Location location = ctx.getTokenLocation();
 | 
| +    if (location.getBegin().getPos() <= lastErrorPosition) {
 | 
| +      return;
 | 
| +    }
 | 
| +    DartCompilationError dartError = new DartCompilationError(ctx.getSource(),
 | 
| +        new Location(startPosition, endPosition), errorCode, arguments);
 | 
| +    ctx.error(dartError);
 | 
| +  }
 | 
|  
 | 
|    protected void reportUnexpectedToken(DartScanner.Position position, Token expected,
 | 
|        Token actual) {
 | 
| 
 |