private String convertStringToken() { return tokenizer.getToken(); }
private boolean isKeyword(final String keyword) { if (tokenizer.getType() == Tokenizer.TT_KEYWORD) { String token = tokenizer.getToken(); if (token.equalsIgnoreCase(keyword)) { return true; } } return false; }
private boolean isSpecial(final String special) { if (tokenizer.getType() == Tokenizer.TT_SPECIAL) { String token = tokenizer.getToken(); if (token.equals(special)) { return true; } } return false; }
private double convertDoubleToken() throws ParseException { final String token = tokenizer.getToken(); try { return Double.parseDouble(token); } catch (NumberFormatException e) { reportError("Token '" + token + "' is not a valid numeric constant."); /*I18N*/ } return 0.0; }
private int convertHexIntToken() throws ParseException { final String token = tokenizer.getToken(); try { String hexPart = token.substring(2); // skip '0x' prefix long l = Long.parseLong(hexPart, 16); if (l >= Integer.MIN_VALUE && l <= Integer.MAX_VALUE) { return (int) l; } else { reportError("Hexadecimal constant '" + token + "' is out of range."); /*I18N*/ } } catch (NumberFormatException e) { reportError("Token '" + token + "' is not a valid hexadecimal constant."); /*I18N*/ } return 0; }
private int convertOctIntToken() throws ParseException { final String token = tokenizer.getToken(); try { String octPart = token.substring(1); // skip '0' prefix long l = Long.parseLong(octPart, 8); if (l >= Integer.MIN_VALUE && l <= Integer.MAX_VALUE) { return (int) l; } else { reportError("Octal constant '" + token + "' is out of range."); /*I18N*/ } } catch (NumberFormatException e) { reportError("Token '" + token + "' is not a valid octal constant."); /*I18N*/ } return 0; }
private int convertIntToken() throws ParseException { String token = tokenizer.getToken(); try { long l = Long.parseLong(token); if (l >= Integer.MIN_VALUE && l <= Integer.MAX_VALUE) { return (int) l; } else { reportError("Integer constant '" + token + "' is out of range."); /*I18N*/ } } catch (NumberFormatException e) { reportError("Token '" + token + "' is not a valid integer constant."); /*I18N*/ } return 0; }
@Test public void testThreePlusFour() { final Tokenizer tokenizer = new Tokenizer("3+4"); assertEquals(Tokenizer.TT_INT, tokenizer.next()); assertEquals(Tokenizer.TT_INT, tokenizer.getType()); assertEquals("3", tokenizer.getToken()); assertEquals('+', tokenizer.next()); assertEquals('+', tokenizer.getType()); assertEquals("+", tokenizer.getToken()); assertEquals(Tokenizer.TT_INT, tokenizer.next()); assertEquals(Tokenizer.TT_INT, tokenizer.getType()); assertEquals("4", tokenizer.getToken()); assertEquals(Tokenizer.TT_EOS, tokenizer.next()); }
@Test public void testPlusFour() { final Tokenizer tokenizer = new Tokenizer("+4"); assertEquals('+', tokenizer.next()); assertEquals('+', tokenizer.getType()); assertEquals("+", tokenizer.getToken()); assertEquals(Tokenizer.TT_INT, tokenizer.next()); assertEquals(Tokenizer.TT_INT, tokenizer.getType()); assertEquals("4", tokenizer.getToken()); assertEquals(Tokenizer.TT_EOS, tokenizer.next()); }
@Test public void testMinusFour() { final Tokenizer tokenizer = new Tokenizer("-4"); assertEquals('-', tokenizer.next()); assertEquals('-', tokenizer.getType()); assertEquals("-", tokenizer.getToken()); assertEquals(Tokenizer.TT_INT, tokenizer.next()); assertEquals(Tokenizer.TT_INT, tokenizer.getType()); assertEquals("4", tokenizer.getToken()); assertEquals(Tokenizer.TT_EOS, tokenizer.next()); }
@Test public void testThreeMinusFour() { final Tokenizer tokenizer = new Tokenizer("3-4"); assertEquals(Tokenizer.TT_INT, tokenizer.next()); assertEquals(Tokenizer.TT_INT, tokenizer.getType()); assertEquals("3", tokenizer.getToken()); assertEquals('-', tokenizer.next()); assertEquals('-', tokenizer.getType()); assertEquals("-", tokenizer.getToken()); assertEquals(Tokenizer.TT_INT, tokenizer.next()); assertEquals(Tokenizer.TT_INT, tokenizer.getType()); assertEquals("4", tokenizer.getToken()); assertEquals(Tokenizer.TT_EOS, tokenizer.next()); }