@Override
  public void exitUncertainDate(UncertainDateContext ctx) {
    if (ctx.exception != null) return;

    Date latestDate = (Date) stack.pop();
    Date earliestDate = (Date) stack.pop();

    int earliestInterval =
        DateUtils.getCircaIntervalYears(earliestDate.getYear(), earliestDate.getEra());
    int latestInterval = DateUtils.getCircaIntervalYears(latestDate.getYear(), latestDate.getEra());

    // Express the circa interval as a qualifier.

    // stack.push(earliestDate.withQualifier(QualifierType.MINUS, earliestInterval,
    // QualifierUnit.YEARS));
    // stack.push(latestDate.withQualifier(QualifierType.PLUS, latestInterval,
    // QualifierUnit.YEARS));

    // OR:

    // Express the circa interval as an offset calculated into the year.

    DateUtils.subtractYears(earliestDate, earliestInterval);
    DateUtils.addYears(latestDate, latestInterval);

    stack.push(earliestDate);
    stack.push(latestDate);
  }