anchor.diff:      : date
       | dateWithPartialUncertainty
       | uncertainOrApproxDate
  -    | unspecified
  +    | unspecifiedDate
       | consecutives;
   earlier : DotDot date;
   later : date DotDot;
   consecutives
       : YearMonthDay DotDot YearMonthDay
  -    | YearMonth DotDot YearMonth
  +    | Year Dash Month DotDot Year Dash Month
       | Year DotDot Year;
   maskedPrecision : Digit Digit (Digit X | XX );
   
  
positive.code: QuestionMarkTilde : '?~';
  
  YearWithOneOrTwoUnspecifedDigits : Digit Digit (Digit | U) U;
  LongYearSimple : Y Dash? PositiveDigit Digit Digit Digit Digit+;
  
  // *************************  Level 1: Parser Rules  ************************ //
  
  level1Expression
      : uncertainOrApproxDate
      | unspecified
      | level1Interval
      | LongYearSimple
      | season;
  
  unspecified
      : YearWithOneOrTwoUnspecifedDigits
      | monthUnspecified
      | dayUnspecified
      | dayAndMonthUnspecified;
  
  monthUnspecified : Year Dash UU;
  dayUnspecified : YearMonth Dash UU;
  uncertainOrApproxDate : date uaSymbol;
  dayAndMonthUnspecified : Year Dash UU Dash UU;
  
  
negative.code:     | '02' Dash OneThru29
      ;
  
  YearMonthDay : Year Dash MonthDay;
  Day : OneThru31;
  
  