anchor.diff:  // ***********************   Level 0: Parser Rules   ************************ //
   
   level0Expression : date | dateTime | l0Interval;
  -date : Year | YearMonth | YearMonthDay;
  -dateTime : YearMonthDay T Time;
  +date : year | yearMonth | yearMonthDay;
  +dateTime : yearMonthDay T Time;
   
   // ********************  Level 0: Interval Parser Rules  ******************** //
   
  
positive.code:     | digitOrU U digitOrU digitOrU
      | digitOrU  digitOrU U digitOrU
      | digitOrU digitOrU digitOrU U;
  yearMonthWithU : (Year | yearWithU) Dash monthWithU | yearWithU Dash Month;
  yearMonthDayWithU
      : (yearWithU | Year) Dash monthDayWithU
      | yearWithU Dash MonthDay;
  monthDayWithU
      : (Month | monthWithU) Dash dayWithU
      | monthWithU Dash Day;
  monthWithU : OneThru12 | '0u' | '1u' | (U digitOrU);
  dayWithU : Day | U digitOrU | OneThru3 U;
  digitOrU : positiveDigitOrU | '0';
  positiveDigitOrU : PositiveDigit | U;
  OneThru3 : '1' | '2' | '3';
  
negative.code: earlier : DotDot date;
  later : date DotDot;
  consecutives
      : yearMonthDay DotDot yearMonthDay
      | yearMonth DotDot yearMonth
      | year DotDot year;
  maskedPrecision : Digit Digit (Digit X | XX );
  
  // ********************  Level 2: Interval Parser Rules  ******************** //
  