public int computeArithmeticValue() {
		if (!isConstExpression()) {
			throw new IllegalStateException("not const expression");
		}
		switch (op) {
		case ADD:
			return lValue + rValue;
		case SUB:
			return lValue - rValue;
		case MUL:
			return lValue * rValue;
		case DIV:
			return lValue / rValue;
		case NEG:
			return -lValue;
		default:
			throw new IllegalStateException("not arithemetic op:" + op);
		}
	}