anchor.diff:  QuestionMarkTilde : '?~';
   
   YearWithOneOrTwoUnspecifedDigits : Digit Digit (Digit | U) U;
  -LongYearSimple : Y Dash? PositiveDigit Digit Digit Digit Digit+;
  +LongYearSimpleForm : Y Dash? PositiveDigit Digit Digit Digit Digit+;
   
   // *************************  Level 1: Parser Rules  ************************ //
   
   level1Expression
       : uncertainOrApproxDate
  -    | unspecified
  +    | unspecifiedDate
       | level1Interval
  -    | LongYearSimple
  +    | longYearSimpleForm
       | season;
   
  -unspecified
  -    : YearWithOneOrTwoUnspecifedDigits
  +unspecifiedDate
  +    : yearUnspecified
       | monthUnspecified
       | dayUnspecified
       | dayAndMonthUnspecified;
   
  +longYearSimpleForm : LongYearSimpleForm;
  +yearUnspecified : YearWithOneOrTwoUnspecifedDigits;
   monthUnspecified : Year Dash UU;
  -dayUnspecified : YearMonth Dash UU;
  +dayUnspecified : Year Dash Month Dash UU;
   uncertainOrApproxDate : date uaSymbol;
   dayAndMonthUnspecified : Year Dash UU Dash UU;
   
  
positive.code:     | '02' Dash OneThru29
      ;
  
  YearMonth : Year Dash Month;
  YearMonthDay : Year Dash MonthDay;
  Day : OneThru31;
  
  
negative.code:     | Year uaSymbol Dash MonthDay uaSymbol?
      | Year uaSymbol? Dash partialMonth uaSymbol Dash Day
      //| Year uaSymbol? Dash partialMonth uaSymbol (Dash partialDay uaSymbol)? // works
      | Year Dash Month uaSymbol Dash partialDay uaSymbol
      | Year Dash Month uaSymbol Dash Day
      | Year Dash Month Dash partialDay uaSymbol // next one(?)
      | Year Dash partialMonthDay uaSymbol
      | season uaSymbol
      ;
  