public int parseInt(DWARFAttribute attribute, int defaultValue)
			throws IOException, DWARFExpressionException {
		DWARFAttributeValue attr = getAttribute(attribute);
		if (attr == null) {
			return defaultValue;
		}

		if (attr instanceof DWARFNumericAttribute dnum) {
			return assertValidInt(dnum.getValue());
		}
		else if (attr instanceof DWARFBlobAttribute dblob) {
			byte[] exprBytes = dblob.getBytes();
			DWARFExpressionEvaluator evaluator = new DWARFExpressionEvaluator(getCompilationUnit());
			DWARFExpression expr = evaluator.readExpr(exprBytes);

			evaluator.evaluate(expr, 0);
			return assertValidInt(evaluator.pop());
		}
		else {
			throw new IOException("Not integer attribute: %s".formatted(attr));
		}
	}
Returns the signed integer value of the requested attribute after resolving
any DWARF expression opcodes.

@param attribute {@link DWARFAttribute} id
@param defaultValue value to return if attribute is not present
@return int value, or the defaultValue if attribute is not present
@throws IOException if error reading value or invalid value type
@throws DWARFExpressionException if error evaluating a DWARF expression
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/dwarf/DIEAggregate.java