package trees.expressiontrees; public abstract class Token { } class Operation extends Token { private final String symbol; private final int priority; static final Operation L_BRACE = new Operation("(", 1); static final Operation PLUS = new Operation("+", 5); static final Operation MINUS = new Operation("-", 5); static final Operation MULT = new Operation("*", 10); static final Operation DIV = new Operation("/", 10); static final Operation R_BRACE = new Operation(")", 0); private Operation(String s, int priority) { this.symbol = s; this.priority = priority; } int priority() { return priority; } public String toString() { return symbol; } } class Operand extends Token { private int value; Operand(int val) { value = val; } int value() { return value; } public String toString() { return "" + value; } }