@Override
	public ArrayList<Object> getOpRepresentationList(int opIndex, InstructionContext context) {
		if (opIndex < 0 || opIndex >= opresolve.length) {
			return null;
		}
		ArrayList<Object> list = new ArrayList<>();

		SleighParserContext protoContext;
		try {
			protoContext = (SleighParserContext) context.getParserContext();
			Constructor ct = mnemonicState.getConstructor();

			OperandSymbol sym = ct.getOperand(opresolve[opIndex]);
			ParserWalker walker = new ParserWalker(protoContext);
			walker.subTreeState(mnemonicState);
			sym.printList(walker, list);
		}
		catch (Exception e) {
			// If the instruction produces memory errors, treat as if it has no representation list
		}

		AddressSpace curSpace = context.getAddress().getAddressSpace();
		ArrayList<Object> objList = new ArrayList<>();
		for (Object obj : list) {
			if (obj instanceof Character) {
				objList.add(obj);
			}
			else {
				addHandleObject(curSpace, (FixedHandle) obj, objList);
			}
		}
		return objList;
	}
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