package er.chronic.tags; import java.util.regex.Pattern; import er.chronic.Options; import er.chronic.utils.Token; public class ScalarYear extends Scalar { // DIFF: Changed the year pattern to only allow [12]xxx or [0456789]x -- so 1989, or 78 but not 12 public static final Pattern YEAR_PATTERN = Pattern.compile("^([12]\\d\\d\\d|[0456789]\\d)$"); public ScalarYear(Integer type) { super(type); } @Override public String toString() { return super.toString() + "-year-" + getType(); } public static ScalarYear scan(Token token, Token postToken, Options options) { if (ScalarYear.YEAR_PATTERN.matcher(token.getWord()).matches()) { int scalarValue = Integer.parseInt(token.getWord()); if (!(postToken != null && Scalar.TIMES.contains(postToken.getWord()))) { // if (scalarValue <= 37) { // scalarValue += 2000; // } // else if (scalarValue <= 137 && scalarValue >= 69) { // scalarValue += 1900; // } return new ScalarYear(Integer.valueOf(scalarValue)); } } return null; } }