@Override
	public Address getAddress(int opIndex, InstructionContext context) {
		if (opIndex < 0 || opIndex >= opresolve.length) {
			return null;
		}

		FixedHandle hand = null;
		SleighParserContext protoContext;
		try {
			protoContext = (SleighParserContext) context.getParserContext();
			ConstructState opState = mnemonicState.getSubState(opresolve[opIndex]);
			hand = protoContext.getFixedHandle(opState);
			if (hand.isInvalid()) {
				return null;
			}
		}
		catch (Exception e) {
			return null;
		}
		if ((hand.offset_space == null) && (hand.space.getType() == AddressSpace.TYPE_RAM)) {
			return getHandleAddr(hand, context.getAddress().getAddressSpace());
		}
		return null;
	}
Gather all the flow records (perhaps across multiple InstructionPrototypes via crossbuilds)
and convert to Addresses

@param res is the resulting flow Addresses
@param parsecontext is the parsing context for the current instruction
@param context is the context for the particular address so crossbuilds can be resolved
@throws MemoryAccessException if a memory error occurred while resolving instruction details
@throws UnknownContextException if the gather encounters an instruction not previously parsed
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/app/plugin/processors/sleigh/SleighInstructionPrototype.java