protected DataTypeComponent findComponent(RVal addr, String name) {
		DataType aType = addr.getType();
		if (!(aType instanceof Pointer)) {
			throw new StructuredSleighError(
				"Offset requires pointer to composite type. Got " + addr);
		}
		DataType rType = ((Pointer) aType).getDataType();
		if (!(rType instanceof Composite)) {
			throw new StructuredSleighError(
				"Cannot access field of non-Composite pointer " + addr);
		}
		Composite composite = (Composite) rType;
		DataTypeComponent dtc = findComponentByName(composite, name);
		if (dtc == null) {
			throw new StructuredSleighError("No such field '" + name + "' of " + addr);
		}
		if (dtc.isBitFieldComponent()) {
			throw new StructuredSleighError(
				"Bitfield types are not yet supported: '" + dtc + "' of " + addr);
		}
		return dtc;
	}
Find the type component (field) of a pointer to a composite type

<p>
In terms of type manipulation, this is equivalent the C expression {@code addr->field}.
{@link LVal#field(String)} uses the component to derive the offset and the resulting pointer
type.

@param addr the value of the pointer
@param name the field being accessed
@return the found component

@throws StructuredSleighError if the field cannot be found
Ghidra/Features/SystemEmulation/src/main/java/ghidra/pcode/struct/StructuredSleigh.java