@Override public Long apply(String text) { return NumberLiteralsTranslator.tokenizeDecimalAsLong(text); } @Override public String toString() {
@Override public Long apply(String text) { return NumberLiteralsTranslator.tokenizeHexAsLong(text); } @Override public String toString() {
@Override public Long apply(String text) { return NumberLiteralsTranslator.tokenizeOctalAsLong(text); } @Override public String toString() {
static long tokenizeOctalAsLong(String text) { long n = 0; int len = text.length(); for(int i = 0; i < len; i++) { n = n * 8 + toOctDigit(text.charAt(i)); } return n; }
static long tokenizeDecimalAsLong(String text) { long n = 0; int len = text.length(); for(int i = 0; i < len; i++) { n = n * 10 + toDecDigit(text.charAt(i)); } return n; }
static long tokenizeHexAsLong(String text) { int len = text.length(); if (len < 3) throw new IllegalStateException("illegal hex number"); long n = 0; for(int i = 2; i < len; i++) { n = n * 16 + toHexDigit(text.charAt(i)); } return n; } }