private Token number_decimal(int c) throws IOException, LexerException { StringBuilder text = new StringBuilder((char)c); int d = c; long val = 0; do { val = val * 10 + Character.digit(d, 10); text.append((char)d); d = read(); } while (Character.digit(d, 10) != -1); return _number(text, val, d); }
private Token number_decimal(int c) throws IOException, LexerException { StringBuilder text = new StringBuilder((char)c); int d = c; long val = 0; do { val = val * 10 + Character.digit(d, 10); text.append((char)d); d = read(); } while (Character.digit(d, 10) != -1); return _number(text, val, d); }
private Token number_octal() throws IOException, LexerException { StringBuilder text = new StringBuilder("0"); int d = read(); long val = 0; while (Character.digit(d, 8) != -1) { val = (val << 3) + Character.digit(d, 8); text.append((char)d); d = read(); } return _number(text, val, d); }
private Token number_octal() throws IOException, LexerException { StringBuilder text = new StringBuilder("0"); int d = read(); long val = 0; while (Character.digit(d, 8) != -1) { val = (val << 3) + Character.digit(d, 8); text.append((char)d); d = read(); } return _number(text, val, d); }
private Token number_hex(char x) throws IOException, LexerException { StringBuilder text = new StringBuilder("0"); text.append(x); int d = read(); if (Character.digit(d, 16) == -1) { unread(d); // error("Illegal hexadecimal constant " + (char)d); return new Token(INVALID, text.toString(), "Illegal hexadecimal digit " + (char)d + " after "+ text); } long val = 0; do { val = (val << 4) + Character.digit(d, 16); text.append((char)d); d = read(); } while (Character.digit(d, 16) != -1); return _number(text, val, d); }
private Token number_hex(char x) throws IOException, LexerException { StringBuilder text = new StringBuilder("0"); text.append(x); int d = read(); if (Character.digit(d, 16) == -1) { unread(d); // error("Illegal hexadecimal constant " + (char)d); return new Token(INVALID, text.toString(), "Illegal hexadecimal digit " + (char)d + " after "+ text); } long val = 0; do { val = (val << 4) + Character.digit(d, 16); text.append((char)d); d = read(); } while (Character.digit(d, 16) != -1); return _number(text, val, d); }