public int expr(SimpleCalcDriver driver) {
		switch (op) {
		case OP_PLUS:
			return left.expr(driver) + right.expr(driver);

		case OP_MINUS:
			return left.expr(driver) - right.expr(driver);

		case OP_TIMES:
			return left.expr(driver) * right.expr(driver);

		case OP_DIVIDE:
			return left.expr(driver) / right.expr(driver);

		case OP_CONST:
			return value;

		case OP_VALUE:
			return driver.value(string);

		case OP_NEG:
			return -left.expr(driver);

		default:
			return 0;// error
		}
	}