package mireka.address.parser; import mireka.address.parser.base.CharClass; public class CharClasses { public static final CharClass ALPHA = new CharClass() { @Override public boolean isSatisfiedBy(int ch) { return (0x41 <= ch && ch <= 0x5A) || (0x61 <= ch && ch <= 0x7A); } @Override public String toString() { return "letter"; } }; public static final CharClass DIGIT = new CharClass() { @Override public boolean isSatisfiedBy(int ch) { return 0x30 <= ch && ch <= 0x39; } @Override public String toString() { return "digit"; } }; /** * Letter, digit */ public static final CharClass LET_DIG = new CharClass() { @Override public boolean isSatisfiedBy(int ch) { return ALPHA.isSatisfiedBy(ch) || DIGIT.isSatisfiedBy(ch); } @Override public String toString() { return "letter or digit"; } }; /** * Letter, digit, hyphen. */ public static final CharClass LDH = new CharClass() { @Override public boolean isSatisfiedBy(int ch) { return ALPHA.isSatisfiedBy(ch) || DIGIT.isSatisfiedBy(ch) || ch == '-'; } @Override public String toString() { return "letter, digit or hyphen"; } }; static final CharClass HEX = new CharClass() { @Override public boolean isSatisfiedBy(int ch) { return ('0' <= ch && ch <= '9') || ('a' <= ch && ch <= 'f') || ('A' <= ch && ch <= 'F'); } @Override public String toString() { return "hex digit"; }; }; }