package lists; public class Token { static String OPS = "+-*/^"; static String DIGITS = "0123456789"; private String value; public Token(char value) { this.value = String.valueOf(value); } public Token(String value) { this.value = value; } boolean isOperator() { return (OPS.indexOf(value) >= 0); } static boolean isOperator(char c) { return (OPS.indexOf(c) >= 0); } static boolean isDigit(char c) { return (DIGITS.indexOf(c) >= 0); } boolean isNumber() { return (OPS.indexOf(value) < 0); } int getNumber() { return Integer.parseInt(value); } char getOperator() { return value.charAt(0); } int getPrecedence() { if (isNumber()) return 0; else if ((value.equals("+")) || (value.equals("-"))) return 1; else if ((value.equals("*")) || (value.equals("/"))) return 2; else return 3; } public String toString() { if (isOperator()) return value + " [operator, precedence " + getPrecedence() + "]"; else return value + " [number, precedence " + getPrecedence() + "]"; } }