anchor.diff:      }
       
       public String unescape(String quoted) {
  -        String unquote = quoted.replaceFirst("^'(.*)'\$", "\$1");
  +        String unquote = quoted.trim().replaceFirst("^'(.*)'\$", "\$1");
           return unquote.replace("''", "'");
       }
   
  
positive.code:     public List<PostAggregator> postAggregators = new LinkedList<PostAggregator>();
      public DimFilter filter;
      public List<org.joda.time.Interval> intervals;
      
      String dataSourceName = null;
      
  
negative.code:     ;
  
  where_stmt
      : 'where' f=timeAndDimFilter {
          if($f.filter != null) this.filter = $f.filter;
          this.intervals = Lists.newArrayList($f.interval);
      }
      ;
  
  groupby_stmt
      : GROUP 'by' groupByExpression ( COMMA! groupByExpression )*
      ;
  
  groupByExpression
      : gran=granularityFn {this.granularity = $gran.granularity;}
      | dim=IDENT { this.groupByDimensions.put($dim.text, new DefaultDimensionSpec($dim.text, $dim.text)); }
      ;
  
  datasource
  