private void interpretInput(DateTime aDateTime){
    String format = fFormat;
    for(String token : TOKENS){
      Pattern pattern = Pattern.compile(token);
      Matcher matcher = pattern.matcher(format);
      while(matcher.find()){
        InterpretedRange interpretedRange = new InterpretedRange();
        interpretedRange.Start = matcher.start();
        interpretedRange.End = matcher.end() - 1;
        if(! isInEscapedRange(interpretedRange)){
          interpretedRange.Text = interpretThe(matcher.group(), aDateTime);
          fInterpretedRanges.add(interpretedRange);
        }
      }
      format = format.replace(token, withCharDenotingAlreadyInterpreted(token));
    }
  }