private void parseDelta(Calendar fixPoint, Tokenizer tokenizer) throws ParseException { int amount = parseDeltaAmount(tokenizer); tokenizer.nextToken(); if (tokenizer.getType() == Tokenizer.END_OF_INPUT) { fixPoint.add(Calendar.DAY_OF_MONTH, amount); return; } applyDelta(fixPoint, amount); }
private void expectNumber() throws ParseException { if (tokenizer.getType() != Tokenizer.NUMBER) { throw new ParseException(NLS.fmtr("AdvancedDateParser.errInvalidToken") .set("token", tokenizer.toString()) .format(), tokenizer.getTokenStart()); } }
private Calendar parseGermanDate(int day) throws ParseException { tokenizer.nextToken(); expectNumber(); int month = Integer.parseInt(tokenizer.getToken()); tokenizer.nextToken(); int year = now().get(Calendar.YEAR); if (in(GERMAN_DATE_SEPARATOR)) { tokenizer.nextToken(); if (tokenizer.getType() == Tokenizer.NUMBER) { year = Integer.parseInt(tokenizer.getToken()); year = fixYear(year); tokenizer.nextToken(); } } if (tokenizer.getType() == Tokenizer.NUMBER) { return parseTime(buildCalendar(day, month, year)); } return buildCalendar(day, month, year); }
if ((tokenizer.getType() == Tokenizer.SPECIAL) && in(MODIFIER_END)) { tokenizer.nextToken();
private Calendar parseFixPoint() throws ParseException { if (tokenizer.getType() == Tokenizer.NUMBER) { return parseDate(tokenizer); } if (tokenizer.getType() == Tokenizer.SPECIAL) { return now(); } if (tokenizer.getType() == Tokenizer.END_OF_INPUT) { return now(); } if (in(calendarWeek())) { tokenizer.nextToken(); expectNumber(); Calendar result = now(); result.set(Calendar.WEEK_OF_YEAR, Integer.parseInt(tokenizer.getToken())); forceConversion(result); tokenizer.nextToken(); return result; } expectKeyword(nowToken()); tokenizer.nextToken(); return now(); }
private Calendar parseEnglishDate(int month) throws ParseException { tokenizer.nextToken(); expectNumber(); int day = Integer.parseInt(tokenizer.getToken()); tokenizer.nextToken(); int year = now().get(Calendar.YEAR); if (in(ENGLISH_DATE_SEPARATOR)) { tokenizer.nextToken(); if (tokenizer.getType() == Tokenizer.NUMBER) { year = Integer.parseInt(tokenizer.getToken()); year = fixYear(year); tokenizer.nextToken(); } } if (tokenizer.getType() == Tokenizer.NUMBER) { return parseTime(buildCalendar(day, month, year)); } return buildCalendar(day, month, year); }
private boolean parseModifier() throws ParseException { if (tokenizer.getType() != Tokenizer.IDENTIFIER) { return false; } if (in(start())) { parseStartModifier(); return true; } if (in(end())) { parseEndModifier(); return true; } return false; }
private void parseModifiers() throws ParseException { do { tokenizer.nextToken(); // ignore "," between modifiers //noinspection UnnecessaryParentheses,UnnecessaryParentheses if ((tokenizer.getType() == Tokenizer.SPECIAL) && in(MODIFIER_SEPARATOR)) { tokenizer.nextToken(); } } while (parseModifier()); }
private void parseDeltas(Calendar result) throws ParseException { while (tokenizer.getType() != Tokenizer.END_OF_INPUT) { parseDelta(result, tokenizer); tokenizer.nextToken(); } }