/*
* Parser rules
*/
-// unknownDisplayDate:
-
-oneDisplayDate: displayDate ( DOT | QUESTION )? EOF ;
+oneDisplayDate: displayDate ( DOT | QUESTION )? EOF;
displayDate: uncertainDate
| certainDate
-/* TODO: Need to decide what "before" and "after" actually mean
-| beforeOrAfterDate
-*/
| beforeOrAfterDate
-// | unknownDate
+| unknownDate
;
uncertainDate: CIRCA certainDate ;
| quarterInYearRange
| strDayInMonthRange
| numDayInMonthRange
-// | numMonthInYearsRange
;
singleInterval: yearSpanningWinter
numMonth: NUMBER ;
numDayOfMonth: NUMBER ;
num: NUMBER ;
-// unknownDate: UNKNOWN ;
+unknownDate: UNKNOWN ;
/*
* Lexer rules
SLASH: '/' ;
DOT: '.' ;
QUESTION: '?' ;
-STRING: [a-z]+ ;
OTHER: . ;
-// UNKNOWN: 'unknown';
\ No newline at end of file
+UNKNOWN: 'unknown';
+STRING: [a-z]+ ;
\ No newline at end of file
import org.collectionspace.services.structureddate.antlr.StructuredDateParser.StrSeasonContext;
import org.collectionspace.services.structureddate.antlr.StructuredDateParser.StrSeasonInYearRangeContext;
import org.collectionspace.services.structureddate.antlr.StructuredDateParser.UncertainDateContext;
+import org.collectionspace.services.structureddate.antlr.StructuredDateParser.UnknownDateContext;
import org.collectionspace.services.structureddate.antlr.StructuredDateParser.YearContext;
import org.collectionspace.services.structureddate.antlr.StructuredDateParser.YearSpanningWinterContext;
result.setEarliestSingleDate(earliestDate);
result.setLatestDate(latestDate);
}
+ @Override
+ public void exitUnknownDate(UnknownDateContext ctx) {
+ if (ctx.exception != null) return;
+
+ // Dummy dates
+ stack.push(new Date());
+ stack.push(new Date());
+ }
@Override
public void exitBeforeOrAfterDate(BeforeOrAfterDateContext ctx) {
stack.push(num);
}
-
protected String getErrorMessage(RecognitionException re) {
String message = "";
"04/1995-04/2018": # Month/Year - Month/Year date
earliestSingleDate: [1995, 4, 1, CE]
latestDate: [2018, 4, 30, CE]
- # "unknown":
- # earliestSingleDate: []
+
+ "unknown": # Unknown date: Should result in empty fields
+ earliestSingleDate: []
# -------------------------------------------------------------------------------------------------------
# Invalid dates